Anima turns your Claude buddy into an oracle. A cross-session code supervisor running the full Claude model, inside a native macOS app. It watches tool patterns across every active session, catches retry loops and read-heavy spirals before you've noticed them, and surfaces observations you can select and paste straight into the conversation.
Claude Code ships with a basic buddy. An ASCII creature that hatches in your terminal, watches you work, and occasionally drops a line in a speech bubble. It's charming. It's also limited: the buddy can't see across sessions, can't remember what happened last time, its commentary comes from a small model working with a 5,000-character window, and the speech bubble text can't be copied or pasted back into your session.
Each project folder also gets its own familiar. An ASCII companion that animates while Claude is working, so you can see at a glance which sessions are done and waiting on you. Every 1,000 tokens earns 1 @nim@. Spend it to re-roll for a new species, rarity, and personality.
Anima spawns Claude Code as a subprocess, pipes stream-json, renders messages in its own UI, and manages sessions. It's not watching Claude from the outside. It is the interface.
- Multi-session dashboard. All your Claude Code sessions in one window. See at a glance which are working, which are done, and which are waiting on you.
- Cross-session watcher. A Rust daemon monitors tool patterns across all sessions. Catches retry loops and read-heavy spirals before you've noticed them.
- Persistent companions. Every project gets its own ASCII creature with species, rarity, and stats. Token usage earns nim currency for re-rolls. Same project always rolls the same buddy.
- Oracle commentary. Your companion's observations run through the full Claude model, not the small one /buddy uses. The text is selectable so you can paste it straight back into your session.
- Session history. Replay past conversations without digging through JSONL files.
- Voice input. Bluetooth mic and push-to-talk via WebSocket bridge.
- Model and effort overrides. Switch models and effort levels per session from the UI.
- One project, one companion. Every project gets a unique familiar generated from a weighted rarity pool. Two developers on the same codebase won't get the same creature.
- @nim@ token economy. 1 @nim@ per 1000 tokens spent. Spend on re-rolls and new characters.
- Collectible familiar cards. Each project gets a stat card: species, rarity, power ratings, session history.
- Cross-session watcher. Rust daemon monitors all active Claude sessions simultaneously. Catches retry loops and read-heavy spirals in real time.
- Oracle commentary. Companion fires contextual observations in a speech bubble. Selectable text you can paste straight into the session.
- Voice input. Bluetooth mic + push-to-talk. Hands-free Claude via WebSocket bridge.
- Session history. Full session browser. Replay any past conversation. JSONL-backed.
- Native performance. Tauri v2 + Rust backend. Actual macOS app, 4MB binary.
The watcher sees what you miss. The daemon tracks tool patterns across all active sessions. When it catches you going in circles, the companion says something.
Commentary runs as short background prompts via the Claude CLI, capped at 2 concurrent calls. All processing is local; nothing leaves your machine except the API calls you'd make anyway.
- macOS 13 Ventura or later
- Claude Code CLI installed and authenticated
- Node.js 18+
- Install Claude Code CLI:
npm install -g @anthropic-ai/claude-code
- Authenticate:
claude login
- Download
Anima.dmgfrom Releases - Open the app
- Point it at a project directory and start a session
The companion generates on first session. @nim@ accrues automatically.
No sessions starting or blank companion? Anima requires an authenticated Claude Code CLI. Run claude login in your terminal and reopen the app.
git clone https://github.com/btangonan/anima
cd anima
npm install
npm run tauri devProduction build:
npm run tauri build
# Output: src-tauri/target/release/bundle/Rust tests:
cd src-tauri && cargo testAnima is a Tauri v2 desktop app. The frontend is vanilla JS, no framework, no bundler. The Rust backend handles file I/O, path security, companion sync, and the cross-session watcher. A WebSocket bridge handles voice input.
The watcher (daemon.rs) is a Tokio async loop that polls Claude Code's session feed, tracks tool sequences across all active sessions, and emits companion commentary via Tauri events when patterns fire. The oracle (the voice behind the companion bubble) is a claude -p subprocess with personality context injected from your companion's species and stats.
Full architecture notes: docs/architecture.md
Issues and PRs welcome. See .github/ISSUE_TEMPLATE for bug report and feature request templates.
Alpha software. Solo project. Breaking changes happen.
MIT © Bradley Tangonan



