Agent-readable docs index: /llms.txt. Full docs in one file: /llms-full.txt. Download /docs.zip to grep all markdown files locally.

Shell Commands

Prefix a Discord message with ! to run it as a shell command. There is no model turn. It is the fastest way to check state, run a quick script, or see git status.
!git status

Using the ! prefix

"!pnpm test" ──▶ OpenCode session shell ──▶ "-# $ pnpm test" │ command exits ▼ one output message
Kimaki removes the ! and runs the rest with OpenCode's native session shell. You see two bot messages:
  1. A start line when the command starts:
    -# $ pnpm test
  2. One output message when the command ends, with the last part of the output in a code block:
    ``` ✓ src/utils.test.ts (12 tests) ✗ src/cli.test.ts (1 failed) ``` -# exit 1
Details:
  • The output is not live. Kimaki posts it once, after the command exits.
  • Long output is cut to the last ~1800 characters and marked output truncated.
  • The status line shows exit N for a non-zero exit code, killed, or timed out. A successful command has no status line.
  • Empty output shows (no output).

The agent sees the output

The command and its output become part of the session history. The agent does not reply to it, but it sees the output on its next turn. So you can run !pnpm test, then send fix the failing test.

It does not interrupt

A ! command runs next to the current run. It does not stop the agent. Its output joins the context at the next step.
Shell commands cannot be queued. !pnpm test. queue runs the literal command pnpm test. queue.

Stopping a command

The command runs until it exits. /abort stops the current run and also kills the thread's running ! commands.
Long-running servers block until they exit. For a dev server you want to open remotely, use Tunnels instead.

Where it runs

The command runs in the session's working directory. That is the worktree when the session uses one, or the folder set with /cwd. Otherwise it is the project folder. So ! commands run in the same place the agent works.
A ! message in a project channel starts a new thread and session, then runs the command there.

From the CLI

kimaki session shell 'git status' --session <session-id>

What it's good for

  • !git status, !git log --oneline -5: quick git checks.
  • !ls, !cat package.json: inspect files without an agent turn.
  • !pnpm test: start a one-off command and give the result to the agent.