Bionic Reader
Read text with emphasis on the beginnings of words.
Bionic Reader works with text streams, Markdown documents, and interactive shell sessions. It runs locally and keeps your words intact. Try different emphasis settings to find what feels comfortable; no reading-speed improvement is promised.
Bionic Reader emphasizes word beginnings.
Installation
Install with your package manager using the commands below. Homebrew installs prebuilt binaries; Cargo installs from crates.io. See installation details for channel availability, direct-download alternatives, and platform requirements.
Homebrew
brew tap arturoaviles/tap
brew trust arturoaviles/tap
brew install bionic-reader
Homebrew selects the matching prebuilt binary. See the Homebrew guide for updates, removal, and platform requirements.
Linux
# Debian / Ubuntu
curl -fL "https://github.com/arturoaviles/bionic-reader/releases/latest/download/bionic-reader-linux-$(dpkg --print-architecture).deb" -o bionic-reader.deb
sudo apt install ./bionic-reader.deb
# Fedora
curl -fL "https://github.com/arturoaviles/bionic-reader/releases/latest/download/bionic-reader-linux-$(rpm --eval '%{_arch}').rpm" -o bionic-reader.rpm
sudo dnf install --nogpgcheck ./bionic-reader.rpm
# Arch Linux
curl -fL "https://github.com/arturoaviles/bionic-reader/releases/latest/download/bionic-reader-linux-$(uname -m).pkg.tar.zst" -o bionic-reader.pkg.tar.zst
sudo pacman -U ./bionic-reader.pkg.tar.zst
Python and Node.js
# pip (in a virtual environment) or uv
pip install bionic-reader
uv tool install bionic-reader
# npm, Yarn, or pnpm
npm install --global @arturoaviles/bionic-reader
yarn add @arturoaviles/bionic-reader
pnpm add --global @arturoaviles/bionic-reader
Cargo
cargo install bionic-reader --locked
Yarn installs into the current project; run it with yarn bionic-reader.
Package managers select the CPU architecture automatically. Linux release
filenames use the native architecture query shown above.
You can also download native binaries from GitHub Releases.
Application libraries
Install packages from PyPI, npm, or crates.io. The library APIs below share the CLI's local transformation engine. See the library guide for complete options, errors, and platform requirements.
Earlier CLI-only releases do not include the callable APIs shown below. The registry installation commands select the latest available release.
Python
The library API requires Python 3.11+. Install into your application's virtual environment:
python -m pip install bionic-reader
from bionic_reader import Reader
reader = Reader()
print(reader.render("Hello world", format="html", profile="balanced"))
print(reader.segments("Hello world"))
JavaScript
The library API requires Node 22+. Install into your application:
npm install @arturoaviles/bionic-reader
Initialize the bundled WebAssembly engine once:
import { createReader } from '@arturoaviles/bionic-reader';
const reader = await createReader();
console.log(reader.render('Hello world', { format: 'html', profile: 'balanced' }));
console.log(reader.segments('Hello world'));
CommonJS uses const { createReader } = require('@arturoaviles/bionic-reader')
and awaits initialization in an async function. Browser bundlers select the
browser loader. React applications can use BionicReaderProvider and
BionicText from @arturoaviles/bionic-reader/react; see the
React example for initialization and hydration.
Rust
Requires Rust 1.85.1+. Add the crate to your application:
cargo add bionic-reader
use bionic_reader::reading::{Options, Reader};
use bionic_reader::settings::OutputFormat;
fn main() -> Result<(), bionic_reader::Error> {
let reader = Reader::new();
let options = Options::default();
println!("{}", reader.render("Hello world", OutputFormat::Html, &options)?);
println!("{:?}", reader.segments("Hello world", &options)?);
Ok(())
}
Formatted output requires an explicit ansi, plain, markdown, or html
format. Text segments contain literal text and an emphasized flag for custom
presentation. Calls use explicit settings and deterministic defaults; they do
not implicitly read CLI configuration or terminal state.
The reader
bionic-reader read article.txt
cat article.txt | bionic-reader read
Scroll with the arrow keys or j/k, search with /, and press q to leave.
Use ? for all shortcuts. Adjust emphasis while you read with +/-, or try
settings interactively with bionic-reader preview.
The CLI
bionic-reader -t 'Make long passages easier to follow.'
cat article.txt | bionic-reader
bionic-reader --input-format markdown --style always < article.md
# Change the reading style.
bionic-reader --profile subtle -t 'A lighter touch.'
bionic-reader --fraction 0.6 --every 2 -t 'Choose your own emphasis.'
# Export HTML or Markdown.
bionic-reader --format html < article.txt > article.html
bionic-reader --format markdown < article.txt > emphasized.md
See bionic-reader --help and the usage guide
for formats, profiles, safe terminal controls, and reader shortcuts.
Shell integration
Start a reading session with bionic-reader session. Known editors, pagers, and
full-screen applications use passthrough. Inside a session, use bionic-reader off, on, or toggle to control emphasis, and exit to leave.
For automatic sessions, add one initializer to your shell configuration:
# ~/.bashrc
eval "$(bionic-reader init bash)"
# ~/.zshrc
eval "$(bionic-reader init zsh)"
Bash, Zsh, fish, shell completions, and seven framework adapters are covered in the shell guide.
Configuration
Save preferences in ~/.config/bionic-reader/config.toml, or beneath an absolute
XDG_CONFIG_HOME:
profile = "balanced"
fraction = 0.5
emphasis = "bold"
Command-line settings override the file. See the configuration guide for all options and precedence.
Contributing
See CONTRIBUTING.md for development checks, BUILD.md for source builds, and RELEASE.md for release and package publication.
License
MIT.
Metadata
Release files for bionic-reader 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 36.6 MB
Release files / bionic_reader-0.2.0-cp311-abi3-musllinux_1_2_x86_64.whl
| Download URL | bionic_reader-0.2.0-cp311-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 6.4 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
3388f72a7bfb962bfa45ebc110e81e5cb1f44e62950dfc11dfc3775db57dc1fa
|
|
BLAKE2b-256 checksum How to use checksums |
8978d2120b1d4afb4b1f36209150120a011a69b09c48f454288d0c706549353a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / bionic_reader-0.2.0-cp311-abi3-musllinux_1_2_aarch64.whl
| Download URL | bionic_reader-0.2.0-cp311-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 6.3 MB |
| Tags | CPython 3.11 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
833301c75c167e16bb601d5512d25eb47ef8bd45b8d64fe44b588a3c3186f887
|
|
BLAKE2b-256 checksum How to use checksums |
68fc489b0ca351d66e223762b2d68706672d7bcf25fd75588902d4dc058f91ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / bionic_reader-0.2.0-cp311-abi3-manylinux_2_28_x86_64.whl
| Download URL | bionic_reader-0.2.0-cp311-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 6.3 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
46eefff7b8c2193ac6cb17a6576962778fb3e994547171a08399fef3e93f3ae7
|
|
BLAKE2b-256 checksum How to use checksums |
5d9c953bbb373498b5f1d080d91ef992375ad68fa2f29cbb1d182b7fee1b7565
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / bionic_reader-0.2.0-cp311-abi3-manylinux_2_28_aarch64.whl
| Download URL | bionic_reader-0.2.0-cp311-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 6.3 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
ef1771cbabb1104d3c3c9992c1d3423bdeb9ade8821529cfcf782fa3e3c94ddc
|
|
BLAKE2b-256 checksum How to use checksums |
8de1fed19efa64d2a44f372df0f719c8b83f8dd7a4eac79ac85e4176752b08c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / bionic_reader-0.2.0-cp311-abi3-macosx_11_0_x86_64.whl
| Download URL | bionic_reader-0.2.0-cp311-abi3-macosx_11_0_x86_64.whl |
|---|---|
| Size | 5.7 MB |
| Tags | CPython 3.11 abi3 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
71a06f49fcb1fe60aae8391c3e18df9cac36659bcd9dcb5a0c67d207b55f83d4
|
|
BLAKE2b-256 checksum How to use checksums |
a996abb21cfb8fbacaf3d45e18a33c36fb33e92f56a01fcc94e4198958ba8469
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / bionic_reader-0.2.0-cp311-abi3-macosx_11_0_arm64.whl
| Download URL | bionic_reader-0.2.0-cp311-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.7 MB |
| Tags | CPython 3.11 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
188836313fd5c41ffe9fa68fef20b498423c01045931c5c1da25889880d3da06
|
|
BLAKE2b-256 checksum How to use checksums |
26c78806dc0cd975e733a05134ebd78d5f4919099ea1640093f66088963df0c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logSecurity for bionic-reader 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 6 files in this release have been uploaded with provenance metadata.
Attestation for bionic_reader-0.2.0-cp311-abi3-musllinux_1_2_x86_64.whl
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.