Anima is a native macOS client for Claude Code, with a "Buddy" system added on top of it. It launches Claude Code as a subprocess, passes messages through a stream-json pipe, renders them in its own interface, and manages sessions, so it is itself the interface rather than observing Claude Code from the outside.
Purpose Anima is designed to give developers using Claude Code a more focused and intuitive session management and supervision experience. It addresses the limitations of the basic "Buddy" in the terminal, which cannot observe across sessions, cannot remember history, and whose commentary comes from a small model with text that cannot be copied.
Main capabilities
- Multi-session dashboard: view all Claude Code sessions in one window and quickly identify which are working, which are finished, and which are waiting for user action.
- Cross-session monitor: a Rust daemon simultaneously monitors tool-call patterns across all active sessions, catches retry loops and read-heavy spirals in real time, and has the buddy alert you when they are detected.
- Persistent buddy: each project has its own ASCII creature with species, rarity, and stats; nim tokens automatically accumulate each session (1 nim per 1000 tokens), and spending nim allows a reroll for a new species, rarity, and personality. The same project always generates the same buddy.
- Oracle commentary: the buddy's observations run through the full Claude model (rather than the small model used by /buddy), and the commentary text can be selected and pasted directly back into the session. Commentary runs as short background prompts, with at most 2 concurrent calls, and all processing happens locally; apart from the API calls you would already be making, nothing leaves your machine.
- Session history: replay past conversations without digging through JSONL files; the data is backed by JSONL.
- Voice input: supports Bluetooth microphones and push-to-talk, enabling hands-free Claude use through a WebSocket bridge.
- Model and effort level overrides: switch models and effort levels per session in the interface.
- Collectible buddy cards: each project gets a stat card containing species, rarity, ability ratings, and session history.
How to use
- Install and authenticate Claude Code: npm install -g @anthropic-ai/claude-code then claude login.
- Build from source (currently no signed.dmg is released): git clone https://github.com/btangonan/anima cd anima git lfs install && git lfs pull nvm use && npm install npm run tauri dev
- Point the app at the project directory and start a session.
- The first session generates a companion, and nim accumulates automatically.
Use cases Suited for macOS users who use Claude Code for development, want to monitor tool-call patterns across sessions, avoid getting stuck in repetitive loops, and want richer interactive feedback. Also suited for developers who enjoy collectible and decorative elements (ASCII companions, stat cards, token economy).
Limitations and requirements
- System requirements: macOS 13 Ventura or later, Apple Silicon.
- Requires an authenticated Claude Code CLI: claude login.
- Node.js 20 LTS (pinned by .nvmrc, run nvm use after cloning). Node 22+ triggers vitest #8757; to run tests on these versions use NODE_OPTIONS=--no-webstorage npm test.
- Requires Git LFS: necessary at clone time, the bundled speech sidecar binaries are tracked by LFS.
- Requires the Rust toolchain (rustup) and Xcode Command Line Tools (xcode-select --install) for npm run tauri dev and npm run tauri build.
- Speech is optional and off by default. When not enabled the indicator is gray, and the remaining features (sessions, companion, prophet, nim, history, slash menu) are fully available. The bundled anima-stt sidecar is provided via LFS but disabled by default (missing mlx_whisper); once it becomes available it can be enabled via ANIMA_SKIP_BUNDLED_STT=0. To use live speech currently, point an external WebSocket STT bridge at ws://127.0.0.1:9876 before starting Anima.
- Currently alpha software, a personal project, breaking changes may occur.
- Production builds are currently unsigned, macOS Gatekeeper will warn on first launch.
- Technical architecture: a Tauri v2 desktop app, with a native JavaScript frontend (no framework, no bundler), and a Rust backend handling file I/O, path safety, companion sync, and the cross-session monitor. The monitor (daemon.rs) is a Tokio async loop that polls Claude Code's session stream, tracks the tool sequences of all active sessions, and emits companion comments via Tauri events when a pattern is triggered. The prophet (the voice behind the companion's bubble) is a claude -p subprocess, injected with personality context from the companion's species and stats. See docs/architecture.md for the full architecture.
License: MIT © Bradley Tangonan.