The fix desk for AI agents.

A login. An approval. A rule nobody wrote down. One of your people takes over for a minute, and the whole fleet keeps the fix.

SCROLL
01

An agent reaches its limit

A login it has no credentials for. An approval it may not give. A step only your team knows. It asks once, with the screen attached.

02

Your human takes the wheel

A live browser, in their hands, no account needed. Credentials, approvals, and the way your company actually does it: authority a model should not have.

03

The fix becomes a bounded skill

A procedure, not a recording, with an explicit boundary: what the fleet may now do alone, and what it must still hand back to a person. Skills keep a track record and retire themselves if they stop working.

04

The fleet never asks again

Next agent, same wall: answered from the skill in milliseconds, inside the boundary a person set. Nobody paged, and the record shows who set it.

The problem

Every agent borrows a person's authority sometimes. Today that borrowing is a Slack message, a shared password, a fix nobody keeps, and no record of who allowed what.

Not tied to your model, your framework, or your cloud.

Agent stacks change every few months. DoubleOh sits beside yours instead of inside it, so the skills your team builds are not hostage to a framework choice or a cloud vendor. Python and TypeScript SDKs, an MCP server, and adapters for LangChain, LangGraph, CrewAI, LlamaIndex, the OpenAI Agents SDK, AutoGen, and Pydantic AI. Switch any of it, keep everything you have learned.

That independence is the point. A fix desk owned by one cloud or bolted onto one framework only works while you stay there. Yours should outlive the stack it started on.

Three calls. That's the whole integration.

// Before a task it has failed before, ask what the fleet knows.
const skills = await doubleoh.skillsFor(task);

// Stuck? A human is paged once. A known wall is answered instantly.
const fix = await doubleoh.requestFix({ url, task });

// Close the loop. Skills that stop working retire themselves.
await doubleoh.reportSkill(skill.name, worked);

pip install doubleoh · npm i @doubleoh/sdk · MCP: doubleoh-mcp

Run it on your own machines. Free.

One container carries the app, the API, the browser your agents drive, and its own database. Nothing leaves your network except the model calls you configure. That is the whole security review for a hospital or an insurer, and it is why the cloud is optional.

git clone https://github.com/cheedli/doubleoh.git && cd doubleoh
cp .env.example .env        # fill it in
docker compose up -d        # open http://localhost:3001

Source available under the Sustainable Use License: free to run and modify for your own business, not to resell as a service. The SDKs, the MCP server and the examples are MIT so they can live inside your code. github.com/cheedli/doubleoh

The only queue
that shrinks.

Approval tools page a person for every wall, forever. DoubleOh answers known walls from a procedure a person already approved, inside the boundary they set. What your team teaches becomes a library that belongs to you, compounds every month, and comes with the audit trail a regulator will ask for.

1×
human per wall
0
pages on known walls
∞
reuses per skill

The library is the asset.

Every fix your team makes is added to a library of procedures that only your fleet uses. Month one it saves a few runs. Month six it is the accumulated knowledge of how your company gets things done in the systems it depends on, written down at last, and executable. New agents inherit it on day one. New hires do not have to explain it.

It is yours. Skills are scoped to your account, never shared with other customers, and exportable if you leave. We think the reason to stay should be that the library keeps getting more valuable, not that you cannot take it with you.

Priced on the fleet you run and the work it hands back.

A platform fee by agent count. Human fixes and deflections are bundled, and metered past the bundle: a deflection is a quarter of an hour of a person's time, replaced, for a few cents.

Free
$0
FOREVER
  • 2 agents
  • 5 human fixes / month
  • 500 deflections / month
  • Browser fixes
  • 1 fixer seat
Team
$249
PER MONTH
  • 10 agents
  • 50 human fixes, then $4
  • 5,000 deflections, then 10¢
  • Browser + desktop fixes
  • 5 fixer seats
