Quickstart
From your terminal to a governed workflow in four steps
Everything below runs against the same policy engine, whether you call it from your terminal, from a workflow, or from an agent Recuriant spawned.
Add Recuriant to your terminal agent
Recuriant is an MCP server. Add it to Claude Code or Cursor with one command — hosted at mcp.recuriant.com over streamable HTTP with OAuth, or run it yourself.
claude mcp add --transport http recuriant https://mcp.recuriant.com
{ "mcpServers": { "recuriant": { "url": "https://mcp.recuriant.com" } } }
pip install recuriant
npx recuriant mcp
Call it from an SDK
SDKs for Python, TypeScript, Go, Java and C# are generated from the same OpenAPI spec, so every language sees the same surface.
from recuriant import Recuriant client = Recuriant(api_key="...") run = client.workflows.run("deploy-hotfix", inputs={"issue_id": "1234"}) print(run.status)
import { Recuriant } from "recuriant"; const client = new Recuriant({ apiKey: process.env.RECURIANT_API_KEY }); const run = await client.workflows.run("deploy-hotfix", { issueId: "1234" }); console.log(run.status);
Write a workflow with an approval gate
The workflow DSL is YAML: on/if/do/dag/verify/finally. Anything reversible and low-impact runs as L1. Anything higher-impact waits on a durable L2 approval.
# routes.d/deploy-hotfix.yaml - name: deploy-hotfix on: issue.labeled if: "{label} == 'hotfix'" do: - agent: { type: code, runtime: claude-helm, role: sre-hotfix } - stripe.refund: { amount: "{incident.credit}" } # reversible but high blast radius ⇒ classified tier: L2 # run pauses here until a human approves the signal verify: on: deploy.healthy within: 30m finally: - matrix.send: "[{_status}] hotfix {issue.id}"
Let an agent extend its own workflow
A running agent can call append_workflow or update_workflows over MCP to add a step to a workflow, or run_agent to spawn another agent — bounded by a depth limit and a narrowing identity.
> the hotfix workflow should also notify #incidents append_workflow( name="deploy-hotfix", step={"matrix.send": "#incidents: hotfix {issue.id} deployed"} ) → depth: 1/4 · scope: workflow:write (narrowed) · logged
Where to go next