Accessible desktop frontend for Claude Code, OpenAI Codex, and FreeBuff
  • Python 97%
  • HTML 2.5%
  • Inno Setup 0.5%
Find a file
serrebidev 2d76afb228 Release 0.3.14
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
2026-08-12 19:32:35 -07:00
.github/workflows Ship the console host so FreeBuff runs, and stop reading reasoning aloud 2026-08-09 14:10:21 -07:00
EarCons Release BlindPilot 0.3.0 2026-08-09 11:38:01 -07:00
installer Close what will not close when setup is run by hand 2026-08-12 19:16:53 -07:00
tests Stop leaking our own libraries into every program we start 2026-08-12 18:54:50 -07:00
.gitattributes Release BlindPilot 0.3.0 2026-08-09 11:38:01 -07:00
.gitignore Hide console windows, add Stop, fix FreeBuff answers and model 2026-08-09 13:34:41 -07:00
agent_backends.py Say what the duck-typed objects are, and stop guessing at the rest 2026-08-12 19:29:54 -07:00
app_updater.py Say what the duck-typed objects are, and stop guessing at the rest 2026-08-12 19:29:54 -07:00
blind_pilot.py Release BlindPilot 0.3.0 2026-08-09 11:38:01 -07:00
blindpilot_app.py Release 0.3.14 2026-08-12 19:32:35 -07:00
CHANGELOG.md Release 0.3.14 2026-08-12 19:32:35 -07:00
claude_reader.py Release BlindPilot 0.3.0 2026-08-09 11:38:01 -07:00
CREDITS.md Release BlindPilot 0.3.0 2026-08-09 11:38:01 -07:00
LICENSE Release BlindPilot 0.3.0 2026-08-09 11:38:01 -07:00
markdown_rows.py Bring past conversations back, and compact the ones still going 2026-08-10 00:49:48 -07:00
NOTICE Release BlindPilot 0.3.0 2026-08-09 11:38:01 -07:00
original-claude-code-reader-spec.html Release BlindPilot 0.3.0 2026-08-09 11:38:01 -07:00
pytest.ini Release BlindPilot 0.3.0 2026-08-09 11:38:01 -07:00
README.md Keep focus in the responses, and FreeBuff on DeepSeek V4 Pro 2026-08-12 17:56:21 -07:00
RELEASE_NOTES.md Release 0.3.14 2026-08-12 19:32:35 -07:00
requirements-build.txt Make release checks reproducible 2026-08-09 11:46:25 -07:00
requirements.txt Release BlindPilot 0.3.0 2026-08-09 11:38:01 -07:00
ruff.toml Make release checks reproducible 2026-08-09 11:46:25 -07:00
session_history.py Format to ruff's layout, which the release build checks 2026-08-10 00:52:13 -07:00

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.

Join SerrebiProjects on Telegram License: MIT

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)

  1. Download BlindPilot-Setup-x64.exe.
  2. 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

  1. Download BlindPilot-Windows-x64.zip.
  2. 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)

  1. Install Python 3.10 or newer.
  2. Install dependencies: pip install -r requirements.txt
  3. 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.