Geoff Code is an AI coding agent that runs in your terminal. Point it at a project and it can read code, make edits, run commands, and verify its own work — all from a single conversational interface. You can use Geoff Code three ways:
  • Interactive TUI — the default experience: a full-screen terminal session you talk to.
  • Non-interactive (-p) — run one prompt and print the result, ideal for scripts and CI.
  • Editor / IDE integration — drive a session from any Agent Client Protocol (ACP) client via geoff acp.

Install

The CLI binary is geoff. Verify the install:
Geoff Code stores its configuration and session data under ~/.geoff. You can relocate this by setting the GEOFF_CODE_HOME environment variable.

First run

Change into a project directory and launch the interactive session:
On first launch Geoff Code creates a default ~/.geoff/config.toml and ~/.geoff/tui.toml, then drops you into the TUI. Type /help at any time to see the available slash commands.

Sign in

Authenticate with the device-code flow. You can do this from inside the TUI with the /login slash command, or non-interactively before launching:
Geoff Code prints a verification URL and code — open the URL in your browser, confirm the code, and the CLI stores your credentials under ~/.geoff. You only need to do this once per machine.

Use an API key instead

If you prefer key-based auth, grab a key from https://geoff.ai/settings/api-keys. You can supply it three ways:
  • Per invocation with the global -k, --api-key flag (sets GEOFF_API_KEY for that run only; never written to disk):
  • Environment variable that persists for your shell session:
  • Config file — add it to a provider block in config.toml (see Config Files).

Pick a model

Geoff Code ships with a default model alias of pyro, a 1M-context model tuned for agentic coding. Override it for a single run with -m:
To change the default permanently, set default_model in ~/.geoff/config.toml, or switch live in the TUI with the /model picker. Models and their providers are defined in your config — see Config Files.

Run your first prompt

Inside the TUI, just describe what you want:
Geoff Code reads the relevant files, proposes edits, and asks for approval before running commands or writing changes. Approve a step, deny it, or steer it with a follow-up message. A good first move on an unfamiliar repo is the /init command, which analyzes the project and writes an AGENTS.md summary the agent reuses on later runs.

Non-interactive mode

Pass -p (or --prompt) to run a single prompt without the TUI and print the response — perfect for scripts, git hooks, and CI:
By default the output is plain text. For machine-readable streaming, request the stream-json format:
See the Command Reference for every flag, and Wire Mode for the full streaming protocol.

Where to next

Use Cases

Common workflows: features, bug fixes, codebase exploration, automation.

Sessions

Resume, continue, export, and manage conversation history.

MCP

Connect external tools and data sources via Model Context Protocol.

Command Reference

Every command, subcommand, and flag.