Accessible Claude Code — Development skill for Claude Code
PTY-based screen-reader wrapper for Claude Code and other Ink TUIs.
How to install Accessible Claude Code
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open digitalby/accessible-claude-code and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Accessible Claude Code does
PTY-based screen-reader wrapper for Claude Code and other Ink TUIs. Makes Claude Code usable with VoiceOver/NVDA/Narrator.
Alternatives in Development
- Mono Color Skill — One-ink editorial print image skill — warm paper, halftone photography, active negative space, and restrained 3k ★
- Reader Review — reader skill — 苛刻读者版 669 ★
- Hive — Browser-native hive-mind for CLI coding agents — Claude Code, Codex, Gemini, and OpenCode collaborate as real 473 ★
README
accessible-claude-code
A tiny PTY wrapper that makes [Claude Code](https://github.com/anthropics/claude-code) (and other [Ink](https://github.com/vadimdemedes/ink)-based TUIs) usable with a screen reader.
The problem
Claude Code's UI is built on Ink, which renders React components as ANSI escape sequences and repaints character cells in place. This is exactly the pattern that defeats screen readers: VoiceOver, NVDA, Narrator, and TalkBack all read the terminal's visible character grid, and they cannot tell a spinner frame flip apart from new content arriving. The result is stale or jumbled speech, spinners that spam TTS, and sessions that are effectively unusable for blind developers.
Upstream tracking: [anthropics/claude-code#11002](https://github.com/anthropics/claude-code/issues/11002) is open and unimplemented.
What this does
`acc` forks your target process under a PTY, runs its output through a headless VT emulator ([`pyte`](https://github.com/selectel/pyte)), and diffs the cell grid on every flush. Instead of shoveling raw ANSI at the screen reader, it emits one clean, linearized stream of semantic events and speaks them via a pluggable backend (`say` on macOS, `spd-say` on Linux).
Architecture borrowed from [TDSR](https://github.com/tspivey/tdsr), the canonical terminal screen reader for macOS and Linux. This is a narrower, Claude-Code-first tool in the same tradition.
Status
Alpha. Proof of concept. macOS first, Linux tested via CI.
Install
git clone https://github.com/digitalby/accessible-claude-code
cd accessible-claude-code
python3 -m venv .venv
. .venv/bin/activate
pip install -e .
Usage
acc claude # wrap Claude Code
acc bash # wrap any shell or TUI for experimentation
acc --rate 320 claude # speed up speech
acc --no-speak claude # dry run, log events instead of speaking
Hotkeys
| Key | Action |
|---|---|
Ctrl-\ |
Stop current speech (barge-in) |
Ctrl-] |
Re-read last ass |
Related Skills
Iso 24495 Skill
ISO 24495-1 plain language rules as a Claude Code skill — bilingual: English + Traditional Chinese (繁體中文淺白改寫).
Scroll Color Fill
Scroll color fill. A statement fills from grey to ink, character by character, as it scrolls through the readi
Record
Record a demo video of an app — the agent clicks through it by itself, the screen is recorded, and the output
Fya
PTY-backed Claude Code wrapper that provides claude -p compatible output
Claude Code Headless
Programmatically drive the real Claude Code CLI in a PTY — structured semantic/screen/committed events, live t
Accessibility Specialist
Use when a screen might fail WCAG. Unlabeled inputs, no keyboard path, contrast below AA, missing landmarks, b
Related Agents
UI Driver
Drives the Sortd app in its own iOS simulator and checks every screen at iPhone SE-class, Pro and Pro Max size
Screen Reader Testing
Practical guide to testing web applications with screen readers for comprehensive accessibility vali... - wsho
Axe
Accessibility engineering — WCAG audits, keyboard nav, screen reader testing, ARIA