> ## 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 Changelog

> Latest updates and improvements for the OrbCode CLI

<Update label="July 20, 2026">
  ## v0.5.5

  ### Added

  * **`/create-skill` slash command.** Describe a repository-specific workflow in plain language and OrbCode creates or updates a reusable skill under `.orb/skills/<skill-name>/`, keeping any supporting scripts, references, and assets inside the same skill directory.
  * **Figma design context (`figma_fetch` tool).** A new native tool fetches the full node tree, components, styles, and rendered image URLs for any `figma.com/design/`, `/file/`, or `/proto/` URL. Requests are authenticated against the MatterAI backend (`/axoncode/figma`), which uses the org's configured Figma access token so callers don't need to handle credentials.
  * **Auto-fetch Figma URLs from user messages.** When a user pastes a Figma link into a prompt, the agent scans the message for Figma URLs and pre-fetches each one before the first model completion. The design data is injected as a tool result, so the model has visual + structural context from step 0 without having to discover and call `figma_fetch` itself. URLs are deduped and trailing punctuation is stripped.
  * **Load skills from explicit paths.** `use_skill` now accepts an absolute, workspace-relative, or `~/` path to a skill directory or `SKILL.md` file in addition to discovered names. Prompts and `AGENTS.md` files can reference shared skills stored outside the user/project/plugin catalogs.
  * **`/weekly-reset` slash command.** Eligible paid users (Pro and above) can reset their weekly usage tier once per monthly billing cycle. Calls `/axoncode/weekly-reset`, refreshes tiered usage, and reports the next available time.

  ### Changed

  * **External Figma MCP servers are blocked.** The native `figma_fetch` tool authenticates against the Figma API and returns the full node tree, components, styles, and image URLs. External Figma MCP servers (the desktop dev server, the hosted `mcp.figma.com` endpoint, and `figma-developer-mcp` via npx) bypass that integration and can conflict with it, so they are now rejected on connect, config load, config addition, and migration (both live and dry-run). Figma-specific tools are also filtered out of general servers' tool listings.

  ### Fixed

  * **Streaming responses stay visible above the input box.** The transcript's live edge is now anchored using its rendered layout instead of relying on approximate text-height calculations, so word-wrapped final lines are not clipped behind the composer.
</Update>

<Update label="July 20, 2026">
  ## v0.5.4

  ### Added

  * **Helpful slash-command tips under the spinner.** After an operation has been running for 2 seconds, a random tip (e.g. "Use `/help` to see every available slash command.") appears beneath the loading spinner. Shown for the `Thinking` and `Working` states.
</Update>

<Update label="July 18, 2026">
  ## v0.5.3

  ### Added

  * **Auto-fetch Figma URLs from user messages.** When a user pastes a Figma link into a prompt, the agent scans the message for Figma URLs and pre-fetches each one before the first model completion, injecting the design data as a tool result so the model has visual + structural context from step 0.
  * **`figma_fetch` native tool.** Fetches the full node tree, components, styles, and rendered image URLs for any Figma design URL, authenticated through the MatterAI backend.

  ### Fixed

  * **Transcript live edge anchoring.** Anchor streaming transcript to the bottom so the live edge stays visible above the input box.
</Update>

<Update label="July 16, 2026">
  ## v0.5.1

  ### Fixed

  * **Allow empty MCP settings objects in project config.** Project `.mcp.json` files with an empty or missing `mcpServers` object no longer error.
</Update>

<Update label="July 16, 2026">
  ## v0.5.0

  ### Added

  * **Accepted code metrics reporting.** Successful `file_edit`, `file_write`, and `multi_file_edit` calls now POST line counters (added/deleted, language) to `/axoncode/meta/<taskId>/lines`, matching the extension's behavior. Works for both user-approved and auto-approved edits; reporting is best-effort and never blocks the session.
</Update>

