All releases

Matcha CLI · 0.02

Matcha CLI 0.02

Released

Easier writing in the terminal. Steadier sessions, and clearer config.

Still local, with your own API key. Model requests still go to the Provider you choose.

TUI and editing

  • Status line is off by default. Turn on [ui.status_line] to show the directory, model, context use, cost, session name, or a script of your own. Scripts can refresh on refresh_interval.
  • /minimal and /fullscreen switch in the current session. No restart, and the current turn keeps running.
  • In the prompt, Shift+arrow extends the selection. Double-click a word, triple-click a paragraph. Drag in the scrollback to copy.
  • Ctrl+S stashes the current draft. Send something else, then bring the draft back.
  • The slash menu sorts by recent use. Skills sit below commands.
  • /edit-prompt opens an external editor from the full TUI, not only from /minimal.
  • On an empty prompt, Up first selects a queued follow-up, instead of opening history.
  • /usage, /session-info, and /context open in a tabbed window, instead of writing diagnostics into the chat. Click or drag in /session-info to copy.
  • /copy keeps Markdown structure, including headings and code blocks.
  • Keys typed during startup, including Enter, stay in the prompt and submit or wrap as usual.
  • High-refresh terminals draw at the display rate. Scrolling is smoother.
  • Images pasted in iTerm2 show a preview in the prompt.
  • /settings can make Arabic and Persian display correctly in the terminal.

Sessions, permissions, and the agent

  • You can set the default permission mode for new interactive sessions. Permission cards offer Always allow and Never allow. Never allow for MCP tools is remembered per project.
  • mkdir and touch no longer ask for confirmation in Auto mode, or when they are on the safe-command list. Messages to sub-agents in Auto mode go through on their own.
  • Headless sessions appear in the resume list, but not in the default history. You can also pass a hint at startup so a headless session answers permission prompts itself.
  • /rewind (/undo) only truncates the conversation. It no longer rolls back files, and it asks first by default.
  • Session titles appear sooner and stay stable. /rename --auto drops a handwritten title so automatic naming resumes. /resume includes a recap and a summary of the last turn when there is content.
  • Replies cut off by length continue automatically, instead of failing the turn. Brief inference failures — stalls, disconnects, 5xx — retry on their own.
  • If a token expires during network jitter, a long session keeps the work already done.
  • Tools declare whether they are read-only, so restricted agents and sub-agents can tighten permissions.
  • There is a cap on how many sub-agents can run at once. Extra work waits in queue, instead of exhausting the machine.
  • If a shell command is still running when you send a new message, it moves to the background instead of being cancelled.
  • A queued message can interrupt immediately, without waiting for the current turn to finish.
  • matcha du (alias disk-usage) lists disk use under ~/.matcha, including worktrees. Unused worktree copies are reclaimed when it is safe. The last remaining copy is not deleted.

Hooks, workflows, and MCP

  • A PreToolUse hook can change tool arguments before the tool runs, not only allow or deny.
  • A PostToolUse hook can send results back to the model, including hooks registered from the SDK.
  • A hook can ask you before it decides, instead of always allowing or always denying.
  • StopCancelled notifies hooks when a turn ends unfinished — interrupt, permission denial, or max-turn limit.
  • Each SessionEnd hook has its own timeout. One slow hook cannot stall the whole exit.
  • /workflow completes saved workflow names, and accepts --agent-budget / --effort (or JSON fields) to limit sub-agents. /workflows opens the Workflows page in the extended window.
  • Your MCP servers can join when a session starts. MCP sign-in from /mcps no longer freezes the session. Brief connection failures retry. MCP can also ask for a form or a URL consent, using the same overlay as questions.
  • Tool and MCP processes receive the current session id as an environment variable.

Configuration

  • Config merges in layers, later wins: compiled defaults → managed → user ~/.matcha/config.toml → project .matcha/config.toml (allowed sections only) → MATCHA_CONFIG / MATCHA_CONFIG_PATH → requirements → environment variables → CLI flags.
  • MATCHA_CONFIG (inline JSON) and MATCHA_CONFIG_PATH (a JSON or TOML file) override only approved keys. You do not have to edit config.toml.
  • [toolset.web_search] can allow or exclude domains. Whether search can actually go out still depends on whether web search is available.
  • You can turn off local full-text session search with [features] session_search, or the matching environment variable, so several processes can share one home.

ACP and headless

  • ACP clients can pass reasoning effort when opening or resuming a session.
  • A caller can limit which bundled skills a sandboxed session exposes.
  • matcha -p no longer fails when the agent asks a question or waits for plan approval.

Stability and performance

  • git status and history in large repos no longer saturate CPU and memory.
  • New sessions and the first message start faster. MCP and remote settings load in the background, so a large repo no longer blocks the first turn.
  • Sub-agents start together more quickly. Finished session records are dropped from memory.
  • Install archives are smaller. Official downloads stay on cli.matchacode.net. The default is to check for updates, not to install them.