Technical

How Maurice works

In short

Maurice turns a plain-language instruction into a workflow: a sequence of steps described in a versioned file, the Agent Spec. Rule-based steps run as code; an AI model is called only at the steps that need one. Maurice installs from your coding assistant and runs on a computer, on a server, or on Kubernetes on quote.

1. From instruction to workflow

  1. You describe the task, in your assistant or in Maurice's Studio.
  2. Maurice writes the Agent Spec: inputs, steps, outputs, permissions. It is a set of readable files (agent-spec.json, workflows/, miniapps/, tests/), validated by JSON schemas and versionable in Git.
  3. You clarify, test and correct, in plain language, until the result suits you: Maurice updates the specification and its tests on every round. Then you approve. Approval is always human: a coding assistant can prepare and check an Agent Spec, it cannot approve it for you.
  4. Maurice applies and verifies it.
maurice spec check  →  maurice spec plan  →  human approval  →  maurice spec apply  →  maurice spec verify

What the specification guarantees the company

  • An immutable plan: before applying, Maurice produces a plan with its fingerprint and the detail of every change. What is approved is exactly what is applied.
  • Approval by a person distinct from the agent that prepared the specification. In production, no agent or service can approve itself.
  • No silent rollback: an old plan cannot restore a permission that was revoked.
  • Tests shipped with the specification, replayed on every change.
  • A tool that outlives its author: the specification and its tests stay in the company, versioned.

2. Workflow steps

StepWhat it doesCalls a model?
code_executionRuns code: rules, calculations, checksNo
tool_callCalls a tool: an MCP server, an integrationNo
workflow_callCalls another published workflowDepends on that workflow
decisionPicks a branch from a bounded set
questionAsks a judgement model a closed question (choice, score, yes/no)Yes
llm_callAsks a model for text or structured outputYes

A protected step (require_approval) waits for a person's decision before it runs.

This is what makes AI compiled: in the published measurement on 1,000 order checks, nine rules out of ten ran as code_execution, and only one step kept a model call. Read the measurement

3. Execution

  • Code runs in a sandbox (Deno) with explicit permissions: no network access without a per-Agent allowlist of hosts, limits on time (300 s by default), output and memory, a private directory per run.
  • Every run is traced: state, steps, tool calls, model calls, cost.
  • The same run key gives the same run: a repeated call does not redo the work.

4. When it must think every time: agent mode

For an open-ended task, Maurice hands the reasoning to a model on every run, like an AI agent, within the same frame: same permissions, same approvals, same log. The cost is then the cost of the model calls.

5. From your assistant

  • Installation: you paste a text into your coding assistant; it installs Maurice, pairs it with a single-use link valid for 15 minutes, then checks the installation (maurice doctor). Supported assistants: Claude Code, Codex, Cursor, Grok Bot, Hark, or any generic MCP client.
  • The maurice MCP front door: your assistant discovers, gets explanations for and runs the workflows you allow it to use, with three tools: search, explain, execute. Every grant has a scope (one workflow or one application), a duration and a quota, and can be revoked at any time. A step that needs your approval is decided in your own session, never by the assistant.

6. AI models

  • With your keys: Anthropic, OpenAI, Mistral, Google, or a local model (Ollama). Your keys are encrypted at rest.
  • With our credits: over 500 off-the-shelf models (Claude, GPT, Gemini, Mistral, Grok, Llama, Qwen, DeepSeek…), embedding models and an OCR, called through our gateway. See the connectors
  • No automatic switch from one provider to another: a failed call is retried with the same provider, then reported.

7. Connections and channels

What Maurice uses

  • MCP servers: search, memory, documents, browser, SSH… and your own MCP servers. Our MCP servers are open source. github.com/agentmaurice/mcp
  • Integrations: over 800 services over OAuth, connected from the Console.
  • Turnkey services: search, files, memory, documents, OCR, browser, switched on in one click. See the connectors

How people and machines reach Maurice

ChannelWho uses itHow
AI agentsClaude Code, Codex, Cursor, Grok Bot, Hark, any MCP clientThe maurice MCP front door (section 5)
MessagingTelegram, Slack, WhatsApp, Discord, Google Chat, SignalYour teams or your customers write to Maurice in their messaging app
WebYour site, your productAn embeddable real-time chat (SDK)
HTTPSYour applicationsA REST API, with keys limited to what you expose
MQTTMachines, sensors, controllersAn MQTT broker; each key only reaches its own topics
Other MauricesAnother approved instanceSee section 8

What you expose is defined once, in a versioned public surface. Permissions, approvals and the log are the same whatever the channel. See the Swarm page

8. The swarm: Maurice to Maurice

One Maurice instance can hand a request to another: a colleague's Maurice, the team's or the company's server.

  • The recipient chooses who may write to it: it approves each source instance. No discovery of strangers.
  • You authorise every request: Maurice shows you what will be sent and its limits before sending it.
  • Only the request travels: your conversation stays on your instance.
  • A signed answer, shown with where it came from and its real state; the conversation can go on over several turns with the same recipient.
  • No silent replay: a turn whose outcome is unknown is flagged as such and blocks the next one until you decide.

9. Where Maurice runs

ModeForWhat changes
On a computerOne personThe maurice binary; data stays on the computer; the MCP front door only listens locally
On a serverA teamYour server (Docker Compose) or a dedicated machine hosted by us; several users, roles and permissions
Maurice Enterprise (Kubernetes)Demanding organisationsSeveral nodes, high availability, assisted deployment; on quote

10. CLI and API

  • Maurice is the maurice CLI: it can be an instance itself, running your tools, or talk to remote instances (your company's server, a machine we host). It installs, connects an assistant, manages Agent Specs, runs and diagnoses (maurice doctor).
  • REST API and published contracts for the MCP front door.