The geoff command launches an interactive session, runs a single prompt, or invokes a subcommand.
Run geoff --help for inline help, or geoff <command> --help for a specific subcommand.

Global options

These apply to the root geoff command (interactive and prompt modes).

-k, --api-key

Use an API key for a single run without writing it to disk. It sets GEOFF_API_KEY for Geoff providers during that invocation only:
For a persistent key, set the GEOFF_API_KEY environment variable or add api_key to a provider in config.toml.

Prompt mode

-p runs one turn and exits. Pair it with --output-format stream-json for machine-readable output (see Wire Mode) and -y to auto-approve every action:

Subcommands

geoff login

Authenticate with Geoff Code via the device-code flow.
Prints a verification URL and code; sign in via your browser. Credentials are stored under ~/.geoff.

geoff doctor

Validate Geoff Code configuration files. With no arguments, checks both config.toml and tui.toml.
Exits non-zero and prints the validation issues if a file is invalid.

geoff export

Export a session as a ZIP archive.

geoff acp

Run Geoff Code as an Agent Client Protocol (ACP) server over stdio, for editor and IDE integrations.

geoff migrate

Migrate data from a legacy geoff-cli installation into Geoff Code. Launches an interactive migration screen.

geoff upgrade

Upgrade Geoff Code to the latest version.

Slash commands

Inside an interactive session, type / to access slash commands. A selection of the most useful:

Config Files

Set defaults the flags above override.

Wire Mode

Streaming JSON and ACP details.