Accessibility

Syntic Code runs in a terminal, so it works with the screen reader, magnifier and keyboard tools you already use there. This page covers screen reader mode, which makes the screen read cleanly aloud, and the settings that help if you prefer less motion, stronger contrast, or no color at all.

Screen reader mode

Screen reader mode is one switch for anyone who listens to the terminal or follows it with a magnifier. While it is on:

ChangeWhy it helps
Plain symbols. Decorative characters (pointers, bullets, box corners, spinner stars, progress cells, check marks) are replaced with simple ASCII such as >, *, +, - and |. Each stand-in takes the same width, so the layout does not move.Your reader says “greater than” or nothing, instead of naming every ornament.
No motion. The spinner stands still and nothing shimmers or blinks.Fewer screen updates for the reader to announce.
A visible cursor. The real terminal cursor stays on, and in an open list it sits on the selected row.Magnifiers and readers can follow where you are.
Numbered rows. Every row of an open picker or list starts with its number (3. ).You hear where you are, and the number keys that pick a row are easy to find.
Spoken notes. Changes that are otherwise only drawn are also written as a short line in the conversation.You learn about them without hunting around the screen.

Examples of the notes:

Permission mode: plan mode
Answered 2 questions. Which database? PostgreSQL. Run migrations? Yes.
Deleted session: fix the uploader
Edited src/upload.rs: 3 lines added, 1 removed

Outside screen reader mode none of these notes are written.

Turn it on

WayLasts
syntic --screen-reader (also --ax-screen-reader)This run.
Screen reader mode in /config, or "screenReader": true in a settings fileEvery session that reads it.
SYNTIC_SCREEN_READER=1 (also SYNTIC_ACCESSIBILITY=1 or SYNTIC_CODE_ACCESSIBILITY=1)Every run with that variable. Accepted values for on: 1, true, yes, on.

The flag wins, then the setting, then the environment. Most of the changes apply at once when you flip the switch in /config; the visible cursor applies from the next start.

Turn it off

Set "screenReader": false in your settings, or switch it off in /config. An explicit false in settings also wins over the environment variables, so you can switch it off for Syntic Code even when your shell exports one of them for other tools.

Find your way with the keyboard

Everything in Syntic Code can be reached from the keyboard. A few keys are especially useful with a reader:

KeyDoes
? on an empty promptOpens help.
/Opens the command menu; type to filter.
1–9Picks that row in a list, panel or permission prompt.
Ctrl+OOpens the full transcript. Use / to search it and { / } to jump between your prompts.
v in the transcriptOpens the transcript in your editor, where your usual reading tools apply.
[ in the transcriptWrites the transcript into your terminal’s scrollback.
EscCloses whatever is open.

Permission prompts never approve on a single letter, so a stray key cannot say yes for you: use Enter or a row number. The full list is on Keyboard shortcuts.

The inline view helps readers

The default inline view writes finished conversation into your terminal’s normal scrollback, so your screen reader’s review commands can read it like any other terminal output. If you switched to the full-screen view, /tui inline switches back from the next start. See Full-screen mode.

Hear when Syntic Code needs you

  • When a long turn finishes, Syntic Code can send a desktop notification or ring the terminal bell if you have stepped away. This is on by default (notificationsEnabled). You can force the bell with SYNTIC_NOTIF_CHANNEL=terminal_bell; see Terminal setup.
  • When a permission prompt opens, a Notification hook fires with notification_type set to permission_prompt. You can use it to play a sound or speak a message with your own tools.

Less motion

Turn on Reduce motion in /config ("prefersReducedMotion": true). The spinner stops animating, the tab-title marker stops turning, and other animated effects are skipped. Screen reader mode includes this.

Contrast and color

NeedUse
Stronger contrastThe high-contrast theme: /theme, then pick High contrast.
Color-blind friendly diffs and status colorsdark-daltonized or light-daltonized.
Your terminal’s own paletteThe ansi theme, which uses only the 16 standard colors.
No color at allNO_COLOR=1 or syntic --no-color. Text styles stay, and the selected row in lists is shown in reverse video.
One color that is hard to seeOverride it with themeColors.

Whatever theme you choose, every frame is checked against your terminal’s real background, and colors too faint to read there are made darker or lighter. Details are on Themes.

Other helpful settings

SettingEffect
maxProseWidthKeeps reply text to a narrower column on a wide screen, which is easier to follow with a magnifier.
showTurnDurationSays how long each reply took.
verboseShows tool results in full, so nothing is hidden behind a “+N lines” note.
spinnerTipsEnabledfalse hides the tips next to the spinner.
promptSuggestionEnabledfalse stops the dim suggested prompt in the empty prompt box.

Known limits

  • Syntic Code draws a terminal screen; it does not talk to your operating system’s accessibility interfaces directly. How text is read depends on your terminal and screen reader.
  • The full-screen view redraws areas of the screen in place. Readers that announce every change can be chatty there; the inline view is usually calmer.
  • Diffs use color and gutters to show added and removed lines. In screen reader mode, a short note saying how many lines were added and removed is written after each edit.

If something is hard to use with your setup, run /feedback to describe it. The report is saved on your computer.