<Update label="July 15, 2026">
  ## v0.4.8

  ### Added

  * **Plugin marketplace browser (`/plugins`).** A new tabbed UI lists installed plugins and browses the complete Anthropic `claude-plugins-official` marketplace. Installation downloads the pinned plugin source as one bundle into `.orb/plugins/<name>/`, preserving skills, commands, agents, MCP config, hooks, scripts, rules, and other supporting files. Search filters by name, description, or author. `/plugin` and the former `/skills` command remain as aliases.
  * **Non-interactive plugin management.** `orbcode plugin install clickhouse@claude-plugins-official`, `orbcode plugin list`, and `orbcode plugin uninstall <name>` provide the same install flow outside the TUI.

  ### Fixed

  * **Marketplace installation no longer depends on GitHub tree scans.** The previous per-repository `SKILL.md` scan quickly exhausted GitHub's anonymous API limit and incorrectly reported that plugins such as ClickHouse had no skills. OrbCode now installs `git-subdir`, `url`, `github`, and official relative-path sources through git at the marketplace-pinned revision.
  * **Plugin components are loaded from the installed bundle.** Skills and legacy commands are exposed as `<plugin>:<skill>`, bundled reference files remain available, and `.mcp.json`/manifest MCP servers are namespaced and discovered as project-scoped servers with `${CLAUDE_PLUGIN_ROOT}` substitution.
  * **Standalone project skills use `.orb/skills/`.** The skill loader discovers that directory alongside the legacy `.orbcode/skills/` location.

  ### Changed

  * **All popovers are now centered on screen.** Pickers, prompts, and managers (model picker, session picker, link manager, plugin manager, MCP picker, approval prompts, follow-up prompts, hook trust, MCP approval, migration picker) render as an absolutely-positioned overlay centered vertically and horizontally instead of flowing inline with the transcript.
  * **The TUI now preserves the terminal's configured colors.** Startup and cleanup no longer emit OSC 10/11 or OSC 110/111 sequences that override or reset the terminal's default foreground and background colors.
  * **The built-in UI palette follows both light and dark terminal themes.** Neutral text inherits the terminal foreground, semantic accents use the terminal's named ANSI palette, and prompts and popups no longer apply hardcoded background colors. Diff rows retain their original 5% alpha-blended backgrounds, with OrbCode green (`#3FA266`) and red (`#E34671`) used consistently across themes.
  * **The OrbCode company logo is isolated from terminal theming.** Its outer cyan (`#06E1E7`), inner cyan (`#8BF4F7`), and white core (`#ffffff`) remain identical in every terminal theme.
</Update>

<Update label="July 13, 2026">
  ## v0.4.3

  ### Changed

  * **Diff background colors are now 50% transparent.** Added/removed line backgrounds in the diff view are alpha-blended against the terminal background (`#1a1a1a`), producing a muted green (`#2C5E40`) and muted red (`#7E3045`) that are less visually aggressive while preserving the red/green semantic.
  * **Viewport layout adapts to the real input box height.** The input box now reports its rendered height to the parent viewport (including multiline prompt wrapping, slash-command popups, and file-completion popups), so the bottom controls stack never overlaps the live response. The previous hardcoded 4-row estimation caused overflow on multiline input or when autocomplete was open.
  * **Streaming output is truncated to the viewport tail.** Instead of accumulating the entire streaming response in the live area (which pushed the input box off-screen in long generations), only lines fitting the available height are rendered. The complete response is committed to the transcript on completion.
  * **Diff line-height estimates in the virtualized transcript now account for the number/type gutter.** The diff gutter occupies \~8 columns, so each content line wraps at a narrower width. Hunk headers are structural and skipped. This prevents underestimation that could overflow the viewport.
  * **Task list height measurement uses proper word-wrap calculations.** Task items are now wrapped at the available terminal width instead of counting raw lines, so long task descriptions don't push controls off-screen.
  * **Reasoning row height estimates account for the gutter.** Collapsed reasoning rows are measured at `width - 2` to match the actual render, preventing underestimation that clips the fold header.
  * **Result preview and completion text use correct line widths.** Both are now wrapped at `width - 2` and `width - 4` respectively, matching the indentation they render at.

  ### Fixed

  * **Resumed sessions now restore reasoning and tool history.** New sessions persist the exact visible transcript, including thinking durations, tool summaries, result previews, errors, and diffs. Older sessions reconstruct tool calls, results, and edit fragments from their stored model messages when possible.
  * **`@`-file autocomplete now shows files created during the session.** The file list was computed once on mount; changed to re-scan the workspace each time the `@` popup opens.
