> ## Documentation Index
> Fetch the complete documentation index at: https://docs.matterai.so/llms.txt
> Use this file to discover all available pages before exploring further.

# OrbCode CLI

> Agentic coding in your terminal, powered by Axon models by MatterAI

OrbCode CLI is a standalone terminal coding agent powered by **Axon models by MatterAI**. It is a terminal port of the Orbital extension: the same Axon models, the same native tool schemas, and the same MatterAI auth backend, rebuilt from scratch as an interactive TUI with streaming chat, live thinking display, tool activity rows, edit/command approvals, and todo tracking.

<Frame>
  <img src="https://mintcdn.com/gravitycloud-9ebb5c50/-ULrGoxBjoZrgIQk/images/orbcode/orbcode.png?fit=max&auto=format&n=-ULrGoxBjoZrgIQk&q=85&s=d7c6054fcb10629defefa7e189fb323e" alt="OrbCode CLI interactive TUI" width="2940" height="1912" data-path="images/orbcode/orbcode.png" />
</Frame>

## Why OrbCode CLI

* **Agentic in the terminal** — read, edit, search, and run commands across your whole workspace without leaving the shell.
* **Same Axon models as Orbital** — `axon-eido-3-code-pro`, `axon-eido-3-code-mini`, `axon-code-2-5-pro`, and `axon-code-2-5-mini`, with native JSON tool calls and image input.
* **Multi-provider** — route to Anthropic Claude models or any OpenAI-compatible endpoint via the Vercel AI SDK, reusing the same agent loop, tools, and approvals.
* **MCP servers** — connect external tools through the Model Context Protocol; servers appear as `mcp__<server>__<tool>` and can be called by the model.
* **Skills & AGENTS.md memory** — load reusable instruction sets on demand, and inject project/user instructions into every system prompt. The repo-level file lives at **`.orb/AGENTS.md`**, the same folder the Orbital IDE reads.
* **Linked repositories (`/link`)** — point this repo at other repos on your machine so a change here is checked for impact on (or propagated to) them. Links live in the shared **`.orb/links.json`**.
* **`/init`** — analyze the codebase and write a concise `.orb/AGENTS.md` for cold-start, \~150 lines covering project structure, architecture, business-logic mapping, and code patterns/conventions.
* **Streaming TUI** — markdown rendering, live reasoning under a collapsible "Thinking" block, and per-tool activity rows with diffs.
* **Approvals & safety** — read-only tools run freely; file edits and commands prompt first, and dangerous commands can never be auto-approved.
* **Headless mode** — pipe a single prompt with `-p` for scripts and CI.
* **Claude-Code-compatible hooks** — block, auto-approve, rewrite, or inject context at fixed points in the agent loop.

<CardGroup cols={2}>
  <Card title="Install OrbCode CLI" icon="download" href="/orbcode-cli/install">
    Get the CLI running in under a minute
  </Card>

  <Card title="Usage & Commands" icon="terminal" href="/orbcode-cli/usage">
    Slash commands, shortcuts, and headless mode
  </Card>

  <Card title="Configuration" icon="gear" href="/orbcode-cli/configuration">
    settings.json, env vars, and custom models
  </Card>

  <Card title="MCP servers" icon="plug" href="/orbcode-cli/mcp">
    Connect external tools through the Model Context Protocol
  </Card>

  <Card title="Skills & memory" icon="book" href="/orbcode-cli/skills">
    Reusable instruction sets and AGENTS.md project memory
  </Card>

  <Card title="Hooks" icon="link" href="/orbcode-cli/hooks">
    Block, auto-approve, rewrite, or inject context at fixed points
  </Card>

  <Card title="View on GitHub" icon="github" href="https://github.com/MatterAIOrg/OrbCode">
    Source code, issues, and releases
  </Card>
</CardGroup>

## Quick start

Requires **Node.js >= 20**.

```bash theme={null}
npm install -g @matterailab/orbcode
```

Then, from any project directory:

```bash theme={null}
orbcode
```

Sign in once with `orbcode login` (browser device flow), or set an API key in `~/.orbcode/settings.json`. See [Install](/orbcode-cli/install) for details.

## Models

The Axon models are built in; `/model` opens a scroll-and-select picker. Additional models can be declared via `customModels` in `settings.json`. The choice persists across sessions.

| id                      | context | max output | pricing                |
| ----------------------- | ------- | ---------- | ---------------------- |
| `axon-eido-3-code-pro`  | 400k    | 64k        | $3/M in · $9/M out     |
| `axon-eido-3-code-mini` | 400k    | 64k        | $1.5/M in · $4.5/M out |
| `axon-code-2-5-pro`     | 400k    | 64k        | $2/M in · $6/M out     |
| `axon-code-2-5-mini`    | 400k    | 64k        | free                   |

