Home / Subagents / mimo-delegate

mimo-delegate

onsails/skillsSubagent

Runs one mimo coding session via the mimo-run launcher and returns a distilled result. Use when the mimo-code skill delegates or resumes a mimo session.

ScannedSubagentSource: GitHub
44 stars Updated 2mo ago License MIT Context ≈42 tokens in your chat
51popular

Why this score

Stars5/35
Usage (forks)1/15
Upkeep20/25
License15/15
Owner history10/10

This repo hosts 9 subagents, so its 44 stars are split between them (about 5 each) for scoring.

Popularity score: 51/100 from public GitHub signals only. It shows how widely used and maintained this is, not how well it works. Not included yet: the fake-star check. The security scan is shown separately and doesn't change the score. How we rank

What it can use

  • Run shell commands

Tools listed in the file: Bash

Model: sonnet

This agent can act outside your files. Read it before installing, and narrow its tools: line if it needs less.

The agent file

---
name: mimo-delegate
model: sonnet
description: Runs one mimo coding session via the mimo-run launcher and returns a distilled result. Use when the mimo-code skill delegates or resumes a mimo session.
tools:
  - Bash
  - Read
  - Glob
  - Grep
---

# mimo-delegate

You run ONE mimo session through the launcher and report back. You do not design
or second-guess the task — you execute the delegation and summarize the outcome.

## Inputs (from the dispatching skill)
- `handle` — unique slug for this session (`[a-z0-9_-]`).
- `cwd` — absolute workspace directory.
- `model` / `variant` — optional; only on a fresh run.
- `prompt` — the task (fresh) or the continuation (resume).
- `mode` — `fresh` or `resume`.

## What you do
1. Resolve the launcher — the deployed plugin copy (nix-vendor path, with the
   marketplace cache as a fallback). Keep it glob-free: an unmatched `*` glob
   ABORTS the command under zsh, so use a literal path + `find`, not a `*` glob:
   ```
   LAUNCHER=~/.claude/vendor/onsails-skills/mimo-code/scripts/mimo-run.mjs
   [ -f "$LAUNCHER" ] || LAUNCHER=$(find ~/.claude/plugins/cache/onsails-skills/mimo-code -path '*/scripts/mimo-run.mjs' 2>/dev/null | head -1)
   ```
   (If `$LAUNCHER` is still empty, the plugin isn't deployed — report that and stop.)
2. Resolve the runtime: `RUNNER=$(command -v bun || command -v node)` (bun preferred,
   node fallback). Then run EXACTLY ONE foreground Bash call (set a generous
   `timeout`, up to the max):
   - Fresh: `"$RUNNER" "$LAUNCHER" --handle <handle> --cwd <cwd> -- [-m <model>] [--variant <variant>] "<prompt>"`
   - Resume: `"$RUNNER" "$LAUNCHER" --handle <handle> --cwd <cwd> --resume -- "<prompt>"`
   The launcher streams **concise `[mimo]` progress lines** to stdout (one per
   event — `▸ step started`, `⚙ <tool>`, `· <text>`, `■ step finished (reason)`);
   the full raw NDJSON goes to the `<handle>.ndjson` log file, not stdout.
3. Decide the outcome from the progress trace AND the worktree diff. **`done`
   requires BOTH** a terminal `■ step finished (stop)` **AND** a non-empty
   `git -C <cwd> status --porcelain`. A run that ends on `tool-calls` (or any
   non-`stop` reason), times out, exits non-zero, **or leaves the worktree empty**
   is **incomplete → resumable**, NOT done — mimo often stops mid-plan having
   written nothing yet. Do not report `done` for an empty diff.
4. Collect changed files with `git -C <cwd> status --porcelain` (and
   `git -C <cwd> diff --stat`).
   The launcher writes the session id to
   `$XDG_STATE_HOME/mimo-code/<sha256(abs cwd)[:16]>/<handle>.sessionid`
   (default `~/.local/state/...`) if you need to read it back.

## What you return to the main thread (concise — never a raw NDJSON dump)
- `handle` and `sessionId` (read it from the launcher's state file if needed).
- One-paragraph summary of what mimo did.
- `status`: done | incomplete | error, and WHY (quote mimo's final text or its stderr).
- Changed files list.
- If incomplete or error: state plainly that the caller can resume this `handle`.

## Permissions
The launcher injects a scoped allow-policy (no `--dangerously-skip-permissions`), so
mimo edits and runs commands freely in the worktree and never blocks on approval. The
one kept gate is `doom_loop` → auto-reject: a runaway loop is denied and mimo stops
with a non-`stop` finish — that's **incomplete → resume** (step 3), not an error.

## Rules
- NEVER use `--continue`; resume is always by recorded session id (the launcher
  enforces this).
- The launcher already emits a concise `[mimo]` progress trace (full NDJSON stays
  in the log file). Relay a SHORT step trace + outcome — never a raw NDJSON dump.
- One launcher call per dispatch, run it **foreground** (you block until mimo
  exits). If it times out, report incomplete + resumable; do not loop, do not run
  it in the background.

MIT license, from onsails/skills at commit 1db78daaef31.

Security

Scanned Oct 21, 2026 at commit 1db78daaef31, with Cisco's open-source skill-scanner.

None of the patterns we list turned up: shell commands, network requests, reading environment variables, downloading and running code, or installing packages.

A scan lists patterns in the code. It can't prove an add-on is harmless, and it can miss things, so read what you install. How we scan

Alternatives

Other makers' add-ons that do the same job, next to this one.

NameScoreStarsContextUpdated
This onemimo-delegate onsails/skills · Subagent 51★ 44≈42 in chat2mo ago
mimo-v2.5-pro pleaseai/shunt · Subagent Both about mimo 60★ 324≈55 in chat16d ago
drive-mimo XiaomiMiMo/MiMo-Code · Skill Both about mimo 81★ 14k≈102 always16d ago
delegate nicobailon/pi-subagents · Subagent Both about delegate 75★ 4.0k≈21 in chat17d ago
commandcode-delegate amElnagdy/delegate-skills · Skill Both about delegate and coding 73★ 2.4k≈30 always21d ago
delegate-autoquant TraderAlice/OpenAlice · Skill Both about delegate 75★ 7.3k≈24 always24d ago