Goa brings full LLM transparency, multi-agent collaboration, and a rich ANSI TUI to any OpenAI-compatible model — served to your browser, attachable from any terminal, with no opaque black boxes.
Goa is a terminal-native AI coding agent. It gives you a full-featured chat interface in your terminal, powered by any OpenAI-compatible LLM. Every thought, every tool call, every result is visible — no hidden context, no surprises.
A complete agentic toolkit built on small, composable primitives — the way Go intended.
Works with any OpenAI-compatible endpoint: OpenAI, llama.cpp, LM Studio, Ollama, and more.
Read, write, edit, search, bash, SSH, background execution, git utilities — all transparent.
Embedded to home to project to local to environment to CLI overrides — predictable precedence.
Built-in coder, planner, and reviewer profiles — compose your own via inheritance.
Reusable prompt templates — inline system-prompt injection or sub-agent execution mode.
Pair (planner to coder) and reviewer (coder to reviewer) collaboration pipelines.
Extend Goa with JavaScript via the Goja runtime — custom tools, commands, and UI.
Differential-rendering ANSI UI: chat, thinking stream, tool ledger, side panels, modals.
goa server serves the same session as a web page — HTML blocks + live cell band, token auth, read-only mode.
One session, every surface: browsers and attached terminals (goa attach) watch and drive the identical conversation.
--server-projects-root fronts one full session per project — path ACL, idle reaping, process isolation.
Visualize, clone and fork session history trees — every branch of a conversation, kept.
Multi-agent swarm with fan-out/fan-in, plus the planner + coder pair pipeline.
Reasoning effort per provider: off, low, medium, high — and thinking-block visibility.
Compress conversation history to fit the context window without losing the thread.
Guide agent behavior mid-session — queued input reaches the agent between steps.
Input history saved across sessions and restored into the editor.
Delete models and providers via /config:remove or backspace in the pickers.
Search results ordered by file type (source first) with match counts.
50+ spinner styles via /config or tui.spinner — the title bar animates too.
The agent asks structured clarifying questions answered on the input line, not guessed at.
Full JSONL session history with /save and /restore — resume any conversation.
Self-contained ZIP bundle via /export with events, logs, config, and issue description.
Small primitives and factories over fat per-type APIs — the codebase is built to extend.
Hub, fanout, and pipeline topologies with bounded agent pool, goal binding, and headless resume.
Multi-stage, multi-agent pipelines with team collaboration and AgentBus messaging.
Autonomous goals with lifecycle and budgets, plus structured work plans with review pager.
Sub-agent code review — automatic diff review on every change, catching issues early.
YOLO (auto-approve), confirm (pause before each tool), review (queue writes for batch approval).
Five heuristics detect stuck agents: identical calls, token budget, timeout, activity, error rate.
Sandboxed agent filesystem via git worktree — changes stay isolated until approved.
From keystroke to LLM token, every byte path crosses a clearly separated layer.
No accounts, no API keys to us — just Go, your model endpoint, and your terminal.
$git clone https://github.com/pijalu/goa$cd goa && make build
$./goa
Grab the latest build from the GitHub Releases page for your platform.
Every layer of Goa is documented, from high-level architecture down to individual tools.