From 34436d627481334852c53735d719bbb69ebaff51 Mon Sep 17 00:00:00 2001 From: code-crusher Date: Fri, 4 Sep 2026 10:25:53 +0530 Subject: [PATCH 1/4] release: v6.8.1 --- CHANGELOG.md | 4 ++ README.md | 104 +++++++++++++++++++++++++----------------- package.json | 4 +- src/branding.ts | 2 +- src/prompts/system.ts | 59 +++++++++++++----------- 5 files changed, 100 insertions(+), 73 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 23ea9e5..b786534 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [6.8.1] - 2026-09-04 + ### Added - **Dynamic model catalog synchronization.** OrbCode now fetches the active model catalog dynamically from the backend (`/v1/models`) on startup and when refreshing usage (`fetchDynamicModels`), registering returned OSS models into `BUILTIN_AXON_MODELS` and `AXON_MODELS` so newly added models appear in the picker without requiring hardcoded updates. Models the backend retires are pruned after a successful fetch (empty or failed responses never wipe the offline fallback), and the catalog's `iconUrl` / `costMultiplier` fields are captured on each model. @@ -31,6 +33,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 model selection auto-resets to the new default on next launch, and a requested Axon id (`--model` / `MATTERAI_MODEL`) now warns and falls back to the default. +- **Model picker visible rows doubled to 12.** The scrollable model picker now shows 12 rows instead of 6 for better catalog visibility. +- **Rebranded tagline and descriptions.** Removed "powered by Axon models by MatterAI" from the CLI description, branding tagline, and system prompt role definition; now reads "by MatterAI". ## [6.8.0] - 2026-08-28 diff --git a/README.md b/README.md index 17e8347..80c9efe 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ [![github issues](https://img.shields.io/github/issues/MatterAIOrg/OrbCode?logo=github)](https://github.com/MatterAIOrg/OrbCode/issues) [![docs](https://img.shields.io/badge/docs-docs.matterai.so-purple)](https://docs.matterai.so/orbcode-cli/overview) -Agentic coding in your terminal — powered by **Axon models by MatterAI**. +Agentic coding in your terminal — by MatterAI > 📖 **Full documentation: ** @@ -304,30 +304,30 @@ MatterAI gateway untouched. ## Slash commands -| command | action | -| ------------ | ----------------------------------------------------------------------------------------------------- | -| `/help` | list commands | -| `/attach` | open the native file picker and add one or more attachments | -| `/model` | scrollable model picker (`/model pro` / `/model code` / full id selects directly) | -| `/theme` | choose and persist OrbCode's dark or light theme (`/theme dark` and `/theme light` also work) | -| `/clear` | clear the screen only, like the terminal's `clear` — the conversation and context continue | -| `/new` | start a fresh conversation/session with a clean slate | -| `/resume` | pick a previous session for this directory and continue it (screen is cleared, conversation replayed) | -| `/analytics` | open the MatterAI analytics dashboard (app.matterai.so/orbital) in the browser | -| `/compact` | summarize the conversation and replace history with the summary | -| `/tasks` | print the current task list | -| `/status` | version, model, account, gateway, context usage, cost, approval modes | -| `/usage` | fetch plan usage | -| `/weekly-reset` | reset weekly usage (Pro and above, once per monthly billing cycle) | -| `/init` | analyze the codebase and create/improve `AGENTS.md` in the repo's `.orb/` directory | -| `/create-skill ` | create or update a repository skill under `.orb/skills//` from a plain-language prompt | -| `/task` | reference a previous session as context for the current task — opens a picker if no ID is given | -| `/link` | link other repos on your machine so changes here are checked against them (enter a folder path) | -| `/mcp` | manage MCP servers — enable, disable, reconnect, view status & tool counts | -| `/login` | start the browser sign-in flow | -| `/logout` | remove the saved token | -| `/version` | print the CLI version | -| `/exit` | quit | +| command | action | +| ----------------------------- | ----------------------------------------------------------------------------------------------------- | +| `/help` | list commands | +| `/attach` | open the native file picker and add one or more attachments | +| `/model` | scrollable model picker (`/model pro` / `/model code` / full id selects directly) | +| `/theme` | choose and persist OrbCode's dark or light theme (`/theme dark` and `/theme light` also work) | +| `/clear` | clear the screen only, like the terminal's `clear` — the conversation and context continue | +| `/new` | start a fresh conversation/session with a clean slate | +| `/resume` | pick a previous session for this directory and continue it (screen is cleared, conversation replayed) | +| `/analytics` | open the MatterAI analytics dashboard (app.matterai.so/orbital) in the browser | +| `/compact` | summarize the conversation and replace history with the summary | +| `/tasks` | print the current task list | +| `/status` | version, model, account, gateway, context usage, cost, approval modes | +| `/usage` | fetch plan usage | +| `/weekly-reset` | reset weekly usage (Pro and above, once per monthly billing cycle) | +| `/init` | analyze the codebase and create/improve `AGENTS.md` in the repo's `.orb/` directory | +| `/create-skill ` | create or update a repository skill under `.orb/skills//` from a plain-language prompt | +| `/task` | reference a previous session as context for the current task — opens a picker if no ID is given | +| `/link` | link other repos on your machine so changes here are checked against them (enter a folder path) | +| `/mcp` | manage MCP servers — enable, disable, reconnect, view status & tool counts | +| `/login` | start the browser sign-in flow | +| `/logout` | remove the saved token | +| `/version` | print the CLI version | +| `/exit` | quit | ## Keyboard shortcuts @@ -411,8 +411,8 @@ settings.json > user settings.json > config.json. Sessions are stored in `~/.orbcode/sessions/.json` and power `/resume` and `--resume `. -| env var | effect | -| --------------------- | ----------------------------------------------------------------- | +| env var | effect | +| ---------------------- | ----------------------------------------------------------------- | | `MATTERAI_TOKEN` | auth token (overrides everything) | | `MATTERAI_API_KEY` | same as `apiKey` in settings.json | | `MATTERAI_BASE_URL` | same as `baseUrl` in settings.json | @@ -467,11 +467,24 @@ shell commands from a repo — see [Security](https://github.com/MatterAIOrg/Orb "PreToolUse": [ { "matcher": "execute_command", - "hooks": [{ "type": "command", "command": "~/.orbcode/hooks/guard.sh", "timeout": 30 }] + "hooks": [ + { + "type": "command", + "command": "~/.orbcode/hooks/guard.sh", + "timeout": 30 + } + ] } ], "UserPromptSubmit": [ - { "hooks": [{ "type": "command", "command": "echo \"Git branch: $(git branch --show-current 2>/dev/null)\"" }] } + { + "hooks": [ + { + "type": "command", + "command": "echo \"Git branch: $(git branch --show-current 2>/dev/null)\"" + } + ] + } ] } } @@ -485,17 +498,17 @@ seconds, default 10). ### Events at a glance -| event | when it fires | matcher tests | -| ------------------ | ---------------------------------------------- | ------------- | -| `SessionStart` | first turn of a session (or after `--resume`) | `source` | -| `UserPromptSubmit` | before each prompt is sent to the model | — | -| `PreToolUse` | before a tool runs (and before its approval) | tool name | -| `PostToolUse` | after a tool returns | tool name | -| `Notification` | when OrbCode needs permission or a follow-up | — | -| `Stop` | when the model is about to finish the turn | — | -| `PreCompact` | before `/compact` summarizes the conversation | `trigger` | -| `SessionEnd` | on quit, `/logout`, or end of a `-p` run | `reason` | -| `SubagentStop` | reserved; OrbCode has no subagents yet | — | +| event | when it fires | matcher tests | +| ------------------ | --------------------------------------------- | ------------- | +| `SessionStart` | first turn of a session (or after `--resume`) | `source` | +| `UserPromptSubmit` | before each prompt is sent to the model | — | +| `PreToolUse` | before a tool runs (and before its approval) | tool name | +| `PostToolUse` | after a tool returns | tool name | +| `Notification` | when OrbCode needs permission or a follow-up | — | +| `Stop` | when the model is about to finish the turn | — | +| `PreCompact` | before `/compact` summarizes the conversation | `trigger` | +| `SessionEnd` | on quit, `/logout`, or end of a `-p` run | `reason` | +| `SubagentStop` | reserved; OrbCode has no subagents yet | — | ### How a hook talks back @@ -614,7 +627,11 @@ happens automatically when they expire. For M2M grants (`client_credentials`, "mcpServers": { "filesystem": { "command": "npx", - "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"] + "args": [ + "-y", + "@modelcontextprotocol/server-filesystem", + "/Users/me/projects" + ] }, "github": { "type": "http", @@ -800,6 +817,7 @@ when_to_use: the task involves writing or reviewing Go code # Go style skill When writing Go in this project: + - Use `errors.Join` for multi-error aggregation - Prefer table-driven tests - ... @@ -962,11 +980,11 @@ Active in the CLI (aligned with the extension's native tools, with CLI-specific | `multi_file_edit` | batched edits grouped per file, per-edit OK/FAILED results | | `file_write` | creates parent dirs, full-content writes | | `list_files` | optional recursive, ignores node_modules/.git/build dirs, 800-entry cap | -| `search_files` | FFF-first Rust-regex search, compact pagination, and bundled/system ripgrep fallback | +| `search_files` | FFF-first Rust-regex search, compact pagination, and bundled/system ripgrep fallback | | `execute_command` | user's shell, 120s timeout, 30k output cap, optional cwd | | `web_search` / `web_fetch` | proxied through the MatterAI backend with your token | | `update_todo_list` | drives the TUI todo panel | -| `use_skill` | loads standalone or namespaced plugin skill instructions | +| `use_skill` | loads standalone or namespaced plugin skill instructions | | `ask_followup_question` | interactive menu in the TUI | | `attempt_completion` | ends the turn with a completion card | | `mcp____` | any tool exposed by a connected MCP server (see [MCP servers](#mcp-servers)) | diff --git a/package.json b/package.json index 7dce595..5d75497 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@matterailab/orbcode", - "version": "6.8.0", - "description": "OrbCode CLI — agentic coding in your terminal, powered by Axon models by MatterAI", + "version": "6.8.1", + "description": "OrbCode CLI — agentic coding in your terminal, by MatterAI", "type": "module", "bin": { "orbcode": "./bin/orbcode.js" diff --git a/src/branding.ts b/src/branding.ts index 5c8f0cc..41d1f22 100644 --- a/src/branding.ts +++ b/src/branding.ts @@ -13,7 +13,7 @@ export const VERSION = (() => { return "0.0.0"; } })(); -export const TAGLINE = "powered by Axon models by MatterAI"; +export const TAGLINE = "by MatterAI"; // Semantic color tokens. The OpenTUI primitives resolve these against the // active OrbCode theme, so components never inherit terminal-defined colors. diff --git a/src/prompts/system.ts b/src/prompts/system.ts index ec27bfd..91ecf32 100644 --- a/src/prompts/system.ts +++ b/src/prompts/system.ts @@ -1,16 +1,16 @@ -import * as os from "node:os" +import * as os from "node:os"; -import { getShell } from "../utils/shell.js" -import type { MemoryFile } from "../memory/types.js" -import { renderMemorySection } from "../memory/loader.js" -import type { Skill } from "../skills/types.js" -import { renderSkillCatalog } from "../skills/loader.js" +import { getShell } from "../utils/shell.js"; +import type { MemoryFile } from "../memory/types.js"; +import { renderMemorySection } from "../memory/loader.js"; +import type { Skill } from "../skills/types.js"; +import { renderSkillCatalog } from "../skills/loader.js"; // Role definition and tool guide ported verbatim from the Orbital extension // (agent mode roleDefinition + applyDiffToolDescription). Only the system // information section is adapted from the IDE to the CLI environment. -const roleDefinition = `You are OrbCode AI coding assistant, powered by axon models by MatterAI. You operate in OrbCode CLI. +const roleDefinition = `You are OrbCode, AI coding assistant, by MatterAI. You operate in OrbCode CLI. You are pair programming with a USER to solve their coding task. Each time the USER sends a message, we may automatically attach some information about their current state, such as their working directory, project file structure, git status, and more. This information may or may not be relevant to the coding task, it is up for you to decide. @@ -70,7 +70,7 @@ Your system prompt may include an "Available Skills" section listing skills by n Tools whose names start with \`mcp__\` are provided by external MCP servers the user has configured. They work exactly like native tools — call them with the standard tool call format when the task requires their capabilities. Their descriptions and parameter schemas come from the MCP servers. -Use the update_todo_list tool to create and maintain a TODO list for any multi-step task (3 or more steps), keeping statuses up to date as you work. For trivial tasks that need only one or two steps, skip the todo list and just do the work.` +Use the update_todo_list tool to create and maintain a TODO list for any multi-step task (3 or more steps), keeping statuses up to date as you work. For trivial tasks that need only one or two steps, skip the todo list and just do the work.`; const toolGuide = ` Common tool calls and explanations @@ -239,36 +239,41 @@ Replace the entire TODO list with an updated checklist reflecting the current st - Keep the todo list AHEAD of the work, not behind it: it is a steering tool, not a changelog. Lay out upcoming steps before you start them instead of only recording steps after they are finished. IMPORTANT: Use attempt_completion tool when you have completed the task. This signals that you are done. -` +`; function getSystemInfoSection(cwd: string): string { - return `# System Information + return `# System Information - Operating System: ${process.platform === "darwin" ? `macOS ${os.release()}` : `${process.platform} ${os.release()}`} - Default Shell: ${getShell()} - Home Directory: ${os.homedir()} - Current Workspace Directory: ${cwd} -The Current Workspace Directory is the directory the user launched OrbCode CLI from, and is therefore the default directory for all tool operations. Commands run in the current workspace directory unless a different cwd is passed; changing directories inside a command does not modify the workspace directory. When the user initially gives you a task, a listing of filepaths in the current workspace directory will be included in the Environment Details section. This provides an overview of the project's file structure, offering key insights into the project from directory/file names (how developers conceptualize and organize their code) and file extensions (the language used). This can also guide decision-making on which files to explore further. If you need to further explore directories such as outside the current workspace directory, you can use the list_files tool. If you pass 'true' for the recursive parameter, it will list files recursively. Otherwise, it will list files at the top level, which is better suited for generic directories where you don't necessarily need the nested structure, like the Desktop.` +The Current Workspace Directory is the directory the user launched OrbCode CLI from, and is therefore the default directory for all tool operations. Commands run in the current workspace directory unless a different cwd is passed; changing directories inside a command does not modify the workspace directory. When the user initially gives you a task, a listing of filepaths in the current workspace directory will be included in the Environment Details section. This provides an overview of the project's file structure, offering key insights into the project from directory/file names (how developers conceptualize and organize their code) and file extensions (the language used). This can also guide decision-making on which files to explore further. If you need to further explore directories such as outside the current workspace directory, you can use the list_files tool. If you pass 'true' for the recursive parameter, it will list files recursively. Otherwise, it will list files at the top level, which is better suited for generic directories where you don't necessarily need the nested structure, like the Desktop.`; } export interface SystemPromptOptions { - /** AGENTS.md memory files to inject (lowest precedence first). */ - memoryFiles?: MemoryFile[] - /** Skills catalog to advertise to the model. */ - skills?: Map + /** AGENTS.md memory files to inject (lowest precedence first). */ + memoryFiles?: MemoryFile[]; + /** Skills catalog to advertise to the model. */ + skills?: Map; } -export function buildSystemPrompt(cwd: string, options: SystemPromptOptions = {}): string { - const memorySection = options.memoryFiles ? renderMemorySection(options.memoryFiles) : "" - const skillSection = options.skills ? renderSkillCatalog(options.skills) : "" - return [ - roleDefinition, - toolGuide, - getSystemInfoSection(cwd), - memorySection, - skillSection, - ] - .filter(Boolean) - .join("\n\n") +export function buildSystemPrompt( + cwd: string, + options: SystemPromptOptions = {}, +): string { + const memorySection = options.memoryFiles + ? renderMemorySection(options.memoryFiles) + : ""; + const skillSection = options.skills ? renderSkillCatalog(options.skills) : ""; + return [ + roleDefinition, + toolGuide, + getSystemInfoSection(cwd), + memorySection, + skillSection, + ] + .filter(Boolean) + .join("\n\n"); } From 57c3313c3257b9080e8190fcbcb9c107e94ec470 Mon Sep 17 00:00:00 2001 From: code-crusher Date: Fri, 4 Sep 2026 10:33:02 +0530 Subject: [PATCH 2/4] fix(prompts): add list_files to toolGuide for consistency with system-info section --- src/prompts/system.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/prompts/system.ts b/src/prompts/system.ts index 91ecf32..fcf4736 100644 --- a/src/prompts/system.ts +++ b/src/prompts/system.ts @@ -168,6 +168,21 @@ When you don't know line numbers: use \`search_files\` to locate the code, note - For code reviews, first use a compact change inventory such as \`git status --short\`, \`git diff --stat\`, and \`git diff --unified=20\`. Do not dump an unbounded repository diff and then request the same per-file diffs again. +# list_files + +The \`list_files\` tool lists files and directories within a given directory. Use it to explore directory structure when you need to understand the project layout or find files by location rather than content. + +## Parameters + +- \`path\` (required): Directory path to inspect, relative to the workspace. +- \`recursive\` (optional, default false): Set true to list contents recursively; omit or false for top-level only. + +## Guidance + +- Use \`list_files\` for directory exploration and file discovery by location. Use \`search_files\` for finding content by regex. +- For generic directories where you don't need the nested structure (like the Desktop), use non-recursive mode. +- Do not use this tool to confirm file creation; rely on user confirmation instead. + # execute_command The \`execute_command\` tool runs CLI commands on the user's system. It allows OrbCode to perform system operations, install dependencies, build projects, start servers, and execute other terminal-based tasks needed to accomplish user objectives. From 3820a8349f357571e7c4fab143c6a8728bd3fceb Mon Sep 17 00:00:00 2001 From: code-crusher Date: Fri, 4 Sep 2026 10:38:51 +0530 Subject: [PATCH 3/4] fix(schema): remove recursive from required in list_files for strict mode compliance --- src/prompts/system.ts | 2 +- src/tools/schemas/list_files.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/prompts/system.ts b/src/prompts/system.ts index fcf4736..9daf60e 100644 --- a/src/prompts/system.ts +++ b/src/prompts/system.ts @@ -175,7 +175,7 @@ The \`list_files\` tool lists files and directories within a given directory. Us ## Parameters - \`path\` (required): Directory path to inspect, relative to the workspace. -- \`recursive\` (optional, default false): Set true to list contents recursively; omit or false for top-level only. +- \`recursive\` (optional, default false): Set true to list contents recursively; omit or false for top-level only. Must be explicitly provided (boolean or null) when calling this tool. ## Guidance diff --git a/src/tools/schemas/list_files.ts b/src/tools/schemas/list_files.ts index 5a2f9a8..163981b 100644 --- a/src/tools/schemas/list_files.ts +++ b/src/tools/schemas/list_files.ts @@ -19,7 +19,7 @@ export default { description: "Set true to list contents recursively; omit or false to show only the top level", }, }, - required: ["path", "recursive"], + required: ["path"], additionalProperties: false, }, }, From c50d671dec06a30d5915ff2f4455404562a0bf47 Mon Sep 17 00:00:00 2001 From: code-crusher Date: Fri, 4 Sep 2026 10:40:19 +0530 Subject: [PATCH 4/4] fix(schema): restore recursive to required for strict mode, update guidance --- src/prompts/system.ts | 2 +- src/tools/schemas/list_files.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/prompts/system.ts b/src/prompts/system.ts index 9daf60e..1387600 100644 --- a/src/prompts/system.ts +++ b/src/prompts/system.ts @@ -175,7 +175,7 @@ The \`list_files\` tool lists files and directories within a given directory. Us ## Parameters - \`path\` (required): Directory path to inspect, relative to the workspace. -- \`recursive\` (optional, default false): Set true to list contents recursively; omit or false for top-level only. Must be explicitly provided (boolean or null) when calling this tool. +- \`recursive\` (required, default false): Set true to list contents recursively; false or null for top-level only. Must always be provided (boolean or null) per strict mode. ## Guidance diff --git a/src/tools/schemas/list_files.ts b/src/tools/schemas/list_files.ts index 163981b..5a2f9a8 100644 --- a/src/tools/schemas/list_files.ts +++ b/src/tools/schemas/list_files.ts @@ -19,7 +19,7 @@ export default { description: "Set true to list contents recursively; omit or false to show only the top level", }, }, - required: ["path"], + required: ["path", "recursive"], additionalProperties: false, }, },