claude-stoic
v0.2.1
Published
Render Stoic philosophy quotes in the Claude Code status line.
Maintainers
Readme
claude-stoic
Puts a Stoic quote in your Claude Code status line. One quote per session, picked at startup, stable until you restart.
npx claude-stoic
Install
Interactive (picks scope + emoji prefix):
npx claude-stoicNon-interactive:
npx claude-stoic --global --yes --icon "🏛️"
npx claude-stoic --project --source aurelius,seneca --yesThen restart Claude Code.
What it touches
Writes two things:
~/.claude/claude-stoic/(or./.claude/claude-stoic/with--project) —statusline.js+quotes.json.~/.claude/settings.json— setsstatusLineto run the script.
{
"statusLine": {
"type": "command",
"command": "node \"/Users/you/.claude/claude-stoic/statusline.js\" --icon \"🏛️\""
}
}If you already have a statusLine set, you'll be asked before it's overwritten.
Uninstall
npx claude-stoic --remove --global
# or
npx claude-stoic --remove --projectDeletes the statusLine entry and the install dir. Leaves the rest of settings.json alone.
Flags
| Flag | Default | Notes |
| ---------------- | ----------- | -------------------------------------------------- |
| --global | yes | Install into ~/.claude/ |
| --project | | Install into ./.claude/ |
| --source <csv> | all | Pick from a subset, e.g. aurelius,seneca |
| --icon <text> | | Raw prefix, no brackets (e.g. 🏛️) |
| --label <text> | STOIC | Bracketed prefix ([STOIC]). Ignored if --icon. |
| --remove | | Uninstall |
| --dry-run | | Print what would change |
| --list | | List sources + counts |
| --yes, -y | | Skip prompts |
| --help, -h | | |
| --version,-v | | |
Sources
npx claude-stoic --list| Key | Author |
| ------------ | --------------------------------------------------- |
| aurelius | Marcus Aurelius |
| seneca | Seneca |
| epictetus | Epictetus |
| zeno | Zeno of Citium (via Diogenes Laertius, Stobaeus) |
| cleanthes | Cleanthes |
| chrysippus | Chrysippus (via Diogenes Laertius) |
| musonius | Musonius Rufus |
| cato | Cato (via Plutarch) |
| hecato | Hecato of Rhodes (via Seneca) |
| general | Mixed maxims, Latin tags (memento mori, amor fati) |
How the per-session lock works
Claude Code re-runs the status-line command on every render (mode toggles, keypresses, etc). To avoid flicker, the script caches the chosen quote keyed by session_id (read from the JSON Claude Code pipes to stdin). Cache lives at $TMPDIR/claude-stoic-cache/. New session, new quote.
Want a new quote without restarting? Delete that dir:
rm -rf "$TMPDIR/claude-stoic-cache"Custom quotes
Edit the installed quotes.json directly, or point statusLine.command at your own script. The bundle only ships Stoics on purpose.
Requirements
- Node 18+
settings.jsonmust be plain JSON (no//or/* */comments)
Contributing
PRs for new quotes welcome. Keep them short — one status-line row. Cite the primary source if you have it (Meditations, 5.20 beats "attributed").
License
MIT © Anton Mendelson
