Skip to main content

Bionic Reader

Read text with emphasis on the beginnings of words.

CI MIT license

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, or the Go module proxy. 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

See the Python examples for formats, profiles, Markdown, custom rendering, configuration, and file conversion.

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

See the JavaScript examples for Node.js, browser, TypeScript, and React usage.

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

See the Rust examples for document transformation, text segments, configuration, streaming, and custom segmentation.

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.

Go

Requires Go 1.25+. Install into your application:

go get github.com/arturoaviles/bionic-reader

See the Go examples for formats, profiles, Markdown, concurrent use, configuration, and file conversion.

package main

import (
    "context"
    "fmt"
    bionicreader "github.com/arturoaviles/bionic-reader"
)

func main() {
    ctx := context.Background()
    reader, err := bionicreader.NewReader(ctx)
    if err != nil { panic(err) }
    defer reader.Close()
    html, err := reader.Render(ctx, "Hello world", bionicreader.HTML, bionicreader.Options{})
    if err != nil { panic(err) }
    fmt.Println(html)
}

The Rust engine is embedded as WebAssembly and runs locally through wazero. Consumers need no CGO, Rust installation, separate CLI, or runtime downloads. Reuse and close the reader; calls are safe concurrently and accept contexts for cancellation. Go support starts with the 0.3.0 release.

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.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for bionic-reader 0.3.0
File Actions
bionic_reader-0.3.0-cp311-abi3-musllinux_1_2_x86_64.whl CPython 3.11 abi3 Linux musl 1.2+ x86-64 Details for bionic_reader-0.3.0-cp311-abi3-musllinux_1_2_x86_64.whl
bionic_reader-0.3.0-cp311-abi3-musllinux_1_2_aarch64.whl CPython 3.11 abi3 Linux musl 1.2+ ARM64 Details for bionic_reader-0.3.0-cp311-abi3-musllinux_1_2_aarch64.whl
bionic_reader-0.3.0-cp311-abi3-manylinux_2_28_x86_64.whl CPython 3.11 abi3 Linux glibc 2.28+ x86-64 Details for bionic_reader-0.3.0-cp311-abi3-manylinux_2_28_x86_64.whl
bionic_reader-0.3.0-cp311-abi3-manylinux_2_28_aarch64.whl CPython 3.11 abi3 Linux glibc 2.28+ ARM64 Details for bionic_reader-0.3.0-cp311-abi3-manylinux_2_28_aarch64.whl
bionic_reader-0.3.0-cp311-abi3-macosx_11_0_x86_64.whl CPython 3.11 abi3 macOS 11.0+ x86-64 Details for bionic_reader-0.3.0-cp311-abi3-macosx_11_0_x86_64.whl
bionic_reader-0.3.0-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details for bionic_reader-0.3.0-cp311-abi3-macosx_11_0_arm64.whl

Total release size: 36.6 MB

Release files / bionic_reader-0.3.0-cp311-abi3-musllinux_1_2_x86_64.whl

Download URL bionic_reader-0.3.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
a29b527f769f8543c5f0bf1e711b1f359d251108a3481fdd902787b84694dda9
BLAKE2b-256 checksum
How to use checksums
f68396abce4d5e390cf5cc2b906c31bd34db9084b16c0bec512f935f3fa37bd1
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 28, 2026.

Transparency log

Release files / bionic_reader-0.3.0-cp311-abi3-musllinux_1_2_aarch64.whl

Download URL bionic_reader-0.3.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
0c627e07a4015849e5d606d8829df8b0c9c984753b8ac6be33ff09a8af3445be
BLAKE2b-256 checksum
How to use checksums
c42ba10f8c6ce870a103d7887052913a29141684f1596fbacf89a41bdf4a96c2
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 28, 2026.

Transparency log

Release files / bionic_reader-0.3.0-cp311-abi3-manylinux_2_28_x86_64.whl

Download URL bionic_reader-0.3.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
e027a138a664ee12ae7bdccc2b25ec8b6356491d73db63d9a37c7fb215a7fda3
BLAKE2b-256 checksum
How to use checksums
6dd9b8d5ff36c9df161138e8fcb3fc14b9cbd989f8c166d504b192597a8e639d
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 28, 2026.

Transparency log

Release files / bionic_reader-0.3.0-cp311-abi3-manylinux_2_28_aarch64.whl

Download URL bionic_reader-0.3.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
c6992a23117303419f88be3f3d91474d0dc3e24e610ed80d0b5a4110d6798c5e
BLAKE2b-256 checksum
How to use checksums
dcc5a8891e365f471585d963a0d60db60a75b4c00cecbd3f3034cff48fec046b
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 28, 2026.

Transparency log

Release files / bionic_reader-0.3.0-cp311-abi3-macosx_11_0_x86_64.whl

Download URL bionic_reader-0.3.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
ae9674647c2d1c682b12236fb99083968bd61f099c8b89f52aad7144267e7644
BLAKE2b-256 checksum
How to use checksums
e115b3fbc201e0489cd239274eaa03eaef0cd0103a7daf3b6e0a001c9f7b19d2
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 28, 2026.

Transparency log

Release files / bionic_reader-0.3.0-cp311-abi3-macosx_11_0_arm64.whl

Download URL bionic_reader-0.3.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
9c7f2e7ecb181c6157306c9ca3cf75bca1f686843d45ee7afb9bd61589480edb
BLAKE2b-256 checksum
How to use checksums
6a82a3ae5fa49217126bbc89a0ee0571a6a907e610e283b2d72c621fe559544c
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 28, 2026.

Transparency log

Security for bionic-reader 0.3.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.

Select from 6 files

Attestation for bionic_reader-0.3.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 28, 2026.

Transparency log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page