m9m
Agent core

An agent runtime, not just a faster n8n.

m9m's performance and n8n compatibility get most of the attention. They shouldn't. The more interesting bet is this: workflow engines are the right substrate for production agent systems. m9m makes that bet explicit.

What "agent core" means here

Three capabilities, all first-class:

  1. Sandboxed CLI agents as a node type. Run Claude Code, Codex, or Aider inside a Linux namespace with CPU, memory, and network limits — the same way you'd run any other node.
  2. MCP integration. m9m exposes 37 workflow-management tools to any LLM that speaks Model Context Protocol. Agents can read runs, edit workflows, re-try jobs, and pull audit logs.
  3. Durability by default. Human-review checkpoints, resumable runs after crashes, and Git-versioned workflow definitions — the infrastructure agents actually need in production.

Sandboxed CLI nodes

A CLI agent node is just a node. It takes a prompt, a sandbox spec, and optional allow-lists. m9m starts a namespaced process, copies inputs in, runs the agent, captures output + artifacts, and tears it down. No host-level escape. No global state.

{
  "id": "claude-review",
  "type": "cli.claude-code",
  "params": {
    "sandbox": true,
    "cpu": 2,
    "memory": "2Gi",
    "network": "restricted",
    "workdir": "/tmp/work",
    "prompt": "Review this diff for security issues:\n{{ $node.fetch_pr.diff }}",
    "timeout": "5m",
    "allowed_commands": ["rg", "cat", "git"]
  }
}

Combine it with a github.pr.get upstream and a github.pr.comment downstream and you have a review pipeline — one JSON file, one binary, no Kubernetes.

MCP — an LLM can manage m9m itself

m9m ships an MCP server that exposes workflow-management tools to any MCP-aware LLM. You can point Claude Code at an m9m instance and have it read run logs, patch broken workflows, and re-run jobs — with every action audited and every edit versioned.

# 1. Start m9m in agent mode with MCP enabled
m9m serve --mcp --port 8080

# 2. An LLM with MCP access sees 37 tools:
#    workflow.list, workflow.get, workflow.create, workflow.update,
#    run.start, run.cancel, run.logs, run.retry, run.artifacts,
#    node.list, credential.list, audit.search, ...

# 3. Ask it to fix a failing workflow:
#    "Find the workflow that failed this morning, read the error,
#     patch the retry policy, and re-run it."
#
#    The agent uses run.logs + workflow.get + workflow.update + run.retry
#    — every action audited, every edit versioned in Git.

Why a workflow engine is the right substrate

The hype cycle says "agents replace pipelines." Reality is agents are pipelines — with probabilistic nodes. The infrastructure that matters looks the same: queues, retries, timeouts, checkpoints, observability, secrets. Workflow engines have solved all of that. What they lacked was first-class sandboxing and an MCP surface. m9m adds both.

Not just LangGraph-in-Go

LangGraph is a library for building agent graphs in Python. m9m is a runtime you deploy. The overlap is narrow: if you're writing an agent, you'll still reach for LangGraph or PydanticAI. m9m is where that agent runs — alongside your cron jobs, your CRM sync, your invoice approvals, and your n8n exports.

Read more: m9m vs LangGraph.

Guides

Shipping an agent product? Neul Labs can help.

We design and ship agent platforms on m9m — sandboxing, MCP integration, human-in-the-loop flows, and observability. Happy to jump on a call.