Interaction

minacode runs as a conversation in your terminal. You type a request, the agent works through it with tools, and you stay in the loop the whole time — steering, answering questions, and reviewing changes.

Follow-ups

You can keep typing while minacode works. A submitted follow-up joins the current task if another model step begins; otherwise it becomes the next task. A draft still in the editor is never submitted by interrupting — the first Ctrl-C discards it instead.

Everything below the divider is waiting. The agent picks those messages up at its next step, and they move up into the log above the divider once they are in.

Key

When

Effect

Enter

While the agent works

Queue a follow-up for the next model step

Ctrl-C

While the agent works

Discard a draft in the editor; with the editor empty, interrupt the task — retracting the message if the agent has not answered yet, or recording the interrupt once it has

Ctrl-C

Idle prompt

Clear input line

Ctrl-U

Any prompt

Clear the whole input line, leaving the turn running

Up / Ctrl-P

While working, with an empty editor

Recall the newest queued message

Interrupting splits two ways. If the agent has not answered yet, Ctrl-C retracts the message: it is discarded and never reaches the conversation record or the saved session, as if it was never sent (your input history still recalls it with Ctrl-P). Once the agent has spoken or run a tool, Ctrl-C interrupts: the work already shown stays, and the turn is marked as interrupted so minacode knows it ended early.

Bash output

While Bash runs, its live output stays above the working divider. When the command is running, a blank row keeps its last live-output line clear of that divider. When the command finishes, minacode keeps the transcript quiet by folding that preview into a gray output · Ctrl-O to expand row. Press Ctrl-O to browse the ten most recent completed Bash previews, newest first. Use j/k or the arrows to select one and Enter to open it; Esc returns to the list, while Ctrl-O or q closes the viewer. The complete result remains stored under its tr.N key even when the preview is folded. Each viewer screen leaves a blank row above its subdued labeled rule, separating it from terminal scrollback.

Commands

Type / commands at the prompt to inspect state, switch models, manage the session, or configure runtime behavior on the fly. Run /help for the built-in reference.

Looking around

/status — Shows everything about the runtime at a glance: workspace path, session id, active provider and model, calculated compaction-budget fill percentage, conversation history, prompt-cache hit ratio, code index state, background jobs, and whether an update is available.

The /status command showing workspace, session, provider, context, and code index state

The /status output at a glance.

/diff — Review changes from the latest turn or the whole session. See Reviewing changes below.

The two tabs pick the range; each row is one changed file with its added and removed line counts. Enter opens the selected file’s diff.

/ps — Lists active background jobs (see Tools). Each row shows job id, state, command, and elapsed time.

/skills — Lists every installed skill by name, source, and description.

/config — Shows the active configuration: provider blocks, runtime settings, and their resolved values.

The code index

/index [force] — Build or rebuild the code symbol index that powers InspectCode. The first build walks every source file; later syncs are fast. Add force to rebuild from scratch. See Code symbol index for details.

Switching models

/provider [NAME] — Show or switch the active provider. Without an argument it lists every configured provider (from your configuration) and lets you pick one interactively. With a name it switches immediately.

/model [MODEL] — Show or switch the model for the current provider. Without an argument it opens an interactive picker with configured and discovered models. Changing the model also prompts you to pick a reasoning effort.

/reason [EFFORT] — Show or set reasoning effort (OpenAI o-series and DeepSeek R1). Values: off, minimal, low, medium, high, xhigh. Without an argument it opens a picker.

Switching providers and models interactively during a session

Switching providers and models mid-session.

Managing the session

/compact — Summarize and shrink the conversation immediately. minacode keeps long sessions within budget on its own, but /compact trims on demand.

/yolo — Toggle confirmation prompts. See Safety before turning this off permanently.

/strict — Toggle strict tool-call schemas (OpenAI / DeepSeek).

/set KEY VALUE — Set provider.* or runtime.* for the session. Example: /set provider.model deepseek-v4-flash.

/resend — Cancel and re-send the in-flight model request without restarting the turn. Type it while a model request is waiting; it has no effect while the agent is running a tool or otherwise between model calls. The divider briefly reports the retry, keeps its elapsed timer and waiting pulse, then returns to working for the replacement request:

MCP

/mcp — Manage MCP server connections. Sub-commands:

Usage

Effect

/mcp

List servers and connection status

/mcp connect <server> [server ...]

Connect servers now

/mcp disconnect <server>

Disconnect a server

/mcp tools [server]

List tools from a connected server

Help and exit

/help — Show the built-in command and tool reference.

/exit, /quit — Leave minacode. Your session is saved automatically and can be resumed with -c or --resume.

Mentions

Two inline references, both Tab-completed as you type:

  • @server or @server.tool — connect to an MCP server on demand and point the agent at that server or tool. The connection remains active until you disconnect it.

  • $skill — inject a skill’s full instructions into the current turn.

Keys and input editing

Interactive selectors (model picker, MCP manager, diff viewer) support:

  • j / k or arrow keys to move

  • g / G to jump to top / bottom

  • / to search, Enter to accept, Esc to cancel

The input line supports:

  • history recall and completion

  • Ctrl-C — clear the current input; with the input empty while running, interrupt the turn (retracting it if the agent has not answered yet)

  • Ctrl-U — clear the whole input line, in the idle prompt and the follow-up editor alike

  • Ctrl-D — exit from an empty prompt

  • Ctrl-R — reverse-search your history

  • Ctrl-O — browse the ten most recent completed Bash output previews; press it again to close

  • Ctrl-X Ctrl-E or Ctrl-G — edit the current input in $VISUAL / $EDITOR (falls back to vim)

Editing a follow-up message in an external editor

Typing a follow-up message in an external editor.

When you open the editor in reply to the agent, its most recent reply is appended below a git-style scissors line, so you can read what you are answering while you compose (the full-screen editor hides that scrollback):

Everything from the scissors line down is stripped before the message is sent; a scissors line you type yourself is left untouched. Long replies are capped to their most recent lines.

Sessions

Your work is saved automatically — the conversation, edits, and diffs are tied to the project directory you started in, so an interrupted session picks up where it stopped. Inactive sessions older than seven days are removed at startup by default; set runtime.session_retention_days = 0 to keep them indefinitely.

Resume from the command line:

minacode -c            # resume the latest session in this project
minacode --resume      # same, explicit
minacode --resume UID  # resume a specific session by id, from any directory

Sessions are stored per project, so -c and a bare --resume never reach into another project’s history — even when your most recent session anywhere was somewhere else. A UID is looked up across every project, so you can resume one by id from wherever you are.

Resuming replays the conversation into your scrollback, including the diff each edit made. Long diffs are trimmed there; /diff always has the full text.

Reviewing changes

/diff opens an interactive, tabbed viewer with two views:

  • Latest — what changed during the most recent round of your requests

  • Session — the net diff for everything since the session began

Navigate with j/k, g/G, and / search; press Esc to close.

Interactive diff list showing changed files from the latest turn

Choosing a file to diff.

Side-by-side file diff with syntax highlighting

Side-by-side detail view of a changed file.

Long sessions

minacode keeps long conversations within a working budget on its own, summarizing older context as needed so a session can run indefinitely. Run /compact to trim it now, or /status to see current context and token usage.