⏳ This skill is pending AI review.
Scores will appear once the review pipeline completes.
claude-bionify
Configure and control the claude-bionify bionic reading plugin. Use when the user asks about bionic reading settings (fixation/strength, boundary, minimum word length, acronyms, URLs, headings), wants to turn the bionic display on, off, or toggle it, asks for the current status, or asks how to use the /claude-bionify commands.
Use with your AI agent
Open your project in any AI assistant that can read your files. Works with ChatGPT, Claude, Claude Code, Codex, Cursor, Hermes Agent, OpenClaw, Grok Bot, and more.
Download SKILL.mdYour agent needs access to this page’s linked instructions and your project files. Copying does not install or execute anything.
// RATINGS
// README
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.
Features
- ⚡ Faster, calmer reading. Fixation points pull your eye word to word through long answers.
- 🌍 Any language. Unicode-aware, so accents and non-Latin scripts bold correctly, not just English.
- 🎚️ Three boundary modes.
fraction,syllable, orlog— see Configure. - 🧩 Markup-aware. Code, links, URLs, paths, and acronyms stay intact (what it touches).
- 🔒 Private, zero-dependency. Nothing to install, no network, no telemetry — it runs entirely on your machine.
- 🪶 Crash-safe. On any error it falls back to the original text.
Install
/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.
Configure
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. |
Control it live
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.
Themes
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. Each one also tints diffs, the background behind your
messages, and mouse selection in its own colors, and every text-on-background pair
meets WCAG AA contrast (4.5:1; 3:1 for the changed-word highlight inside a diff line).
| 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 | #93A1A1 | #268BD2 | #586E75 | #859900 | #CB4B16 | #DC322F |
| Solarized Light | light | #586E75 | #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.
How it works
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.
What it touches
- Bolded: ordinary prose words.
- Left alone: inline
`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**. - Never touched: your own input and tool output.
Requirements
- Claude Code 2.1.152 or newer (the release that added the
MessageDisplayhook) - Python 3.10+, reachable as
python3or through thepylauncher (see below) - A terminal that renders markdown bold (any modern terminal)
On macOS, Linux, and WSL the hook runs as python3. Native Windows is different: the
python.org installer creates python.exe and py.exe but no python3.exe, and Windows ships
a Microsoft Store placeholder named python3.exe that exits without running Python. The hook
therefore also launches through the py launcher.
Two consequences there. Bolding works, but the /claude-bionify:* commands do not, because
they run through a shell where no fallback syntax suits both Git Bash and PowerShell;
installing Git for Windows, or a real python3 on PATH, brings them back. And if your
Python came from conda, uv, or pyenv-win, neither name may resolve, so point the hook at your
interpreter with a MessageDisplay entry in ~/.claude/settings.json whose command is the
absolute path to your python.exe.
If nothing looks bold but /claude-bionify:status reports ON, check the terminal before the
plugin: ask Claude to write a plain **word** in a reply. If that is not bold either, the hook
is not the problem. Windows Terminal has a per-profile Bold text style setting
(intenseTextStyle in its settings.json) which on bright only shifts the foreground colour,
invisible in schemes where the normal and bright variant
// HOW IT'S BUILT
KEY FILES