# wiff

Runs multi-agent workflows written as plain JavaScript, survives a crash and picks up where it stopped.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 5
- Author: xxxoooxoxo
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/xxxoooxoxo/wiff
- Updated: 2026-09-10
- HTML: https://affpapa.org/en/nevibecode/mcp/wiff

## What it does

wiff moves orchestration out of the chat and into a script. You write JavaScript with `agent()`, `parallel()` and `pipeline()`, and a local daemon executes it in the background. Every step lands in a journal, so after a failure finished agents come back from cache instantly instead of being paid for twice. An agent interrupted mid-turn restarts with a digest of its previous attempt.

Child agents can run on Codex, Claude, Cursor or Kimi, and any MCP client — Codex, Claude, Cursor, a cron job — can start, watch, resume or cancel the same run. The stdio bridge is disposable, the daemon is not, so killing the launching process leaves the workflow alive. Writing agents get `isolation: "worktree"` for a detached git worktree each.

Node.js 22 or newer is required. Preferences go in `~/.wiff/config.json`, with project overrides in `<cwd>/.wiff/config.json`. A rejected agent fails the whole workflow unless you call `parallelSettled()` explicitly — no silent `null` standing in for a result.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add wiff -- npx -y @xxxoooxoxo/wiff
```

### Codex

**Platform CLI**
```bash
codex mcp add wiff -- npx -y @xxxoooxoxo/wiff
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "wiff": {
            "command": "npx",
            "args": [
                "-y",
                "@xxxoooxoxo/wiff"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "wiff": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@xxxoooxoxo/wiff"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add wiff npx -y @xxxoooxoxo/wiff
```

## When to use it
- fan a file audit out across parallel agents
- resume a run after a daemon crash without re-running finished agents
- keep parallel writes apart with separate git worktrees
- set one model and effort policy for workflow stages
- hold a stage until a condition is met with `/goal`

## Example prompts
- Write `audit.js` that audits the files in `args.files` for auth bugs in parallel
- Run the workflow and show me the run status
- Resume the interrupted run by its id

## Similar
- [voltagent-meta](https://affpapa.org/en/nevibecode/plugins/voltagent-meta.md) — plugin · ★ 26093
- [workflow-builder](https://affpapa.org/en/nevibecode/plugins/workflow-builder.md) — plugin · ★ 28786
- [edict-multi-agent-orchestration](https://affpapa.org/en/nevibecode/skills/edict-multi-agent-orchestration.md) — skill · 1400 installs
- [agent-workflow-designer](https://affpapa.org/en/nevibecode/skills/agent-workflow-designer.md) — skill · 658 installs
- [paperclip-ai-orchestration](https://affpapa.org/en/nevibecode/skills/paperclip-ai-orchestration.md) — skill · 1500 installs
- [agent-orchestration](https://affpapa.org/en/nevibecode/skills/agent-orchestration.md) — skill · 1400 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
