Setup and controls

Linger 0.1.0 reads Claude Code and Codex transcripts. Install with Rust 1.88 or newer, or get an Apple Silicon or Intel macOS binary. These binaries are not Apple Developer ID signed or notarized. Linux binary distribution is still to be decided.

Install and open a session

cargo install --git https://github.com/rickhallett/linger --tag runtime-v0.1.0 --locked
linger

To try the fictional demo or install the optional documentation pack, clone the repository and run linger examples/repair.jsonl --follow from its root.

Press Enter to open the tool inspector. Choose a call with j / k, then press Enter again to focus its content. Esc returns one level.

Open your own session

linger                         # newest session for this project
linger /path/to/project        # follow another project
linger /path/to/session.jsonl  # replay a recording
linger inspect <file-or-id>     # headless summary

Linger reads existing transcripts. It does not execute recorded commands or modify the original transcript. Live output is only as current as the transcript; Linger does not intercept process stdout.

Build your field guide

Drill into a tool call to save its input specimen, then press G to browse the commands you have inspected. Opening a recording alone does not add entries. Open an entry with Enter, use j / k to choose a form and h / l to cycle specimens. Press n to write a field note, then Enter to save. Search with /; names, forms and notes are included.

Mark entries with w (Want to understand), p (Practising), L (Learned), or u (Unmarked). These are your learning choices. Notes stay local and survive command-cache rebuilding. Cached examples require their original recording to inspect output.

Keep your hands on the keyboard

KeyAction
Enter / EscGo deeper / return one level
j / k or ↓ / ↑Select calls or scroll focused content
1 / 2Recorded input / output
3 or eCommand reference notes
vReadable / raw payload
, / .Previous / next recorded event
[ / ]Previous / next prompt boundary
g or EndLatest recorded event
SpacePause / resume playback
/ then EnterSearch current content; n finds the next match
i / R in inspectorRequest / retry Mercury interpretation
q / Ctrl-CQuit (q remains text while searching)

Explore the parts of a command

Linger 0.1.0 provides a Command tab. With the optional documentation pack installed, press 3, then use h / l to move between parts. The selected flag, argument or shell construct is highlighted alongside source-labelled documentation. Unknown parts remain explicit.

From the Linger checkout, install the optional pack, then restart Linger:

uv run scripts/setup-explainshell.py

Setup downloads the separately installed explainshell backend and documentation. Lookups stay local and do not execute captured commands. In the pattern library, f switches combinations, programs and wrappers; S reveals inline scripts.

Optional interpretation

Inspection and replay work without a model key. To enable Mercury, configure OPENROUTER_API_KEY (default model inception/mercury-2.5) or INCEPTION_API_KEY (default model mercury-2.5) in your process environment or private configuration file.

Linger reads a .env file in the launch directory, falling back to $XDG_CONFIG_HOME/linger/.env or ~/.config/linger/.env. LINGER_ENV_FILE selects an exact file. Keep credentials out of Git.

Only an explicit i or retry action sends the selected call’s input and recorded output, plus bounded reference notes, to your configured provider: openrouter.ai or api.inceptionlabs.ai. Input and output are each limited to 48 KB, with omissions labelled. This build does not scrub transcript secrets. Review the selected evidence before sending it.

Requests run asynchronously. An interpretation is separate from recorded evidence, and an earlier interpretation is not treated as current when output changes.

Current boundaries

Command references cover common invocations, not every shell construct. Embedded Python and JavaScript remain code. Missing or truncated provider output cannot be recovered, and images are not rendered. The pattern library and persistent learning states are available in the 0.1.0 release. Press b to open the library and Tab to switch scope. Linger 0.1.0 includes selectable command parts with an optional documentation pack. Coverage is bounded and unknown parts stay labelled. Episode loops remain future work.

Built on Zoetrope

Linger is derived from Zoetrope by Furkan Kalaycioglu. Its transcript discovery, graph and replay engine remain the foundation. Linger adds the inspector, evidence retention and interpretation layer. The original MIT notice is preserved; Linger’s additions are also MIT-licensed.

Return to Linger