๐ Website: https://pijalu.github.io/goa/ (source in web/, deployed via GitHub Pages)
Goa is a terminal-native AI coding agent with full LLM transparency, multi-agent collaboration, and an ANSI TUI engine (inspired by pi / OpenCode / kimi-code). It uses the merged Agent SDK in internal/agentic/ to orchestrate conversations with any OpenAI-compatible LLM provider (OpenAI, llama.cpp, LM Studio, Ollama) and exposes a powerful tool system for interacting with your codebase.
Status: Active development. See
bugs.mdfor current issues.
# Build from source
make build
# First run launches the interactive setup wizard
./goa
On first run, Goa walks you through:
| Feature | Description |
|---|---|
| ๐ง Multi-provider | Connect to any OpenAI-compatible LLM endpoint |
| ๐ Tool System | Read, write, edit, search, bash, SSH, background exec, git utilities |
| ๐ Config Cascade | Embedded defaults โ home โ project โ local โ env โ CLI overrides |
| ๐ค Agent Profiles | Built-in profiles: coder, planner, reviewer โ custom via extends |
| ๐งฉ Skills | Reusable prompt templates โ inline (system prompt injection) or sub-agent |
| ๐ Multi-Agent | Pair (planner โ coder) and reviewer (coder โ reviewer) collaboration |
| ๐ Workflows | Multi-stage, multi-agent workflows with team collaboration and AgentBus |
| ๐งช Loop Detection | 5 heuristics (identical calls, token budget, timeout, activity, error rate) |
| ๐พ Session Persistence | Full JSONL session history with /save and /restore |
| ๐ฆ Diagnostic Export | Self-contained ZIP bundle via /export with events, logs, config, and issue description |
| ๐ฅ Rich TUI | Chat, thinking stream, tool ledger, log, token budget, side panel, modals |
| ๐ JS Plugins | Extend Goa with JavaScript plugins via Goja |
| ๐ Execution Modes | yolo (auto-approve), confirm (pause before each tool), review (queue edits) |
| ๐ Git Worktree Isolation | Sandboxed agent filesystem via git worktree |
| ๐จ Configurable Spinner | Choose from 50+ spinner styles via /config or tui.spinner |
| ๐ Priority Search | Search results ordered by file type (source first) with match counts |
| โจ๏ธ History Persistence | Input history saved across sessions |
| ๐๏ธ Model/Provider Mgmt | Delete models/providers via /config:remove or backspace in pickers |
| โก Direct Tool Execution | Run tools directly via /tools:<name>:<key>=<value>,... |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Goa Process โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ TUI Layer (ANSI engine) โ โ
โ โ Header โ ChatViewport โ StatusBar โ Editor โ Footer โ โ
โ โ Overlays โ Selector โ Markdown โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ agentic.OutputEvent / raw key events โ
โ โโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Goa Core Engine โ โ
โ โ CommandRouter โ AgentManager โ ConfigLoader โ DocEngine โ โ
โ โ LoopDetector โ ExecutionController โ SessionStore โ โ
โ โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โโโโโโโโผโโโโโโโโโโโโ โโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Agent SDK โ โ Tool Registry โ โ
โ โ Agent/Session โ โ read_file โ edit_file ยทยทยท โ โ
โ โ SkillRunner โ โ bash โ ssh_bash โ bg_exec โ โ
โ โ AgentBus โ โ memento โ search โ goa_cmd โ โ
โ โโโโโโโโฌโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Provider Layer โ โ
โ โ OpenAIProvider (any compatible endpoint) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Supporting Systems โ โ
โ โ MemoryStore โ ProfileResolver โ ProviderManager โ โ
โ โ SkillRegistry โ Plugin Loader โ WorktreeManager โ โ
โ โ SessionStore โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Dependency | Purpose |
|---|---|
Agent SDK (internal/agentic/) |
Core AI agent SDK (merged, no external dependency) |
ANSI TUI (tui/) |
Custom TUI engine: Component/TUI/ProcessTerminal |
golang.org/x/term |
Terminal raw mode |
cobra |
CLI flag parsing |
goja |
JavaScript plugin runtime |
gopkg.in/yaml.v3 |
YAML parsing |
| Document | Description |
|---|---|
| ARCHITECTURE.md | Full system architecture |
| SETUP.md | Installation & setup guide |
| CONFIGURATION.md | Config cascade & all settings |
| COMMANDS.md | Command system reference |
| TOOLS.md | Tool system reference |
| SKILLS.md | Skills system reference |
| PROFILES.md | Agent profiles & resolution |
| TUI.md | TUI layout & usage |
| AGENTIC-SDK.md | How Goa wraps the agentic SDK |
| WORKFLOWS.md | Workflow system reference |
| DEVELOPMENT.md | Development guide |
| bugs.md | Known issues and roadmap |
| AGENTS.md | AI agent coding guidelines |
| PROFILING.md | Performance profiling guide |
goa/
โโโ main.go # Entry point
โโโ cmd/goa/ # Cobra CLI root
โโโ config/ # Config struct, cascade loader, defaults, wizard
โโโ core/ # Commands, registry, router, agent manager,
โ โ # loop detector, execution controller, session store
โ โโโ commands/ # 30+ commands (auto-registered via init())
โโโ internal/ # Shared types, enums, errors, git worktree manager
โโโ tui/ # ANSI TUI: engine, components, overlays, styles
โโโ tools/ # Tool registry & implementations
โโโ memory/ # Persistent memory store
โโโ profiles/ # Profile resolution & built-in definitions
โโโ provider/ # Provider management & model listing
โโโ skills/ # Skill registry, runner, inline injection
โโโ multiagent/ # Pair & reviewer orchestrators, workflow engine
โโโ workflows/ # Workflow definitions (directory-per-workflow)
โโโ plugins/ # JS plugin loader & Goja bridge
โโโ internal/agentic/ # Merged Agent SDK
โโโ chunks/ # Milestone implementation briefs
โโโ docs/ # Documentation
โโโ Makefile # Build, test, lint, cross-compile
โโโ bugs.md # Known issues and roadmap
# Install prerequisites
go install github.com/uudashr/gocognit/cmd/gocognit@latest
go install github.com/fzipp/gocyclo/cmd/gocyclo@latest
# Build & test
make build
make test
make lint
# Run Goa
make run
See DEVELOPMENT.md for detailed development guidelines.
GNU GPLv3 โ see the LICENSE file for details.