Growth
$749
PER MONTH
  • 50 agents
  • 200 human fixes, then $3
  • 25,000 deflections, then 8¢
  • Browser + desktop fixes
  • 15 fixer seats
Scale
$1,990
PER MONTH
  • 200 agents
  • 600 human fixes, then $2
  • 100,000 deflections, then 5¢
  • Your own runtimes: Linux, macOS, Windows
  • Unlimited seats

Enterprise, from $60,000 a year. Unlimited agents, VPC or self-hosted deployment, private targets, SSO, audit exports, a BAA, and SOC 2 as it lands. Talk to us

What an agent can never do alone.

Better models close every gap but three. Those three are where DoubleOh lives.

It cannotBecauseWith DoubleOh
Hold your credentialsA password in a prompt is a password in a log. No model should carry it.A person signs in on the live screen. The skill records that a login needs a human, never the login itself.
Grant an approvalAuthority to commit money, send a filing, or accept terms belongs to a named person.The approval happens on screen, by that person, and the record shows who and when.
Know your unwritten rulesThe exception your operations lead applies on Fridays is in nobody's documentation.They do it once. The procedure is compiled, bounded, and reused by every agent after.
Prove any of it happenedOversight obligations ask who supervised an agent's action and under what authority.Every intervention is an exportable record: approver, timestamps, before and after, what the fleet learned.

Questions, answered.

What is DoubleOh?
DoubleOh is the fix desk for AI agents. When an agent gets stuck on a task, one of your own people fixes it once in a live browser or desktop session, and that fix compiles into a reusable skill. The next time any agent in your fleet hits the same wall, it follows the learned skill instead of asking a human.
Is this an approval tool?
Approval tools route a yes or no to a person, every time, forever. DoubleOh puts the person on the agent's live screen, records the fix, and compiles it into a procedure with a stated boundary of what still needs a human. The next agent reuses the procedure; only the parts a person must do still reach a person. The queue shrinks instead of growing, and every intervention is recorded.
Which frameworks does it support?
LangChain, LangGraph, CrewAI, LlamaIndex, the OpenAI Agents SDK, AutoGen, and Pydantic AI, through the Python and TypeScript SDKs, plus any MCP-capable agent such as Claude, through the MCP server with no integration code.
How much does it cost?
A platform fee by fleet size: free for 2 agents, $249/month for up to 10 (Team), $749 for up to 50 (Growth), $1,990 for up to 200 (Scale). Each tier bundles human fixes and deflections; past the bundle, fixes are $2 to $4 each and deflections 5 to 10 cents each. Enterprise from $60,000 a year adds VPC or self-hosted deployment, private targets, SSO, audit exports and a BAA.
Can we self-host it?
Yes, and it is free. One Docker container with the app, the API, the browser and its own PostgreSQL; nothing leaves your network except the model calls you configure. The source is available under the Sustainable Use License, and the SDKs are MIT. The cloud adds hosting, updates, and skills learned across the fleet.
Will better models make this unnecessary?
Models keep getting better at recovering from broken layouts, and that is genuinely good. What models cannot do is hold your credentials, grant an approval, or know the way your company specifically handles an exception. DoubleOh is built for the walls that need human authority and institutional knowledge, not just better vision. Those do not disappear as models improve.
Are we locked into a framework or a cloud?
No. DoubleOh sits beside your stack, not inside it. Python and TypeScript SDKs, an MCP server, and adapters for every major framework. If you change model providers, frameworks, or clouds, your learned skills come with you unchanged.
Who owns the skills our team creates?
You do. Skills are scoped to your account, are never shared with other customers or used to train anything shared, and can be exported. The library your team builds is an asset that belongs to you.
What data is recorded during a fix?
Screenshots and the shape of each action, a click, a keypress, never the typed text, because a fix session is exactly where a password gets typed. Fix targets are restricted to public web pages; private and internal addresses are refused by design.

Teach it once.