Skip to content

Using the CLI

Interactive REPL

Running the binary on a terminal starts a persistent conversation. One process serves every turn, so the prompt cache stays warm and a turn boundary costs milliseconds.

bash
oasis-agent

If nothing is configured yet, the first interactive run walks you through setup.

The editor

ActionKeys
Newline without submitting\ + , or Alt +
Complete the command being typedTab (/ to choose, accepts)
Cycle the permission modeShift + Tab
Clear the input, or cancel a running turnCtrl + C
Leave on an empty promptCtrl + D
Release a foreground job mid-turnCtrl + B

Word motions and persistent history work as they do in any readline-style editor. Disable history with --no-history or OASIS_AGENT_NO_HISTORY=1.

Slash commands

CommandWhat it does
/helpShow the command help
/expand [id]Print a collapsed tool result in full (default: the last one)
/costToken and cost totals for this session
/planList the model's current plan items
/plan on | off | statusToggle or report read-only plan mode
/jobsBackground jobs. ↑↓ choose, output, k kill, d detach
/backgroundHand this conversation to a background agent, or let go of one. /bg and /handoff are the same thing
/agentsBackground agents and saved conversations; switches to one in place. /resume is the same
/statusVersion, installed versions, launcher, update settings
/configOpen the settings menu. ↑↓ choose, ←→ change, edit
/config <key> <value>Set one key without opening the menu
/restartRestart with the settings on disk. The conversation is not carried over
/updateUpdate to the newest published version
/exit, /quitLeave the REPL

A line starting with / is not always a command

An absolute path is the common case, so anything with a / or a . in the first word is treated as ordinary input and sent to the model. /home/user/file.txt reaches the agent; /cost does not.

Commands that work mid-turn

/jobs, /cost, /help, /plan and /background run where you type them, even while the model is working. Anything else you type is queued and becomes the next prompt.

Permission modes

Five modes, cycled with Shift+Tab, live during a turn as well as at the prompt. The active mode shows under the prompt and in the pinned region while a turn runs.

ModeBehaviour
planRead-only. Mutating tools are refused until a plan is approved
manualAsk before every mutating tool. The default
accept editsFile edits apply without asking, inside the working directory. Bash still asks
autoNothing routine is asked, inside the working directory
dangerousEvery waivable request is approved. Shown in red

Hard-stop tools (a PLC write, a motion command) ask in every mode. Full detail in Permission Model.

Output rendering

FeatureBehaviourDisable with
Unified diffsFile edits render inline as a diff--no-diffs
Collapsible resultsLong tool output collapses to a placeholder; /expand prints it in full--no-collapse
ColourAuto-detected from the terminal--no-color, or NO_COLOR
Cost meterRunning token and cost totals; /cost for the breakdown

Collapsed results stay expandable after a resume. A resumed transcript replays through the same renderers a live turn uses.

Background jobs

When the agent starts a long-running task, a row appears under the prompt with a live timer:

text

  2 jobs ⚙ npm test 1m34s ⚙ vite dev 2m07s  ·  /jobs

/jobs opens the list. The cursor follows the job row, not a line number, so a job finishing above the one you are about to kill does not slide a different one under your keypress.

Full detail in Background Agents & Jobs.

Pasting

Paste sizeBehaviour
Up to 3 lines and 280 charactersAppears inline
LargerCollapses to a [Pasted N lines, M chars] placeholder; the full text is sent on

Backspace deletes a collapsed paste whole rather than a character at a time.

Restarting

/restart reloads the settings on disk (endpoint, model, packs) and starts fresh. The conversation is not carried over. If you want to keep it, hand it to a background agent with /background first, or resume it later from Sessions.

software-defined automation