Integrations Overview
Intutic supports 39 AI agent harnesses out of the box. The CLI auto-detects which harnesses are present in your workspace and syncs governance rules to each one.
Supported Harnesses
| Harness | Config File | Detection | Status |
|---|---|---|---|
| Claude Code | CLAUDE.md | File presence | ✅ Stable |
| Cursor | .cursorrules | File presence | ✅ Stable |
| Windsurf | .windsurfrules | File presence | ✅ Stable |
| Aider | .aider.conf.yml | File presence | ✅ Stable |
| Antigravity | .gemini/settings.json | .gemini/ directory | ✅ Stable |
| Codex | .env.intutic | CODEX_HOME env or codex in PATH | ✅ Stable |
| OpenHands | config.toml | File presence | ✅ Stable |
| n8n | .intutic/n8n/governance-workflow.json | n8n instance detection | ✅ Stable |
| Cline | .cline/hooks/hooks.json | File presence | ✅ Stable |
| Roo Code | .roorules | File presence | ✅ Stable |
| Continue | .continue/config.json | File presence | ✅ Stable |
| Claude Desktop | claude_desktop_config.json | File presence | ✅ Stable |
| Goose | .agents/plugins/intutic-governance/hooks/hooks.json | File presence | ✅ Stable |
| Open WebUI | .open-webui/intutic-governance-filter.py | File presence | ✅ Stable |
| OpenClaw | .openclaw/openclaw.json | File presence | ✅ Stable |
| Hermes | .hermes/config.yaml | File presence | ✅ Stable |
| Pi | .pi/hooks.json | File presence | ✅ Stable |
| GitHub Copilot | .github/copilot-instructions.md | File presence | ✅ Stable |
| LangGraph | .env.intutic | langgraph/langchain in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable |
| Grok Build | AGENTS.md | .grok/ or AGENTS.md in project, ~/.grok/, or grok in PATH | ✅ Stable |
| Muse Code | AGENTS.md | .muse/ or AGENTS.md in project, ~/.config/muse/, or muse in PATH | ✅ Stable |
| LangChain | .env.intutic | langchain/langchain-core in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable |
| CrewAI | .env.intutic | crewai in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable |
| Google ADK | .env.intutic | google-adk in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable |
| OpenAI Agents SDK | .env.intutic | openai-agents in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable |
| AutoGen | .env.intutic | autogen-agentchat/autogen-core/autogen-ext in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable — InterventionHandler.on_send is invisible to AssistantAgent's own tool calls, only runtime-routed messages (see docs) |
| AG2 | .env.intutic | ag2 in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable |
| Pydantic AI | .env.intutic | pydantic-ai/pydantic-ai-slim in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable |
| smolagents | .env.intutic | smolagents in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable — gates the generated code string pre-execution (CodeAgent's "tool call" IS code execution) |
| Strands Agents | .env.intutic | strands-agents in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable — default (Bedrock) LLM egress is NOT proxy-routable; tool gate unaffected (see docs) |
| Mastra | .env.intutic | @mastra/core in package.json | ✅ Stable — per-call hooks passed to .generate()/.stream() override agent-level hooks (see docs) |
| Vercel AI SDK | .env.intutic | ai (major ≥ 6) plus any @ai-sdk/* package in package.json | ✅ Stable — LLM-egress routing is in-code only, see the integration page |
| eve | .env.intutic | eve in package.json AND an agent/ directory (compound) | 🟡 Preview — pre-1.0 product; default AI Gateway egress not proxy-governable, see the integration page |
| AI SDK Harness | .env.intutic | @ai-sdk/harness, any @ai-sdk/harness-*, or any @ai-sdk/sandbox-* in package.json | ✅ Stable — tools execute server-side in Vercel Sandbox microVMs; built-ins are permissionMode-governed only (defaults to allow-all), see the integration page |
| AI SDK Workflow | .env.intutic | @ai-sdk/workflow in package.json (unscoped workflow alone is not a trigger) | ✅ Stable — denials are FatalError-compatible so the durable runtime aborts instead of retrying them, see the integration page |
| AWS Bedrock AgentCore | none (delegates) | bedrock-agentcore/bedrock-agentcore-starter-toolkit in a Python manifest, bedrock-agentcore/@aws/agentcore in package.json, or .bedrock_agentcore.yaml/agentcore/agentcore.json/aws-targets.json at the workspace root | ✅ Stable — Runtime module only; hosts your own framework-SDK code, so the real tool gate is whichever already-supported framework adapter your code uses, see the integration page |
| dsh | cordis.patch.yml (Cordis plugin) | $DSH_HOME/~/.dsh/, @deepseek-ai/dsh in PATH/package.json | 🟡 Preview — developer preview, breaking changes possible |
| Xirp | none (delegates) | ~/.xirp/$XIRP_HOME, Xirp.app, tmux-parented Claude Code/Codex/Gemini CLI processes | ✅ Stable — macOS only, no gate of its own |
| Agentic Orchestrator | none (delegates) | agentico in PATH, ~/.agentic-orchestrator/config.yaml | ✅ Stable — OpenCode backend has no gate to delegate to (see docs) |
How integration works
intutic initscans your workspace for all supported harness config files- For each detected harness, governance rules (SOPs) are written into the harness-native config format
intutic connectkeeps these files in sync as SOPs change on the control plane (intutic connectneeds an account. Without one,intutic startruns the proxy and every harness config written in step 2 still applies.)- Each harness adapter uses atomic writes (write to temp file, then rename) to prevent corruption
Config format per harness
Harnesses fall into three categories:
Markdown-based (Cursor, Claude Code, Windsurf, GitHub Copilot, Grok Build)
SOP content is written as markdown with a header. Grok Build's file is AGENTS.md rather than a harness-specific filename, but the content and formatter are identical to every other row in this category:
markdown
# Intutic Governance Rules (auto-generated)
# DO NOT EDIT — managed by intutic sync daemon
# Last sync: 2026-06-11T22:24:00Z
> **Proxy URL:** `http://localhost:4000/v1`
## SOP: Code Review Requirements
All code changes must include test coverage...
---
## SOP: Budget Limits
Junior tier limited to $5/day...YAML-based (Aider)
SOP content goes into the extra-instructions field:
yaml
# Intutic Governance Rules (auto-generated)
# DO NOT EDIT — managed by intutic sync daemon
# Last sync: 2026-06-11T22:24:00Z
# Proxy URL: http://localhost:4000/v1
extra-instructions: |
## SOP: Code Review Requirements
All code changes must include test coverage...JSON-based (Antigravity)
SOP content is merged into the customInstructions field of the existing settings:
json
{
"customInstructions": "# Intutic Governance Rules (auto-generated)\n# DO NOT EDIT...",
"existingField": "preserved"
}Env-based (Codex)
Proxy URLs are set as environment variables:
bash
# Source this file: source .env.intutic
ANTHROPIC_BASE_URL=http://localhost:4000/v1
OPENAI_BASE_URL=http://localhost:4000/v1
INTUTIC_PROXY_URL=http://localhost:4000/v1
INTUTIC_SOP_COUNT=5TOML-based (OpenHands)
SOP content goes into an [intutic] section:
toml
# Intutic Governance Rules (auto-generated)
# DO NOT EDIT — managed by intutic sync daemon
[intutic]
proxy_url = "http://localhost:4000/v1"
instructions = """
## SOP: Code Review Requirements
All code changes must include test coverage...
"""Adding support for new harnesses
The harness adapter interface is defined in tools/cli/src/harness/types.ts. Each adapter implements:
detect(workspaceRoot)— returnstrueif the harness is presentwriteConfig(workspaceRoot, sops, proxyUrl)— writes governance configreadCurrentHash(workspaceRoot)— returns SHA-256 hash of current config (for change detection)