Skip to content
YottaCode v0.2.0 is out! ๐ŸŽ‰ See the release notes โ†—
CLI usage

CLI usage

yottacode has two primary entry points:

  • yottacode โ€” launch the interactive TUI
  • yottacode run "<prompt>" โ€” run one prompt non-interactively

Both use the same agent, tools, provider configuration, memory, and sessions.

Global provider flags

These work for the TUI and run mode.

FlagEnv varRequiredPurpose
--model, -mYOTTACODE_MODELyesModel id to use
--base-urlYOTTACODE_BASE_URLyesProvider base URL
--api-keyYOTTACODE_API_KEYnoBearer token
--providerYOTTACODE_PROVIDERnoProvider override
--reasoning-effortYOTTACODE_REASONING_EFFORTnoReasoning hint: low, medium, high
--enable-web-searchYOTTACODE_ENABLE_WEB_SEARCHnoEnable hosted web search when supported
--disable-web-searchYOTTACODE_DISABLE_WEB_SEARCHnoDisable default hosted web search
--enable-x-searchYOTTACODE_ENABLE_X_SEARCHnoEnable xAI x_search
--enable-code-interpreterYOTTACODE_ENABLE_CODE_INTERPRETERnoEnable hosted code interpreter when supported
--allow-pathsYOTTACODE_ALLOW_PATHSnoExtra write roots
--yoloโ€”noDangerous: skip approval prompts and remove iteration cap (permissions-bypass overlay). Explicit deny rules still apply. Launch-only.
--max-iterationsโ€”noTool-call cap per turn; default 50 (auto raises to 200; --yolo removes the cap)
--permission-modeโ€”noTUI only โ€” startup mode: default | plan | auto. Mirrors Claude Code’s --permission-mode.
--plan-resumeโ€”noTUI only โ€” resume a saved plan by slug/substring (implies --permission-mode plan)
--resumeโ€”noResume a session by id or name
--continue / -cโ€”noResume the most recent session in the current directory (mirrors claude --continue). Mutually exclusive with --resume.

Note

Precedence is flags โ†’ environment variables โ†’ config file (where supported) โ†’ a clean error for any missing required value.

Two ways to run

yottacode

The TUI is best for multi-turn coding work. It provides streaming output, slash commands, approval modals, session controls, and inline scrollback.

Useful keys:

  • Enter โ€” submit
  • Ctrl+J โ€” insert newline
  • Ctrl+C โ€” cancel an in-flight turn
  • Ctrl+D โ€” quit when input is empty
  • ? โ€” show cheatsheet when input is empty
  • / โ€” open slash-command palette

See TUI slash commands.

Setup

yottacode setup

Runs the first-run configuration wizard. It can write ~/.yottacode/config.toml and help configure provider profiles.

Provider commands

yottacode provider list
yottacode provider add openai
yottacode provider use openai
yottacode provider remove old-provider
yottacode provider refresh
yottacode provider refresh openai

Provider profiles live in ~/.yottacode/config.toml as [[providers]] blocks.

Model commands

yottacode model list
yottacode model list --all
yottacode model use <your-model-id>
yottacode model fetch
yottacode model fetch openai

model use updates the active default_model in config. In the TUI, /model <name> switches only the running session.

Diagnostics

yottacode doctor
yottacode doctor --json

doctor probes the provider /models endpoint and reports reachability, auth status, model visibility, provider capabilities, and configuration warnings. The JSON form is intended for scripts.

ChatGPT OAuth

yottacode openai-auth login
yottacode openai-auth status
yottacode openai-auth status --json
yottacode openai-auth logout

These commands manage the openai-auth provider’s browser OAuth credentials and account-specific model list.

GitHub Copilot auth

yottacode copilot-auth login
yottacode copilot-auth models
yottacode copilot-auth models --raw
yottacode copilot-auth status
yottacode copilot-auth status --json
yottacode copilot-auth logout

These commands manage the copilot provider’s GitHub device-code OAuth credentials and model cache. login runs the device code flow and caches available models. models lists cached models and marks plan-gated ones with [upgrade plan].

Sessions

yottacode sessions list
yottacode sessions list --json
yottacode sessions resume <id-or-name>
yottacode sessions resume <id-or-name> --summarized
yottacode sessions rename <id-or-name> <new-name>
yottacode sessions export <id-or-name>
yottacode sessions export <id-or-name> path.md --force

Sessions are saved automatically after completed turns in ~/.yottacode/sessions/.

Memory

yottacode memory list                              # default scope: project
yottacode memory list --scope user
yottacode memory forget --scope <user|project> <name>

Use the TUI /memory picker to edit USER.md / YOTTACODE.md and browse agent-managed memories in vim. See Memory for the full layout and the memory_save / memory_forget tools the agent uses to curate this layer.

Worktrees

yottacode --worktree <name>           # start a session in a git worktree
yottacode -w <name>                   # short form
yottacode run --worktree <name>       # one-shot in a worktree
yottacode worktree list               # list active worktrees
yottacode worktree status             # show worktree state
yottacode worktree remove <name>      # remove a worktree
yottacode worktree prune              # clean up stale worktrees

See Worktrees for the full workflow and .worktreeinclude format.

GitHub setup

yottacode setup github                # interactive PAT setup (or use $GITHUB_TOKEN / gh auth)

See GitHub integration for the full auth chain and available slash commands.

Version

yottacode version