Bookshelf

Bookshelf for Codex + Claude Code

Let the terminal widen your world while it works.

Instead of staring at another tool call, meet one useful thought every few completed turns—a quiet quote chosen to add perspective without stealing your focus.

5completed turns
1widening thought
0model calls

Useful waiting, by design

A small literary reset between agent turns.

Bookshelf counts completed turns locally and stays quiet until its cadence is due. Then it surfaces one compact quote through the same Stop-hook path packaged for Codex and Claude Code.

$ bookshelf quote --intent refactor

“Do nothing which is of no use.” — Miyamoto Musashi, The Book of Five Rings

$ bookshelf feedback up|down
  • Intent → tags, locally. For example, refactor maps to simplicity, discipline, and focus.
  • Feedback stays local. bookshelf feedback up|down adjusts a future local pick; it does not report a task back to a service.

Bounded by design

Enough context to be useful. Nothing else.

Bookshelf accepts an explicit intent or a bounded host metadata label only. It does not accept or inspect commands, paths, prompts, transcripts, code, tool arguments, model output, or network calls.

  • Ambient delivery is optional and off by default.
  • If the host cannot provide the bounded signal safely, matching fails closed.
  • Adapters keep their own errors contained; this is not a guarantee about a host turn.

The library behind the moment

Thousands of possible encounters, selected with clear boundaries.

The interactive terminal library, search, reading lists, and on-demand quote command are there when you want them. They support the ambient moment; they are not the point of it.

3,124quote records
3,111normalized unique texts
1,117catalogued books
949quoted works
585v2 primary-source-linked records pending human review
2,539legacy records explicitly unverified

Where it meets you

Inside the coding session. Not in another tab.

The plugin packages the same fail-soft Stop hook for Codex Desktop, Codex CLI, and Claude Code. Pi and Hermes adapters are included too, but the central experience is simple: while your agent works, the waiting gives something back.

Codex Desktop + CLI

One plugin surface

Install the packaged Codex plugin and let its systemMessage appear at the Stop boundary.

Claude Code

The same cadence

The validated plugin declares the same optional Stop adapter for Claude Code sessions.

Pi + Hermes

Broader agent support

Both install the canonical skill and their native end-of-turn adapter.

Private by default

Local and bounded

No prompt, transcript, code, command, path, tool argument, or model output is sent anywhere.

Real CLI capture

Five completed turns. One useful interruption.

This recording invokes the shipped standalone Stop hook in an isolated terminal. The first four turns stay silent; the fifth returns the compact system message that Codex and Claude Code can surface in-session.

Bookshelf · Codex + Claude Code compatible Stop hookReal terminal capture
Transcript and summary

A real isolated CLI capture invokes five completed-turn Stop events. The first four return no visible message. On the fifth, Bookshelf emits: “Do nothing which is of no use.” — Miyamoto Musashi, The Book of Five Rings. The video intentionally shows only the CLI behavior, while the packaged hook is shared by Codex and Claude Code.

Make the waiting useful

Let every few turns leave you a little less narrow.

Published with Pagecast