</Update>

<Update label="July 13, 2026">
  ## v0.4.2

  ### Changed

  * **Default theme now uses a neutral base with consistent semantic accents.** The explicit palette uses `#ffffff` primary, `#d0d0d0` accent, `#a8a8a8` thinking, `#7a7a7a` dim, and `#1a1a1a` background, while errors and removals use `#E34671`, successes and additions use `#3FA266`, and approval warnings use `#E2CE76`. All `<Text dimColor>` usages were replaced with explicit `color={COLORS.dim}`. Code blocks follow `COLORS.accent`, and edit-tool diff backgrounds now use the shared error/success colors.
  * **TUI now runs in the alternate screen buffer as an independent surface.** On startup the app enters the alternate screen and sets the terminal's default foreground/background via OSC 10/11 to the greyscale palette. The terminal scrollback is no longer affected; on exit the original screen and colors are restored.
  * **All content has horizontal margin.** The root container carries `marginX={2}` so the header, conversation rows, pickers, prompts, input box, and status bar all sit inset from the terminal edge consistently.
  * **Input box is now a fully-bordered rounded box with quieter chrome.** It draws all four sides with `borderStyle="round"`, using a 50%-brightness border so the input remains visually anchored without dominating the chat.
  * **The initial OrbCode header is top-anchored with a stable margin.** The borderless intro uses a half-size cyan/white ASCII interpretation of the `orbital.svg` brand mark alongside a metadata column, followed by a compact two-column command grid and shortcut row.
  * **User messages render as full-width borderless highlighted blocks.** A subtle neutral background spans the transcript width with two-cell horizontal and one-row vertical padding.
  * **Command and file-completion popups use padded rounded surfaces.** Slash commands and `@file` results now share a solid neutral background with same-color half-cell corner caps and padded content, without a contrasting border.
  * **Approval modes have semantic highlighting again.** Ask mode is white, edit approval is yellow, and auto-approval is green.

  ### Fixed

  * **Diff add/remove lines now render with explicit foreground color.** Previously the text was invisible on some terminals against dark green/red backgrounds.
  * **Spinner no longer causes the input box to flicker.** The viewport budget now correctly accounts for the spinner's full height.
  * **Fullscreen TUI no longer leaves duplicate frames in the scrollback.** Full frames use retained, cursor-addressed row replacements inside a synchronized terminal update. Neither linefeeds nor per-frame display clears are emitted.
  * **Scrolling is smoother and fixed controls no longer flicker.** Wheel input is coalesced, completed transcript rows are memoized, and the terminal adapter keeps a retained row cache.
  * **The thinking animation remains visible during reasoning streams.** The spinner stays mounted above the live preview until reasoning completes.
  * **Ctrl+D now requires confirmation.** The first press shows a three-second warning; only a second press exits.
  * **Live AI output is no longer clipped in resumed or narrow-terminal chats.** Transcript virtualization accounts for every committed row's margins and borders.
  * **Diff background colors are now 50% transparent.** Added/removed line backgrounds in the diff view are alpha-blended against the terminal background (`#1a1a1a`), producing a muted green (`#2C5E40`) and muted red (`#7E3045`).
  * **Resumed sessions now restore reasoning and tool history.** New sessions persist the exact visible transcript, including thinking durations, tool summaries, result previews, errors, and diffs. Older sessions reconstruct tool calls, results, and edit fragments from stored model messages when possible.
  * **@-file autocomplete now shows files created during the session.** The file list was computed once on mount; changed to re-scan the workspace each time the `@` popup opens.
</Update>

<Update label="July 8, 2026">
  ## v0.4.1

  ### Fixed

  * **Input box now stays pinned to the bottom of the terminal.** Removed `<Static>` which permanently wrote rows to stdout and caused the whole view to scroll up when a long response completed. Rows are now rendered in the dynamic region with viewport-capped visibility.
</Update>

