Give it a harness.
Let it run free.

minder drives Anthropic, OpenAI, Gemini, and Ollama through the same tool-calling loop. Policy hooks sit at five fixed points in that loop — written in mq, a query language with no builtin for file writes, network requests, or process execution. A hook can watch the loop. It cannot become the loop.

the loop, gate by gate

task
before_agent_start
model
on_tool_call
tool runs
on_tool_result
history
on_context — fires before every LLM call, sees the full message history
before_compact — fires before history is truncated under context pressure

Hooks that can't
become exploits.

Most agent harnesses let you hook into the loop with a general-purpose scripting language — which means a hook can do anything the agent can do: write files, call the network, spawn processes. A compromised or buggy hook is just as dangerous as a compromised agent.

minder's hooks are written in mq instead. It has no builtin for any of that. A hook can only look at what's happening and answer allow, block, or override — it structurally cannot cause a side effect of its own.

.agent/hooks/circuit_breaker.mq on_context
# stop the turn once 3 tool calls in a row have failed.
def on_context(messages):
  let failures = agent_consecutive_errors(agent_tool_results(messages))
  if(failures >= 3,
    {"action": "block", "reason": "3 consecutive tool failures -- pausing for a human"},
    {"action": "allow", "value": messages});

no side effects

No file, network, or process builtins in the language itself.

fixed gates

Five interception points, never the loop's driver seat.

sandboxed plugins

WASI tool plugins run under an explicit fuel/capability budget.

Features

01

Multi-provider

Anthropic, OpenAI, Gemini, and Ollama (including local gpt-oss) behind one CLI.

02

Built-in tools

File read/write/edit, bash, git, grep, glob, and web fetch/search.

03

mq-based hooks

Drop .agent/hooks/*.mq into any project, no code changes.

04

WASM tool plugins

Sandboxed WASI plugins under an explicit capability/fuel budget.

05

MCP servers

Opt-in mcp feature spawns configured servers, exposes their tools.

06

Skills

Reusable, discoverable project playbooks the agent can pull in on demand.

07

Live execution display

Colorized diffs and tool traces on stderr; the answer stays clean on stdout.

08

Autonomous loop mode

minder loop TODO.md re-queries a checklist after every turn.

09

Single binary

One minder binary, one task string. No daemon.

Install

# installs the `minder` binary

cargo install minder-cli

minder "..."

export ANTHROPIC_API_KEY=sk-ant-... && minder "summarize what this project does"