CLI

Agent

Run the Stimulir AI engineer from your terminal. The conversation lives in the cloud; tool calls execute on your machine with approvals.

First run from your terminal

Install the CLI, log in, pick a workspace, then start the agent. The agent inherits that login and active workspace — no extra setup.

bash
# 1. Install (see CLI → Installation for details)
uv tool install stimulir

# 2. Log in and select the workspace the agent should act in
stimulir login
stimulir workspace use <workspace-id>

# 3. Start the agent — bare `stimulir`, or with an opening task
stimulir
stimulir agent "Add a /health endpoint and wire it into the router"

Installed the CLI before the agent shipped and seeing No such command 'agent'? uv-installed tools don't auto-update — run uv tool upgrade stimulir (requires stimulir ≥ 0.1.165).

From there it works like a coding agent in your shell: it streams its reasoning, proposes tool calls, and runs them on your machine after you approve. A typical first exchange looks like:

text
$ stimulir agent "What changed in the last commit?"

stimulir › I'll look at the latest commit.

  ⏵ bash: git show --stat HEAD
    Run this command? [y]es / [n]o / [a]lways  y

  … 3 files changed, 47 insertions(+), 12 deletions(-)

stimulir › The last commit refactored the auth middleware — it splits
token validation into its own module and adds tests. Want the details?

The agent only runs what you approve. Read-only commands (like git status or stimulir … --help) and file reads run without a prompt; shell commands and file writes ask first. See Local execution & approvals below.

Ways to start

Run stimulir with no subcommand in a terminal, or stimulir agent with an optional opening prompt, to launch an interactive agent session:

bash
# Interactive REPL — drop into an agent session
stimulir

# Same thing, with an opening prompt
stimulir agent "Add a health check endpoint and wire it into the router"

The agent uses the same login and active workspace as the rest of the CLI. Run login and pick a workspace first.

How it runs

The agent always runs connected: the server-side agent (Pi) runs the reasoning loop in the cloud and emits tool intents; this CLI executes those intents — bash commands, file reads and writes, globs — on your local machine, prompting you for approval. The transcript is stored server-side, so every session shows up in the Engineering workspace with full traces.

bash
# Server runs the loop, your machine executes tool calls
stimulir agent "Refactor the auth module"

# Resume an existing session by key
stimulir agent --session <session-key>

There is no offline mode — the agent requires your Stimulir login, a selected workspace, and a reachable console API. One brain, server-side, on every surface: that keeps every session recorded, traceable, and tool-grounded.

Attach as a local executor

A session started in the web or desktop app can hand local execution to your terminal. In the app's chat composer, open the "Continue in: Local" dropdown, then attach this machine:

bash
# List recent sessions and pick one to attach to
stimulir attach

# Attach directly to a known session
stimulir attach <session-key>

attach is pure executor mode — there is no REPL. The agent keeps running server-side and its tool calls execute locally, with approval prompts, until you press Ctrl-C. With no session key, the CLI lists recent sessions for you to choose from.

One session, two bodies

The conversation and transcript live server-side; execution is a separate, swappable body. The same session can be driven by:

  • Cloud execution — tool calls run in a managed sandbox in the cloud.
  • Local execution — tool calls run on your machine, via the connected CLI or stimulir attach.

Because the transcript is shared, you can switch a session between Cloud and Local mid-conversation in the web app, or pick it up from your terminal — without losing context. Whichever body is active, the work is appended to the one session.

Local execution & approvals

When tool calls execute locally, approvals always happen on your machine. Each intent — a shell command, a file write — is shown before it runs. Your local execution power is exactly whatever your own machine and login allow; nothing runs that you have not approved.

  • Approve once — run a single intent.
  • Always allow — auto-approve a category of intents for the rest of the session.
  • Destructive commands always prompt — even under "always allow", commands that delete or overwrite are re-confirmed every time.

Local-executor protocol

Connected and attach modes speak a small bridge protocol over the Console platform API at https://api.stimulir.com. It is documented here so an advanced user could build their own executor. Endpoints authenticate with your session token and the X-Business-Profile-Id header, the same as the rest of the platform API.

POST/api/v1/agent-executor/sessions/{session_key}/attach
GET/api/v1/agent-executor/sessions/{session_key}/stream
POST/api/v1/agent-executor/sessions/{session_key}/results
POST/api/v1/agent-executor/sessions/{session_key}/messages

The attach → stream → intent → result cycle

  • attach — register this machine as the local executor for the session.
  • stream — open a Server-Sent Events stream of the running turn.
  • results — post the output of a tool intent the executor ran locally.
  • messages — send a new user message into the session (used by the connected REPL).

The executor attaches, opens the stream, runs each tool_intent it receives locally (after approval), posts the result back, and the server continues the turn — repeating until the turn completes.

SSE frame types

The stream endpoint emits these event frames:

  • hello — stream is established.
  • ping — keep-alive heartbeat.
  • assistant_delta — incremental assistant output.
  • tool_intent — a tool call for the local executor to run.
  • turn_complete — the turn finished.
  • turn_error — the turn failed.

Next

See the Command Reference for the full flag list, or Installation to set up login and workspaces.