Universal Node Cluster logo — disparate model shapes plugging into a central orchestration core

Any agent. Any provider.
Any model.

Delegate tasks and run adversarial reviews from any AI agent to any provider and model. Any Model Plugin separates the executor harness from the model — pick the best engine for the job and the best model for the task, independently.

v0.3.1 CI passing · node 18 / 20 / 22 Apache-2.0 zero npm dependencies
quick start
# install as a Claude Code plugin
git clone https://github.com/pealmeida/anymodel-plugin.git
cd anymodel-plugin
claude plugin marketplace add .
claude plugin install anymodel@any-model

# set provider keys, verify, delegate your first task
export ZAI_API_KEY="your-key"
/anymodel:setup
/anymodel:delegate --engine direct --model zai/glm-5.2 "explain this architecture"

Features

Built for orchestration, not lock-in

One core, every surface. Pure ESM on the Node standard library — clone and go.

Multi-engine delegation

Run tasks through Codex, Claude, or the built-in direct agent loop — a zero-dependency floor that speaks OpenAI-compatible chat to any registry provider.

🔀

Multi-provider routing

Z.AI GLM, Ollama Cloud, OpenCode Go — or add your own in registry.toml. A built-in Responses→Chat shim with a quirk pipeline normalizes each provider's wire format.

🥊

Adversarial reviews

Challenge your implementation with a different model before shipping — the model that writes the code never grades its own homework.

🕐

Background jobs

Delegate long-running tasks with --background, then poll status, result, or cancel — a detached worker pattern that survives the session.

🔌

Three access surfaces

Claude Code slash commands, a universal CLI for any shell or CI runner, and an MCP server for Cursor, Windsurf, VS Code, and Codex.

📦

Zero dependencies

Pure ESM, Node.js standard library only. Hermetic test suite on the built-in runner — no install step, no supply chain, no network needed to test.

Surfaces

Same core, three ways in

Every surface drives the same companion.mjs CLI, so behavior is identical wherever you call it from.

Claude Code plugin

Eleven slash commands plus a runner subagent, installed from the marketplace.

/anymodel:delegate --engine codex \
  --model zai/glm-5.2 --write \
  "fix the flaky auth test"

/anymodel:review --base main
/anymodel:adversarial-review \
  "audit session handling"

Universal CLI

Any shell, agent, or CI pipeline that can spawn a process.

# delegate
node companion.mjs delegate \
  --engine direct \
  --model ollama/qwen3-coder \
  "add tests for the parser"

# job lifecycle
node companion.mjs status

MCP server

Eight tools in any MCP-compatible host.

{
  "mcpServers": {
    "anymodel": {
      "command": "node",
      "args": ["…/mcp-server.mjs"]
    }
  }
}

Adversarial Review Arena

Consensus is observable

When models debate, opposing signals stay visible: the builder's output flows in cyan, the critic's challenge in amethyst — and the loop only closes when a different model signs off.

>_

Builder agent

delegate --engine direct --model zai/glm-5.2
proposes the implementation

critique ⇄ revision
consensus loop active

Critic agent

adversarial-review --model ollama/qwen3-coder
challenges design choices

Engines × Providers

Two orthogonal knobs

The harness runs on your machine. The model thinks in the cloud. Choose each on its own merits.

EngineRunsSandboxNative reviewRequires
codex local OS-level sandbox Yes (review/start) @openai/codex
claude local Permission modes Schema fallback claude CLI
direct local Tool whitelist Schema fallback Nothing — zero deps

Z.AI cloud

GLM-5.2 · GLM-4.6

env ZAI_API_KEY · quirks: function-tools-only, strict-tool-adjacency

Ollama Cloud cloud

qwen3-coder · gpt-oss · minimax

env OLLAMA_API_KEY · no quirks needed

OpenCode Go cloud

glm · kimi · qwen · deepseek

env OPENCODE_API_KEY · quirks: empty-choices-chunks

anymodel status --all
$ anymodel status --all
✓ job 7f3a2c  completed   delegate   zai/glm-5.2        12s
✓ job 7f39e1  completed   review     ollama/qwen3-coder 41s
! status: connection flaky (zai/glm-5.2) — retrying
# 2 active · 3 recent · bridge listening on 127.0.0.1 only

Commands

The full surface

Eleven slash commands in Claude Code; the same verbs on the CLI and as MCP tools.

delegatesend a task to any engine/model
reviewcode review against local git state
adversarial-reviewchallenge the approach, not the diff
chooseinteractive action → provider → model
delegate-withdelegate with guided model selection
review-withreview with guided model selection
modelsprobe providers for available models
setupcheck engine/provider readiness
statusactive and recent jobs
resultfinished job output
cancelstop an active background job