- Python 97%
- HTML 2.5%
- Inno Setup 0.5%
Carries the type-checker cleanup of the shipped modules and nothing else. No behaviour changes; 0.3.13's upgrade fix is the substantive one and is unchanged. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014BKhcEHE7XHciLQFphFLWG |
||
|---|---|---|
| .github/workflows | ||
| EarCons | ||
| installer | ||
| tests | ||
| .gitattributes | ||
| .gitignore | ||
| agent_backends.py | ||
| app_updater.py | ||
| blind_pilot.py | ||
| blindpilot_app.py | ||
| CHANGELOG.md | ||
| claude_reader.py | ||
| CREDITS.md | ||
| LICENSE | ||
| markdown_rows.py | ||
| NOTICE | ||
| original-claude-code-reader-spec.html | ||
| pytest.ini | ||
| README.md | ||
| RELEASE_NOTES.md | ||
| requirements-build.txt | ||
| requirements.txt | ||
| ruff.toml | ||
| session_history.py | ||
BlindPilot
A vibe-coded, screen-reader-friendly desktop front end for AI coding agents on Windows and macOS, built so Claude Code, Codex, and FreeBuff can be driven without reading a terminal.
Have a question, hit a bug, or want early word on new releases? Join the SerrebiProjects Telegram group — the community hub for BlindPilot and my other projects, and the fastest place to get help.
BlindPilot is based on the original Claude Code Reader by doubletaponair. It keeps that project's accessibility-first design and adds a pluggable multi-backend system. See CREDITS.md.
Features
- Native wxPython controls throughout, so NVDA, JAWS, and VoiceOver read the app rather than interpreting a terminal.
- Runs Claude Code, Codex, and FreeBuff, switchable from the File menu and remembered between launches.
- Segments every answer into navigable rows: one per heading, paragraph, list item, quote, code block, thought, tool action, and tool result.
- Reads answers aloud as they arrive, or stays quiet until the whole answer is ready.
- Reopens past conversations from any backend, titled by the message that started them, and carries on where they left off.
- Compacts a long conversation in place so the backend has room to keep going.
- Runs several project sessions at once, each with its own conversation, folder, model, and permission mode.
- Steers a task while it is still running, or stops it outright and keeps what it produced.
- Attaches files and pasted clipboard images as explicit prompt paths.
- Searches responses, jumps between them, and copies a code block, a whole response, or the whole conversation.
- Picks the model and reasoning effort from whatever the installed CLI actually reports.
- Marks sent, working, and received with earcons, so a long run is audible without being spoken.
- Installs, updates, adds to PATH, and signs into any of the three backends from an accessible wizard.
- Updates itself from GitHub Releases after verifying the published SHA-256.
Backends
| Backend | Integration | Sessions | Model control | Permission modes | Compaction |
|---|---|---|---|---|---|
| Claude Code | Streaming JSON CLI | Yes | Yes | Yes | Yes |
| Codex | Official app-server protocol | Yes | Yes, including reasoning effort | Yes | Yes |
| FreeBuff | Pseudo-terminal adapter | Yes | Yes; DeepSeek V4 Pro by default | Managed by FreeBuff | No |
FreeBuff ships no JSON or headless API, so BlindPilot runs its terminal interface in a hidden pseudo-terminal, reads the answer off its screen a finished sentence at a time, and captures its chat id so the conversation can be resumed. Terminal redraws and advertisements are filtered out before anything is spoken. Its permission picker and Compact Conversation are disabled because the FreeBuff CLI has no equivalent.
Download and install
Grab the latest build from the Releases page. For a version-by-version history, see the changelog.
Windows installer (recommended)
- Download
BlindPilot-Setup-x64.exe. - Run it. It installs per user with no administrator prompt, adds a Start Menu entry, and closes a running copy before replacing it.
Windows portable
- Download
BlindPilot-Windows-x64.zip. - Extract it anywhere and run
BlindPilot.exe— no installation required.
macOS
Download BlindPilot-macOS-arm64.zip for Apple Silicon or BlindPilot-macOS-x64.zip for Intel. The macOS builds are ad-hoc signed but not notarized, so first launch may need approval in System Settings under Privacy & Security.
Settings live in %APPDATA%\BlindPilot\config.json on Windows and ~/.config/blindpilot/config.json elsewhere. An existing Claude Code Reader configuration is imported once and never modified.
Set up a backend
BlindPilot's first-run wizard and File → Manage Backends can find, install, update, and sign into any of the three. A missing CLI is reported as an actionable error and does not affect the others. To do it by hand:
# Claude Code
claude --version
claude /login
# OpenAI Codex
npm install -g @openai/codex
codex login
# FreeBuff
npm install -g freebuff
freebuff login
Keyboard
- Ctrl+L focus the prompt, Ctrl+T open a session, Ctrl+W close it.
- Ctrl+H reopen a past conversation.
- Ctrl+Shift+K compact this conversation, Ctrl+Shift+N start a fresh one.
- Ctrl+F search responses, Ctrl+R jump to the latest.
- Ctrl+/ slash commands, Ctrl+. stop the running task.
- Ctrl+Shift+A attach files, Ctrl+Shift+M cycle permission modes.
- Ctrl+Shift+[ and Ctrl+Shift+] move between sessions; Ctrl+1 to Ctrl+9 jump straight to one.
- Up from the prompt's first line enters the newest response. At either end, arrow keys stay in the responses; press Tab to move to the prompt.
On macOS the same accelerators map to Command where appropriate.
Run from source (any OS)
- Install Python 3.10 or newer.
- Install dependencies:
pip install -r requirements.txt - Launch it:
python blind_pilot.py
blind_pilot.py is the stable entry point and the implementation lives in blindpilot_app.py. claude_reader.py is a compatibility alias for anything written against the original application.
Building
python -m pip install -r requirements-build.txt
pyinstaller --onedir --windowed --name BlindPilot --add-data "EarCons;EarCons" blind_pilot.py
The one-directory layout is what lets the verified updater replace the application after it exits. The Windows installer is built from installer/BlindPilot.iss. Pushing a v* tag runs .github/workflows/release.yml, which tests startup and the full suite, then publishes the Windows installer, the Windows x64 archive, and both macOS archives with SHA-256 files.
Before opening a pull request:
python -m pytest -q
python -m ruff check .
python -m ruff format --check .
Contributing
Pull requests are welcome. If BlindPilot has been useful to you, open a PR with a fix or feature and I'll review it.
License
BlindPilot is under the MIT license — use it, change it, redistribute it, or package it, no permission needed. Every source file carries an SPDX-License-Identifier: MIT header so packaging tools pick the license up automatically.
Copyright (c) 2026 doubletaponair and BlindPilot contributors. The name changed and the backends multiplied, but the origin has not been erased: Claude Code Reader is credited in this README, the About dialog, the source headers, CREDITS.md, and the retained original specification at original-claude-code-reader-spec.html.
Community and support
Report bugs and request features in Issues. For questions, feedback, and release news, join the SerrebiProjects Telegram group.