A Claude Code-style AI coding assistant built on the Gab AI Developer API.
- 🎙️ Voice mode — run as the brain of a hands-free voice assistant: music (TIDAL), movies (Jellyfin), and KDE desktop control by voice (see below)
- Interactive REPL with streaming responses
- File read/write/edit, grep, glob, bash tools
- Web search (DuckDuckGo) and web fetch (static + JS-rendered via Playwright)
- Cascading model router: fast model for exploration, complex model for code writes
- Session persistence with context compaction
- Plan/approve workflow — reviews plan before executing
- Thinking indicator so you can tell it's working
- MCP server support
- Configurable permissions and hooks
pip install gabagentFor JS-rendered page fetching (optional):
playwright install chromiumexport GABAI_API_KEY=your_key_here
gabOr add api_key to ~/.config/gabagent/settings.json.
gab # interactive REPL
gab "list files in src/" # one-shot
gab --continue # resume last session
gab --resume <uuid> # resume specific sessionRun gabagent as the "brain" behind a hands-free voice assistant. A compatible voice front-end handles the microphone, wake word, and speech-to-text / text-to-speech; gabagent serves the conversation and the actions over a small local HTTP+SSE protocol:
gab --voice-serve # start the brain on 127.0.0.1:8765By voice you can control:
- Music — TIDAL (via Mopidy): play tracks, albums, playlists and mixes; set an absolute volume; pause/resume. Music auto-ducks (or fully mutes) while you speak.
- Movies — Jellyfin: search, play on a chosen monitor, pause/resume, leave full screen, and adjust volume — in a browser the brain controls.
- Desktop — KDE/Wayland: move windows between monitors, close windows by name.
The brain only ducks or controls media playing on this machine — playback on other devices/rooms is left untouched. Irreversible actions require a spoken confirmation, and it stays honest about what it can and can't do.
Companion project: the reference voice front-end (microphone, wake word, STT/TTS) is voice-agent. The two are loosely coupled — they only share a small brain-agnostic HTTP+SSE protocol (docs/VOICE_PROTOCOL.md), so any compatible front-end can drive gabagent, and gabagent can be swapped for any brain that speaks the protocol.
GPL-3.0-or-later