<Update label="July 5, 2026">
  ## v0.4.0

  ### Added

  * **`/task` slash command to reference a previous task.** Opens a session picker over previous sessions in the same directory. On selection, the prior conversation is wrapped in `<previous_task>` tags and the model is prompted to summarize it as reference.
  * **`axon-eido-3-flash`** replaces `axon-code-2-5-mini` as the free model in the built-in registry. Offers 200K context, fast responses, and zero cost.

  ### Changed

  * **System prompt rewritten for speed and editing discipline.** The `always gather exhaustive context` guidance is replaced with a `gather enough context, then act` principle. New editing discipline block instructs the model to copy `old_string` verbatim and never guess at corrected values.

  ### Fixed

  * **Transient model stream failures are now automatically retried.** Connection drops before the first chunk are retried up to 3 times with exponential backoff capped at 8s.
  * **Reasoning phase timing now reflects only the thinking time.** Reasoning is modeled as open/close segments, matching the on-screen `Thinking` block behavior.
  * **Mid-stream retry allowed when partial output can be rolled back.** The agent can re-issue the request if it can cleanly undo the partial output.
</Update>

<Update label="June 30, 2026">
  ## v0.3.3

  ### Added

  * **Linked repositories (`/link`).** A new `/link` slash command opens an interactive manager where you point this repo at other repos on your machine (enter a folder path — absolute, `~/path`, or relative to the project). Links are persisted per-project in `.orb/links.json` and injected into the agent's environment details — including each linked repo's `AGENTS.md`, pulled in ahead of time — so a change here is checked for impact on, or propagated to, the linked repos. `.orb/links.json` is shared with the Orbital IDE extension (links written there are honored here, and vice versa), and a linked repo's `AGENTS.md` is read from `.orb/`, `.orbital/`, or `.orbcode/`.

  ### Changed

  * **`/init` now writes to `.orb/AGENTS.md` and targets cold-start.** The generated `AGENTS.md` is written to the repo-level `.orb/` directory and now captures project structure, architecture, business-logic mapping, and code patterns/conventions — the context an agent needs to start coding without re-exploring. The cap is now \~150 lines (up from \~60) so it can cover all four sections without being truncated.
  * **Repo-level agent data lives in `.orb/`.** The folder OrbCode creates in a project for `AGENTS.md` (and now `links.json`) is `.orb/` — a single, tool-neutral name shared by the IDE and the CLI. Machine settings are unchanged (`~/.orbcode` and `<repo>/.orbcode/settings.json` stay put); the legacy `.orbcode/AGENTS.md` location is still read for backward compatibility.
</Update>

<Update label="June 24, 2026">
  ## v0.3.2

  ### Fixed

  * **MatterAI inference routed to the wrong backend.** `AxonClient` was building the OpenAI `baseURL` by running `API_GATEWAY_PATH` (`https://api2.matterai.so/v1/web/`) through `getUrlFromToken`, which rehosts *any* `api.matterai.so` target onto the control-plane host resolved from the JWT — so every inference request silently hit `https://api.matterai.so/v1/web/` instead of the gateway at `https://api2.matterai.so/v1/web/`. The gateway URL is now used directly, with the per-model `baseUrl` override still winning for local dev. Profile, task title, balance, and web search/fetch still go through the rehost helper (they intentionally target the control plane).
</Update>

<Update label="June 23, 2026">
  ## v0.3.1

  ### Changed

  * **Release workflow run title now shows the version.** The `Release` GitHub Actions workflow gained a `run-name` (e.g. `Release v0.3.1`) so manual dispatches and tag pushes are easier to tell apart in the Actions list. No functional change to the publish flow.
</Update>

