Integrations Overview
Intutic supports 43 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 | Rule sets go to | Detection | Status |
|---|---|---|---|
| Claude Code | .claude/rules/intutic-governance.md | File presence | ✅ Stable |
| Cursor | .cursor/rules/intutic-governance.mdc | File presence | ✅ Stable |
| Windsurf | .windsurf/rules/intutic-governance.md | File presence | ✅ Stable |
| Aider | .intutic/aider-sops.md, listed under read: in .aider.conf.yml | File presence | ✅ Stable |
| Antigravity and Gemini CLI | GEMINI.md (a marked section) | .gemini/ or .agents/hooks.json, or Antigravity's app-data directories | ✅ Stable |
| Codex | AGENTS.md (section) | CODEX_HOME env or codex in PATH | ✅ Stable |
| OpenHands | .openhands/microagents/intutic-governance.md | .openhands/, or an OpenHands config.toml | ✅ Stable |
| n8n | No instructions file | n8n instance detection | ✅ Stable |
| Cline | .clinerules/intutic-governance.md | File presence | ✅ Stable |
| Roo Code | AGENTS.md (section) | File presence | ✅ Stable |
| Continue | .continue/rules/intutic-governance.md | File presence | ✅ Stable |
| Claude Desktop | No instructions file | File presence | ✅ Stable |
| Goose | .goosehints (section) | File presence | ✅ Stable |
| Open WebUI | No instructions file | Not detected — add open-webui to harnesses in ~/.intutic/config.json | ✅ Stable |
| OpenClaw | AGENTS.md (section) in OpenClaw's agent workspace | File presence | ✅ Stable |
| Hermes | AGENTS.md (section) | File presence | ✅ Stable |
| Pi | AGENTS.md (section) | File presence | ✅ Stable |
| GitHub Copilot | .github/copilot-instructions.md (section) | File presence | ✅ Stable |
| LangGraph | No instructions file (SDK framework) | langgraph/langchain in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable |
| Grok Build | AGENTS.md (section) | .grok/ or AGENTS.md in project, ~/.grok/, or grok in PATH | ✅ Stable |
| Muse Code | AGENTS.md (section) | .muse/ in project, ~/.config/muse/settings.json, or muse in PATH | ✅ Stable |
| OpenCode | AGENTS.md (section) | .opencode/ or opencode.json{,c} in project, $OPENCODE_CONFIG_DIR/~/.config/opencode/, or opencode/opencode2 in PATH | ✅ Stable — the gate is a plugin OpenCode loads into its own process; opencode.json MCP servers are proxy-wrapped |
| LangChain | No instructions file (SDK framework) | langchain/langchain-core in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable |
| CrewAI | No instructions file (SDK framework) | crewai in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable |
| Google ADK | No instructions file (SDK framework) | google-adk in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable |
| OpenAI Agents SDK | No instructions file (SDK framework) | openai-agents in pyproject.toml, requirements.txt, or uv.lock, or any @openai/agents* package in package.json | ✅ Stable |
| AutoGen | No instructions file (SDK framework) | 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 | No instructions file (SDK framework) | ag2 in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable |
| Pydantic AI | No instructions file (SDK framework) | pydantic-ai/pydantic-ai-slim in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable |
| smolagents | No instructions file (SDK framework) | 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 | No instructions file (SDK framework) | strands-agents in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable — default (Bedrock) LLM egress is NOT proxy-routable; tool gate unaffected (see docs) |
| Microsoft Agent Framework | No instructions file (SDK framework) | agent-framework/agent-framework-core (or agent_framework) in pyproject.toml, requirements.txt, or uv.lock | ✅ Stable — Azure OpenAI/Foundry clients are not routed by .env.intutic; tool gate unaffected (see docs) |
| Mastra | No instructions file (SDK framework) | @mastra/core in package.json | ✅ Stable — per-call hooks passed to .generate()/.stream() override agent-level hooks (see docs) |
| Vercel AI SDK | No instructions file (SDK framework) | ai (major ≥ 6) plus any @ai-sdk/* package in package.json | ✅ Stable — LLM-egress routing is in-code only, see the integration page |
| eve | No instructions file (SDK framework) | 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 | No instructions file (SDK framework) | @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 | No instructions file (SDK framework) | @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 |
| TrueForge | No instructions file (SDK framework) | @truefoundry/trueforge-core in package.json; server mode is not detected | 🟡 Preview — pre-1.0 product; server mode is governed by the TrueForge bridge, a service you run, see the integration page |
| AWS Bedrock AgentCore | No instructions file | bedrock-agentcore/bedrock-agentcore-starter-toolkit in a Python manifest, bedrock-agentcore/@aws/agentcore in package.json, or .bedrock_agentcore.yaml/agentcore/agentcore.json/agentcore/aws-targets.json | ✅ 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 | AGENTS.md (section) | settings.yaml, .credentials.yaml or profiles/ in $DSH_HOME/~/.dsh/, or dsh in PATH | 🟡 Preview — developer preview, breaking changes possible |
| Xirp | No instructions file | $XIRP_HOME, ~/.xirp or /Applications/Xirp.app (macOS only) | ✅ Stable — macOS only, no gate of its own |
| Agentic Orchestrator | No instructions file | ~/.agentic-orchestrator/, agentico in PATH, or /Applications/Agentico.app (macOS) | ✅ Stable — all three backends (Claude Code, Codex, OpenCode) delegate to their own gates |
How integration works
intutic initscans your workspace for every supported harness and records the ones it finds in~/.intutic/config.json; it writes no harness filesintutic gates installinstalls each recorded harness's gate and writes the rule sets in.intutic/sops/into the harness-native config format; with--routeit also points the harness at the proxyintutic startruns the proxy, and refreshes the installed gates when a rule set under.intutic/sops/changes- Each harness adapter uses atomic writes (write to temp file, then rename) to prevent corruption
Config format per harness
Rule sets reach a harness in one of three shapes. Where rule sets go names the file for every harness and the product documentation behind it.
A file of Intutic's own (Claude Code, Cursor, Windsurf, Cline, Continue, OpenHands, Aider)
The file sits in a directory the product reads every file of, so rules of your own go in other files beside it. Cursor's and Continue's files open with alwaysApply: true front matter and Windsurf's with trigger: always_on, so the product applies them to every request. Aider reads .intutic/aider-sops.md because connect lists it under read: in .aider.conf.yml by absolute path; Aider has no instructions field of its own.
# Intutic Governance Rules (auto-generated)
# DO NOT EDIT — managed by intutic sync daemon; put rules of your own in another file
> **Proxy URL:** `http://localhost:4000`
## Code Review Requirements
All code changes must include test coverage...
---
## Budget Limits
Junior tier limited to $5/day...A marked section of your own file (AGENTS.md, GEMINI.md, .github/copilot-instructions.md, .goosehints)
These files are often yours. The rule sets go between two markers, after your own text, and nothing outside them is changed. Codex, Muse Code, Grok Build, OpenCode, Pi, Hermes, Roo Code and dsh share one section of the workspace AGENTS.md, holding every rule set aimed at any of them; OpenClaw's section is in the AGENTS.md of its own agent workspace. Antigravity and Gemini CLI use GEMINI.md, GitHub Copilot .github/copilot-instructions.md, and Goose .goosehints.
# Your own instructions stay as they are
<!-- INTUTIC:RULES:START -->
# Intutic Governance Rules (auto-generated)
# DO NOT EDIT this section — managed by intutic sync daemon; edit outside the INTUTIC:RULES markers
> **Proxy URL:** `http://localhost:4000`
## Code Review Requirements
All code changes must include test coverage...
<!-- INTUTIC:RULES:END -->No instructions file (n8n, Claude Desktop, Open WebUI, Xirp, Agentic Orchestrator, AgentCore, SDK frameworks)
The product reads no file of standing instructions, so the rule-set text cannot reach the model. Where the harness has a gate, the gate still enforces the rules compiled from your rule sets. For the SDK frameworks, connect writes .env.intutic with the proxy URLs when a rule set targets the framework:
# Source this file: source .env.intutic
export ANTHROPIC_BASE_URL="http://localhost:4000"
export OPENAI_BASE_URL="http://localhost:4000/v1"
export INTUTIC_PROXY_URL="http://localhost:4000"
export INTUTIC_SOP_COUNT=5Adding 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 presentinstallGate(workspaceRoot, proxyUrl)— optional; installs the harness's tool-call gate, whatever rule sets the workspace haswriteConfig(workspaceRoot, sops, proxyUrl)— writes governance configreadCurrentHash(workspaceRoot)— returns SHA-256 hash of current config (for change detection)