Are you the author? Sign in to claim
Bionic reading for Claude Code: bolds the leading part of each word in Claude's streamed replies so your eyes move faste
Bionic reading for Claude Code. Bold the front of every word so your eyes move faster.
So Bionify makes Claude's replies easier to read.
claude-bionify bolds the leading part of each word in Claude's streamed replies, giving
your eye a fixation point per word. This is the bionic-reading technique, inspired by the
eye-movement research showing that we read by fixating a single convenient position toward the
start of each word, where its opening letters carry the most information for recognising it
(Rayner, 1979;
O'Regan et al., 1984).
It only changes how text looks on screen. What gets saved to the transcript and what Claude
reads stays the original, unbolded text, which you can reopen any time with the Ctrl+O
transcript view.
fraction, syllable, or log — see Configure./plugin marketplace add abullard1/claude-bionify
/plugin install claude-bionify@claude-bionify
claude-bionify is active right away. Turn it off or back on any time with /claude-bionify:off and
/claude-bionify:on, or from /plugin.
When you enable the plugin, Claude Code prompts for these (all optional):
| Setting | Default | Meaning |
|---|---|---|
| Bold boundary | fraction | fraction bolds by Fixation strength; syllable ends each word at its first syllable (e.g. string); log grows logarithmically so long words are bolded less. |
| Fixation strength | 0.5 | Fraction of each word to bold (0.1–0.9). Higher is bolder. Applies to fraction mode only. |
| Minimum word length | 4 | Words shorter than this are left unbolded. |
| Skip acronyms | on | Leave ALL-CAPS acronyms like API or JSON whole. |
| Protect URLs, paths, files | on | Don't bold inside URLs, emails, file paths, or filenames. |
| Skip headings | on | Leave markdown headings (# lines) unbolded; they're already prominent. |
Change claude-bionify mid-session without a reload or any config editing. The next reply reflects it right away:
| Command | Does |
|---|---|
/claude-bionify:toggle | Flip claude-bionify on/off |
/claude-bionify:on · /claude-bionify:off | Turn it on or off explicitly |
/claude-bionify:set strength 0.7 | Set fixation strength (0.1–0.9) |
/claude-bionify:set boundary syllable | Switch boundary (fraction · syllable · log) |
/claude-bionify:set minlen 5 · /claude-bionify:set acronyms off · /claude-bionify:set urls off · /claude-bionify:set headings off | Tweak the other settings |
/claude-bionify:status | Show the active overrides |
/claude-bionify:reset | Clear overrides, back to your configured defaults |
These write a small override file that the hook reads on every message, so changes take effect immediately and persist until you reset.
claude-bionify also ships seven color palettes for Claude Code's /theme picker
(custom:claude-bionify:<name>). They retint Claude Code's interface and are
independent of the bolding.
| Theme | Base | Text | Accent | Subtle | Success | Warning | Error |
|---|---|---|---|---|---|---|---|
| Nord | dark | #D8DEE9 | #88C0D0 | #4C566A | #A3BE8C | #EBCB8B | #BF616A |
| Dracula | dark | #F8F8F2 | #BD93F9 | #6272A4 | #50FA7B | #F1FA8C | #FF5555 |
| Gruvbox | dark | #EBDBB2 | #FABD2F | #928374 | #B8BB26 | #FE8019 | #FB4934 |
| Solarized Dark | dark | #839496 | #268BD2 | #586E75 | #859900 | #CB4B16 | #DC322F |
| Solarized Light | light | #657B83 | #268BD2 | #93A1A1 | #859900 | #CB4B16 | #DC322F |
| Sepia | light | #5C3C24 | #B58900 | #8A7E72 | #859900 | #CB4B16 | #DC322F |
| Focus Dark | dark | #ABB2BF | #C678DD | #4B5263 | #98C379 | #D19A66 | #E06C75 |
Plugin themes are read-only. Highlight one in /theme and press Ctrl+E to copy it
into ~/.claude/themes/ and tweak your own.
Claude streams a reply ▸ claude-bionify ▸ bolded text in your terminal
As each batch of Claude's reply streams in, claude-bionify bolds it just before it reaches your screen — so only what you see changes, never the text itself.
`code`, fenced code blocks,
markdown link/image targets, URLs, emails, file paths and filenames, ALL-CAPS acronyms,
and any text Claude already wrapped in **bold**.python3 on your PATH# Run against a working copy without installing
claude --plugin-dir ./plugins/claude-bionify
# Validate the manifest and components
claude plugin validate ./plugins/claude-bionify --strict
# Run the tests (project-local virtualenv, nothing system-wide)
python3 -m venv .venv && .venv/bin/pip install pytest
.venv/bin/python -m pytest tests/
Set CLAUDE_BIONIFY_DEBUG=1 to make the hook re-raise on error instead of silently falling back,
so failures surface while you iterate.
claude-bionify/
├── .claude-plugin/
│ └── marketplace.json # marketplace catalog
├── assets/ # logo, demo, theme gallery (SVG) + generate_themes.py
├── plugins/claude-bionify/ # the plugin
│ ├── .claude-plugin/plugin.json
│ ├── hooks/hooks.json # MessageDisplay -> bionify.py
│ ├── commands/ # /claude-bionify:on, off, toggle, set, status, reset
│ ├── skills/ # model-invoked control/config skill
│ ├── scripts/
│ │ ├── core.py # functional core: pure formatting + settings (no I/O)
│ │ ├── overrides.py # runtime-override persistence (shared contract)
│ │ ├── bionify.py # the MessageDisplay hook shell (entrypoint)
│ │ └── control.py # the /claude-bionify control CLI
│ ├── themes/ # 7 color themes for /theme (experimental component)
│ └── README.md
└── tests/test_bionify.py
Issues and pull requests are welcome. Run .venv/bin/python -m pytest tests/ and
claude plugin validate ./plugins/claude-bionify --strict before opening a PR.
|
|
Samuel Ruairí Bullard Human-Centred AI @ University of Regensburg · Regensburg, Germany GitHub @abullard1 · sams3dlibrary.com · X @samudschigo |
Built by Samuel Ruairí Bullard. If claude-bionify makes your reading easier, a ⭐ on the repo is hugely appreciated.
MIT © 2026 Samuel Ruairí Bullard.
WCAG accessibility audit — automated scanning, manual review, remediation
1000+ skills curated from Anthropic, Vercel, Stripe, and other engineering teams
Design enforcement with memory — keeps your UI consistent across a project
Detects 37 AI writing patterns and rewrites text with human rhythm across 5 voice profiles