<Update label="June 23, 2026">
  ## v0.3.0

  ### Added

  * **MCP server migration from Claude Code / Claude Desktop.** A new `orbcode mcp migrate` subcommand (with `--all` and `--dry-run` flags) and a `/migrate` slash command in the TUI scan well-known paths for MCP server configs and copy them into `~/.orbcode/settings.json` (user scope). Sources detected:

    * `~/.claude/settings.json` (Claude Code, user scope)
    * `~/.claude.json` → root `mcpServers` (Claude Code, user scope — the most common location, written by `claude mcp add -s user …`)
    * `~/.claude.json` → `projects.<cwd>.mcpServers` (Claude Code, this project)
    * `claude_desktop_config.json` (Claude Desktop — platform-specific path)

    When the same server name appears in both layers of `~/.claude.json`, the root entry is shown and the project-layer duplicate is hidden (Claude's own per-project override precedence). The TUI shows a combined checklist across all sources; the CLI prints a preview by default and only writes with `--all`. Servers whose name already exists in the destination are silently skipped and counted in the summary. Codex support (TOML) is intentionally deferred.

  * **Delete action in the `/mcp` picker.** The interactive server manager gained a "Delete" action (last in the list, red) that permanently removes a server from its config file (whichever scope it lives in) and shows a y/n confirmation before doing it. Unlike Disable, Delete is irreversible — the config entry is gone, and you'll need to re-add the server with `orbcode mcp add` to get it back.

  * **Styled OAuth callback page.** The local browser page that receives the OAuth redirect now matches the matterai.so look (dark `#0d1117` background, centered card, green/red circular icon, brand footer) for success, error, and not-found paths, replacing the previous plain `<h1>` strings.
</Update>

<Update label="June 22, 2026">
  ## v0.2.4

  ### Added

  * **`-s` / `--system-prompt` flag to override the default system prompt.** Lets power users and CI pipelines inject a custom system prompt for a single run without editing their `settings.json`. The flag accepts a string, so quoted inline prompts and heredoc-style values both work.
</Update>

<Update label="June 22, 2026">
  ## v0.2.3

  ### Changed

  * **`/cost` renamed to `/usage`.** The slash command and any references in the UI now use the clearer "usage" label, matching the API field returned by the backend. `/cost` is no longer recognized.
  * **`orbcode mcp add --` separator.** The `--` flag is now consumed as the separator between the server name and the stdio command, matching Claude Code's `claude mcp add <name> -- <command>`. Fixes cases where a stdio server's own flags (e.g. `-y`) were mistaken for OrbCode flags.
  * **Local `AGENTS.md` ignored.** A repo-local `AGENTS.md` placed in the current working directory is no longer auto-loaded; only `~/.orbcode/AGENTS.md` (user) and the parent-directory walk (project) are read, matching the published skill/AGENTS.md docs.
</Update>

<Update label="June 20, 2026">
  ## v0.2.0

  ### Added

  * **MCP server support.** Connect external tools via the Model Context Protocol in three scopes (user, project `.mcp.json`, local). The interactive `/mcp` manager and `orbcode mcp add/remove/list` subcommand handle stdio, http, and sse transports. Project-scope servers require a one-time approval; OAuth 2.0 flows (RFC 9728 / 8414 / PKCE / dynamic client registration) are handled automatically, with tokens persisted under `~/.orbcode/mcp-auth/`.
  * **Skills system.** Reusable instruction sets the model loads on demand. Drop 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 a skill's `when_to_use` condition.
  * **AGENTS.md memory.** Project memory is discovered by walking the cwd and parent directories for `AGENTS.md` and `.orbcode/AGENTS.md` (closer-to-cwd wins), with `AGENTS.local.md` layered on top for private per-machine notes. User-level `~/.orbcode/AGENTS.md` is always loaded. `@include` directives let a memory file pull in shared snippets.
  * **Clipboard utility.** A single `clipboard` helper consolidates platform-specific copy logic so the rest of the codebase stays portable.
</Update>

<Update label="June 19, 2026">
  ## v0.1.14

  ### Changed

  * **Env var rename: `ORBCODE_*` → `MATTERAI_*`.** All `ORBCODE_*` environment variables have been renamed to `MATTERAI_*` (e.g. `ORBCODE_CONFIG_DIR` → `MATTERAI_CONFIG_DIR`). Old names are no longer recognized. This unifies the CLI's environment surface with the rest of the MatterAI tooling.
</Update>

<Update label="June 18, 2026">
  ## v0.1.8

  ### Fixed

  * **Status bar layout cleanups.** Fixed overlapping labels and inconsistent padding in the TUI status bar.
</Update>

<Update label="June 17, 2026">
  ## v0.1.5

  ### Added

  * **Initial public release.** OrbCode CLI ships with interactive TUI, headless `-p` mode, `--yolo` auto-approval, `--resume` for saved sessions, browser device-flow login, `~/.orbcode` config, and Axon model selection.
</Update>
