GOAR
Autonomous CLI coding agent. Provider-agnostic. Local-first.
██████╗ ██████╗ █████╗ ██████╗
██╔════╝ ██╔═══██╗██╔══██╗██╔══██╗
██║ ███╗██║ ██║███████║██████╔╝
██║ ██║██║ ██║██╔══██║██╔══██╗
╚██████╔╝╚██████╔╝██║ ██║██║ ██║
╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
GOAR reads your repo, runs tools, edits files, and finishes the task. It talks to any OpenAI-compatible endpoint plus Anthropic’s native Claude API. No vendor lock-in. No telemetry service.
Install
Requires Python 3.12+.
pip install goar
Native extras (optional — GOAR starts without them):
pip install 'goar[watch,syntax]'
watch is watchfiles (live file index). syntax is tree-sitter + tree-sitter-bash (bash permission parsing). On Termux and other hosts without those wheels, skip the extras.
With uv:
uv tool install goar
# or
uv pip install goar
From a local checkout:
pip install .
# or, editable
pip install -e .
Then:
goar
First run
First launch opens the provider wizard. Re-run it anytime:
goar --setup
Supported providers:
| Key | API |
|---|---|
openai |
Official OpenAI |
anthropic |
Claude (native Messages API) |
openrouter |
Claude / GPT / Gemini / others through one key |
groq |
Groq OpenAI-compat |
together |
Together AI |
fireworks |
Fireworks AI |
nvidia |
NVIDIA NIM |
azure |
Azure OpenAI (you supply the resource URL) |
cursor |
Any Cursor-compatible OpenAI endpoint (you supply the URL) |
ollama |
Local http://127.0.0.1:11434/v1 |
llamacpp |
Local http://127.0.0.1:8080/v1 |
custom |
Any other OpenAI-compatible host |
Keys are written to ~/.goar/.env (mode 0600). Config is written to ~/.goar/config.toml.
Usage
goar # interactive TUI
goar "fix the failing tests" # start with a prompt
goar --setup # provider wizard
goar -p "summarize this repo" --agent auto-approve
Slash commands inside the TUI: /help /model /setup /theme /config.
Default theme is goar-dark. /theme also lists goar-light plus Textual builtins.
Layout
~/.goar/
config.toml
.env
logs/
skills/
agents/
tools/
Project-local overrides: .goar/config.toml, AGENTS.md.
Privacy
GOAR ships without telemetry, identity, experiment, and console-auth modules. Runtime traffic goes only to the model provider you configure.
License
Apache-2.0. See LICENSE and NOTICE.
Derived from Mistral Vibe. Mistral, Vibe, and related marks are trademarks of their respective owners.
Brand
Palette: ink #0B0D10, bone #E8E4D9, amber #E8B84A.
Logo assets: assets/logo.svg, assets/logo.png.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file goar-1.1.1.tar.gz.
File metadata
- Download URL: goar-1.1.1.tar.gz
- Upload date:
- Size: 484.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88e08f8187e63ad1584cfd03f8e224508908241d26c4ac2e9efed563a07f5a68
|
|
| MD5 |
8a9b0fa0e4dd768b9563365321143f49
|
|
| BLAKE2b-256 |
fc446d8321b2ed22c7e16b982da54c535df3caac76b032e2ee5fbff6dc8be628
|
File details
Details for the file goar-1.1.1-py3-none-any.whl.
File metadata
- Download URL: goar-1.1.1-py3-none-any.whl
- Upload date:
- Size: 372.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1607a6d4505946d101b335b266f3e1e5340bbe38ea2247ca20a40ca7e799acb9
|
|
| MD5 |
53d3c8eddb2c9403577369ebdf09d149
|
|
| BLAKE2b-256 |
5094c82de36614046bf040f7334ec73a84f293b98071659e4d59d7dd624acd53
|