`axon-eido-3-code-mini` is the default. All four support native JSON tool calls and image input. Cost comes from the API's usage chunks and is shown in the status bar.

### Other providers

A `customModels` entry that sets a `provider` is served through the [Vercel AI SDK](https://sdk.vercel.ai) instead of the MatterAI gateway, reusing the same agent loop, tools, and approvals. Auth is the provider's own key (env var or `apiKey`), not the MatterAI login.

* `provider: "anthropic"` → native `/v1/messages`. Built-in Claude models (Opus 4.8/4.7/4.6, Sonnet 4.6, Haiku 4.5, Fable 5) work headlessly via `--model claude-…` without a settings entry. Key from `ANTHROPIC_API_KEY`.
* `provider: "openai-compatible"` → any OpenAI-compatible endpoint; requires `baseUrl`. Key from `apiKey` on the entry.

See [Configuration](/orbcode-cli/configuration) for the full `customModels` schema.

## The TUI

* **Streaming responses** rendered as markdown (headers, lists, code fences, inline code, links) via a lightweight ANSI renderer.
* **Thinking** — reasoning streams live under `✦ Thinking…` and collapses to `✦ Thought for Ns` when done. `Ctrl+O` toggles expanded thinking.
* **Tool rows** — each tool call shows a formatted name, a one-line summary, live "running" state, then `✓`/`✗` with a short result preview.
* **Edit diffs** — file-modifying tools render a real diff with a stats header and red/green backgrounds, both in the approval prompt and the finished tool row.
* **Tasks** — the model maintains a checklist via `update_todo_list`, rendered as a compact Tasks panel.
* **@-references** — type `@` in the input to fuzzy-search workspace files.
* **Status bar** — approval mode, busy state, model name, context token usage, and session cost.

## Approvals & safety

Read-only tools (read/list/search/web/todos) run without prompting. Mutating tools prompt first:

* **File edits** — prompt shows the target; `y` allow once, `n` deny, `a` allow for the rest of the session.
* **Commands** — prompt shows the exact command line. Dangerous commands (deletes, force-pushes, system changes) can **never** be auto-approved.

A denial is reported back to the model so it can adjust course rather than fail. See [Usage](/orbcode-cli/usage) for the full approval model.

## Headless mode

```bash theme={null}
orbcode -p "explain the build pipeline in this repo"
orbcode -p "fix the lint errors" --yolo
```

Prints **only the final content** to stdout. Without `--yolo`, edit/command approvals are auto-denied (read-only analysis). Errors go to stderr.

## MCP servers, skills & memory

* **MCP servers** — OrbCode connects to external tools via the Model Context Protocol. Servers are configured in three scopes (user, project `.mcp.json`, local) and their tools appear alongside the native tools as `mcp__<server>__<tool>`. Manage them with the `orbcode mcp` subcommand or the `/mcp` slash command. See the [MCP servers page](/orbcode-cli/mcp).
* **Skills** — reusable instruction sets the model loads on demand. Place a `SKILL.md` under `~/.orbcode/skills/` (user) or `.orbcode/skills/` (project); the catalog is injected into the system prompt and `use_skill` loads the full body when a task matches. See the [Skills & memory page](/orbcode-cli/skills).
* **AGENTS.md memory** — project- and user-level instructions (build commands, code style, conventions) injected into every system prompt. OrbCode's equivalent of Claude Code's `CLAUDE.md`, using the open `AGENTS.md` filename. The repo-level file lives at **`.orb/AGENTS.md`** — the same folder the Orbital IDE reads, so a single source of truth covers terminal and editor. Use `/init` to generate or refine a starter file.
* **Linked repositories (`/link`)** — link other repos on your machine by folder path (absolute, `~/path`, or relative to the project). Links are persisted in **`.orb/links.json`** (also read by the IDE), and each linked repo's `AGENTS.md` is pulled in ahead of time so the model can see and act on it.

<Note>
  The folder OrbCode creates in a project for `AGENTS.md` and `links.json` is
  **`.orb/`** — a single, tool-neutral name shared with the Orbital IDE
  extension. Machine settings (`~/.orbcode`, `<repo>/.orbcode/settings.json`)
  are unchanged. See the [Configuration page](/orbcode-cli/configuration#linked-repositories).
</Note>

## Architecture

OrbCode CLI faithfully ports the Orbital extension's tool schemas, system prompt, and streaming handler quirks. Requests carry extension-compatible headers (`X-AxonCode-Version`, `X-AxonCode-TaskId`, `X-AXON-REPO`), and usage data is fetched from the same `/axoncode/profile` endpoint as the extension.

<Note>
  OrbCode CLI is open source under the MIT license. The full hooks reference
  lives on the [Hooks page](/orbcode-cli/hooks).
</Note>
