Terminal-native · Built in Go · GPL-3.0

The AI coding agent
that lives in your terminal.

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.

$ go install github.com/pijalu/goa/cmd/goa@latest Copy
Go 1.25+ GPL-3.0-or-later macOS Linux Windows
What is Goa

Complete control over your AI workflow

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.

Designed for transparency

  • › Full LLM visibility — reasoning streams, tool I/O, and tokens are always inspectable.
  • › Provider-agnostic — OpenAI, llama.cpp, LM Studio, Ollama, any compatible endpoint.
  • › Composable tools — read, write, edit, search, bash, SSH, and more, all auditable.
  • › Open source — GPLv3, no telemetry, your data stays local.
goa — coder
Animated demo of Goa running in a terminal: streaming assistant output, tool calls, and diffs.
Features

Everything you need, nothing hidden

A complete agentic toolkit built on small, composable primitives — the way Go intended.

Multi-Provider

Works with any OpenAI-compatible endpoint: OpenAI, llama.cpp, LM Studio, Ollama, and more.

Tool System

Read, write, edit, search, bash, SSH, background execution, git utilities — all transparent.

Config Cascade

Embedded to home to project to local to environment to CLI overrides — predictable precedence.

Agent Profiles

Built-in coder, planner, and reviewer profiles — compose your own via inheritance.

Skills

Reusable prompt templates — inline system-prompt injection or sub-agent execution mode.

Multi-Agent

Pair (planner to coder) and reviewer (coder to reviewer) collaboration pipelines.

JS Plugins

Extend Goa with JavaScript via the Goja runtime — custom tools, commands, and UI.

Rich TUI

Differential-rendering ANSI UI: chat, thinking stream, tool ledger, side panels, modals.

Web UI

goa server serves the same session as a web page — HTML blocks + live cell band, token auth, read-only mode.

TUI/WEB Interop

One session, every surface: browsers and attached terminals (goa attach) watch and drive the identical conversation.

Multi-Project Server

--server-projects-root fronts one full session per project — path ACL, idle reaping, process isolation.

Session Tree

Visualize, clone and fork session history trees — every branch of a conversation, kept.

Swarm & Pair Mode

Multi-agent swarm with fan-out/fan-in, plus the planner + coder pair pipeline.

Thinking Levels

Reasoning effort per provider: off, low, medium, high — and thinking-block visibility.

Context Compression

Compress conversation history to fit the context window without losing the thread.

Steering

Guide agent behavior mid-session — queued input reaches the agent between steps.

History Persistence

Input history saved across sessions and restored into the editor.

Model/Provider Mgmt

Delete models and providers via /config:remove or backspace in the pickers.

Priority Search

Search results ordered by file type (source first) with match counts.

Configurable Spinner

50+ spinner styles via /config or tui.spinner — the title bar animates too.

Interactive Clarify

The agent asks structured clarifying questions answered on the input line, not guessed at.

Session Persistence

Full JSONL session history with /save and /restore — resume any conversation.

Diagnostic Export

Self-contained ZIP bundle via /export with events, logs, config, and issue description.

SOLID by design

Small primitives and factories over fat per-type APIs — the codebase is built to extend.

Orchestrator

Hub, fanout, and pipeline topologies with bounded agent pool, goal binding, and headless resume.

Workflows

Multi-stage, multi-agent pipelines with team collaboration and AgentBus messaging.

Goals & Plans

Autonomous goals with lifecycle and budgets, plus structured work plans with review pager.

Companion

Sub-agent code review — automatic diff review on every change, catching issues early.

Execution Modes

YOLO (auto-approve), confirm (pause before each tool), review (queue writes for batch approval).

Loop Detection

Five heuristics detect stuck agents: identical calls, token budget, timeout, activity, error rate.

Git Worktree Isolation

Sandboxed agent filesystem via git worktree — changes stay isolated until approved.

Architecture

A layered engine you can trace

From keystroke to LLM token, every byte path crosses a clearly separated layer.

GOA PROCESS TUI Layer ANSI engine · differential rendering · CSI 2026 synced output Header · ChatViewport · StatusBar · Editor · Footer Goa Core Engine orchestration · config cascade · session state CommandRouter · AgentManager · ConfigLoader · LoopDetector · ExecutionController · SessionStore Agent SDK agent lifecycle, event loop, and inter-agent bus Agent / Session SkillRunner · AgentBus Tool Registry composable, SOLID primitives read · write · edit · search · bash ssh · python · bg_exec · webfetch · agent Provider Layer any OpenAI-compatible endpoint OpenAIProvider · OpenAI · llama.cpp · LM Studio · Ollama
Quick Start

Up and running in three steps

No accounts, no API keys to us — just Go, your model endpoint, and your terminal.

  1. Build from source
    Clone the repository and compile the binary.
    $git clone https://github.com/pijalu/goa$cd goa && make build
  2. Run the interactive wizard
    On first run, Goa walks you through configuring a provider, selecting a profile, and choosing an execution mode.
    $./goa
  3. Start coding
    Ask questions, request refactors, review diffs — all from your terminal, with full visibility into every step.
Download

Pre-built binaries for every release

Grab the latest build from the GitHub Releases page for your platform.

Documentation

Read the manual

Every layer of Goa is documented, from high-level architecture down to individual tools.

Browse all documentation