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:

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.

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 that config.

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 ACP for the full streaming protocol.

Where to next

Use Cases

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

MCP

Connect external tools and data sources via Model Context Protocol.

ACP

Drive Geoff Code programmatically with streaming JSON and ACP.