The open-source execution control layer for AI agents
Give agents access. Keep control of every action.
Conduit connects AI agents to your tools through one controlled path, where every requested action is checked before it reaches your systems.
The same refund tool can run a routine request automatically and pause a high-value one for approval.
- Claude Code
- Cursor
- Codex
- checks policy
- adds credentials
- records result
- GitHubGraphQL
- LinearMCP
- Postgrescustom
- StripeOpenAPI
- Credentials stay outside the model
- Policy checks every action
- Every outcome is recorded
/ Context efficiency
Your integrations grow. The prompt does not.
The model sees one Conduit tool instead of every connected tool at once. It searches the catalog, then loads only the instructions required for the action it wants to take.
Load one schema when needed, not the entire catalog on every turn.
mergePullRequest()
listWorkflowRuns()
createRelease()
// + 682 more GitHub tools
createRefund()
listDisputes()
capturePayment()
// + 452 more Stripe tools
upsertLead()
runSoqlQuery()
convertOpportunity()
// + 317 more Salesforce tools
queryMetrics()
muteMonitor()
listIncidents()
// + 207 more Datadog tools
createIssue()
moveToCycle()
listProjects()
// + 112 more Linear tools
postMessage()
openModal()
listChannels()
// + 82 more Slack tools
appendBlock()
queryDatabase()
createPage()
// + 72 more Notion tools
query()
explain()
listTables()
// + 52 more Postgres tools// the one tool the model ever loads: execute
Run agent-written code in Conduit's sandbox.
Tools are found, described, and called from
inside the code, one schema at a time:
1. tools.search({ query })
2. tools.describe.tool({ path })
3. tools[path](input)
Nothing else enters the prompt until the
code asks for it.323xless context, every tool still reachable
Estimates vary by schema size and tokenizer. This comparison uses the integrations selected above.
/ How it works
Every call follows the same controlled path.
Conduit checks the request, protects the credential, handles approvals, and records the outcome. The same controls apply across every connected agent.
Approve the action, not the tool.
Risk depends on what an agent is trying to do, not only which tool it selected. Conduit can check the amount, recipient, account, or any other input before the request reaches your system.
Define simple rules in YAML, or use typed TypeScript when a decision depends on application logic.
- tool: stripe.*.refund when: { input.amount: { gte: 5000 } } then: require_approval else: allow- Example policy based on refund amount
- $4.00runs automatically
- $40,000.00waits for approval
- Same tool. Different request. Different decision.
The secret and the sandbox never meet
Agent-written code runs in an isolated QuickJS sandbox and calls a tool by name. Conduit resolves the credential outside that sandbox and attaches it only when sending the request. The agent can use the connection without ever receiving its secret. Not filtered out. Never there.
Access without credential exposure.
Never receives the credential
- The model
- The agent
- Agent-written code
- Sandbox memory
Attaches the credential
- Conduit, host-side, when it constructs the outbound request
Approvals can wait. The work does not start over.
When an action needs approval, Conduit saves the execution at that point. Approve it later, even after a restart, and the work continues without repeating calls that already succeeded.
Completed results are saved and reused. Conduit continues from the first action that has not run.
- stripe.getChargecompleted, result saved
- postgres.querycompleted, result saved
- stripe.refundwaiting for approval
- slack.postMessagehas not run
A paused run is just data.
Know what ran, why it ran, and what happened next.
Conduit records every requested action, the policy decision behind it, what the tool returned, and how long it took. Credentials are never stored in the trace, and sensitive values can be redacted before export.
Debug the run. Audit the decision. Explain the outcome.
$ conduit tools search "refund a charge" found 1 tool stripe.org.main.refund · require-approval ≥ $50 $ conduit trace show run_2f91 run_2f91 0.97s stripe.org.main.getCharge 200 212ms postgres.org.main.query 200 88ms stripe.org.main.refund held: policy over threshold $ conduit approvals list 1 held stripe.refund amount=$240 · policy: over threshold
Connect once. Apply the same controls everywhere.
Bring OpenAPI, GraphQL, MCP, and custom integrations into one catalog. Connected agents and Conduit clients all use the same policies, credential protections, approval flow, and execution history.
Connect
- OpenAPI
- GraphQL
- MCP
- Custom JS
One controlled catalogUse from
- AI agents
- CLI
- Desktop
- SDK
/ Why Conduit
Useful agents need real access.
Agents become useful when they can act, not only answer questions. But access should not mean exposing credentials or granting unlimited permission. Conduit gives every connected agent a controlled path to your systems, with consistent policies, approvals, and records.
Give agents enough access to be useful, with enough control to trust the result.
/ Deployment
Start locally. Expand when you need to.
Every deployment option is built around the same policies, credential boundary, execution model, and trace.
CLI
Available in early accessRun Conduit as a background service from your terminal. Your integrations, credentials, policies, and traces stay on your machine.
Desktop
PlannedManage the same local service through a graphical console.
Cloud
PlannedGive local and cloud-hosted agents a managed Conduit endpoint without operating the gateway yourself.
Self-host
PlannedRun the complete server in one container backed by one SQLite file. No separate database, worker, or proxy required.
Questions
What exactly does Conduit do?
Conduit sits between AI agents and the tools they use. Every requested action passes through it, where policy is checked, credentials are attached outside agent-written code, approvals are handled, and the result is recorded.
Can an agent or model see my credentials?
No. Agent-written code calls a tool by name. Conduit resolves and attaches the credential outside the sandbox when it constructs the outbound request. The credential never enters the model, the agent, the generated code, or sandbox memory. Stored credentials are encrypted at rest.
How does Conduit decide whether an action can run?
Imported API semantics provide a starting point: a GET is not a DELETE, a GraphQL query is not a mutation, an MCP tool that declares itself destructive is taken at its word. You can then add rules that inspect the call's actual arguments, including amounts, recipients, accounts, or any other typed input. Any default can be overridden, because these heuristics are useful, not infallible.
What happens when an action needs approval?
Conduit saves the execution and its completed results. After approval, the run resumes without repeating calls that already succeeded, and paused executions survive a service restart. If an approval expires first, that fact lands in the trace like everything else.
What can I connect?
Conduit supports OpenAPI specifications, GraphQL endpoints, MCP servers, and custom JavaScript integrations. MCP-compatible agents, Claude Code, Cursor, and Codex among them, plus the Conduit CLI and SDK, can all use the same catalog.
Can I run Conduit on my own infrastructure?
Locally, yes. Conduit is MIT-licensed, and the early-access CLI runs on your machine. Dedicated self-hosting is planned, along with a hosted option for teams that do not want to operate the service themselves.
/ get early access
Give agents real access without giving up control.
Conduit is open source and in active development. Get early access to run it with your own tools and help shape the first release.
Product updates and early-access invitations only.