Skip to content
TitanPrivate previewFor platform and security teams

Every agent action, authorized before it runs.

Titan gives each agent a verified identity, decides every call against your policy, brings in a person when it matters, and can stop any of it at once.

Sessions 5 running · acme
  • triage-agentgithub.issue.getActive
  • triage-agentgithub.issue.listActive
  • release-botslack.message.postActive
  • forecast-agentgoogle.sheets.range.readActive
  • cleanup-botgithub.issue.listActive
Every session has a verified identitySuspend, resume or revoke at any time

Try a decision.

Every call is checked against your policy when it’s made. Pick an agent, an action and a time, and watch the rules decide.

Agent
Wants to
When
Policy · payments / developmentfirst match wins
  1. Anything destructive*.deleteDeny
  2. Stay in scopeeach agent’s own toolsDeny
  3. Quiet hourswrites, 20:00–07:00 UTCDeny
  4. Write issuesgithub.issue.createNeeds approval
  5. Finance writesgoogle.sheets.range.writeNeeds approval
  6. Reads*.get · *.list · *.readAllow
  7. Post to alertsslack.message.postAllow
  8. Nothing matched → deny
Needs approvalby “Write issues”
  • Waits for Repository writers · 1 approval
  • A grant valid for 30 seconds, for this exact request
  • Tool Gateway adds the credential and makes the call
  • Written to the Agent Ledger

A person, when it matters.

Approvals go to the right group, can need more than one person, and never let anyone approve their own request.

Approvals· signed in as alex@acme.com
  • github.issue.create59:02
    Open “Rotate signing keys” in acme/payments
    triage-agent started by sam@acme.comRepository writers · 1 approval
  • google.sheets.range.write55:05
    Update the Q3 forecast, rows 12–40
    forecast-agent started by dana@acme.comFinance approvers · 2 approvals
    0 of 2
  • slack.message.post49:21
    Post the incident summary to #customers
    release-bot started by youComms approvers · 1 approval

    You started this request, so someone else has to approve it.

Approver groupsMore than one approvalNo approving your own requestRequests expire

Stop anything, at once.

Stop a session, an agent, a workspace or the whole organization, or cut a connection everywhere. Calls are refused from the very next one.

Stop anything, at any level
  • acmeOrganization
  • paymentsWorkspace
  • triage-agentAgent
  • developer laptopSession
  • CI jobSession
  • release-botAgent
  • cloud workloadSession
  • financeWorkspace
  • forecast-agentAgent
  • cloud workloadSession
Across every agent
  • GitHub · acmeConnection
  • Slack · acmeConnection
  • sheets.googleapis.comDestination
Live calls0 allowed0 refused
  • Calls will appear here as sessions work.

Checked before every decision, every grant, every credential and every call.

A stop can

  • Refuse new decisions and grants
  • Hold back credentials
  • Block the next call, everywhere it applies

A stop can’t

  • Recall data that already left
  • Undo a change another system already made

We’d rather say so than promise it.


A record you can prove.

The Agent Ledger keeps every decision, approval, execution and stop, each entry sealed to the one before. Change anything and verification shows exactly where.

Agent Ledger · acme
  1. #4211Session started14:01:57triage-agent · developer laptop
  2. #4212Decision · allow14:02:04slack.message.post · #eng-alerts
  3. #4213Decision · needs approval14:02:09github.issue.create · acme/payments
  4. #4214Approved14:02:11alex@acme.com · Repository writers
  5. #4215Executed14:02:11github.issue.create · issue #482 created
  6. #4216Session stopped14:02:40by alex@acme.com
Press Verify, or tamper with an entry first with the pencil.

Honest about reach.

Titan tells you how much it can actually control for each session, and never claims more.

Typical runtime
Coding agents and IDEs on a laptop

Calls through Titan are governed. The laptop’s own shell, files and network are not, and Titan says so.

  • Who the agent isenforced
  • Every call it makes through Titanenforced
  • Credentials for those callsenforced
  • Where it can connectnot enforced at this level
  • Files and processes on the machinenot enforced at this level
  • The whole runtime, start to teardownnot enforced at this level

Coming

Sessions that follow you.

Start on your laptop, close the lid, carry on from your phone. Same session, same history, same limits, in sync everywhere.

Coming triage-agent · Fix flaky checkout test
LaptopSession running
  1. Read the failing checkout test
  2. Find the race in the payment retry
  3. Write the fix
  4. Run the test suite
  5. Open a pull request
Your phone

Close the laptop and the session keeps its place.


What’s next.

What Titan does today, and where it’s going.

On the roadmap

Sessions that follow you

Start on your laptop, continue on your phone or in the cloud. One session, in sync everywhere, even when the laptop is closed.


Put Titan in front of your agents.

Agents call Titan through one MCP server, or straight over REST. Press Run to see what comes back when policy wants a person.

curl -X POST "$TITAN/capabilities/github.issue.create:invoke" \  -H "Authorization: Bearer $RUNTIME_TOKEN" \  -H "Idempotency-Key: $KEY" \  -d '{"arguments": {"owner": "acme", "repo": "payments", "title": "Rotate keys"}}'

Also built in.

  • Defender

    Watches sessions and revokes one the moment a rule trips.

  • Session controls

    Suspend, resume or revoke any session, from anywhere.

  • A reviewed catalog

    Agents only see tools someone has reviewed. Destructive ones stay off.

  • Safe retries

    Send the same request twice and it still runs once.

  • Fails closed

    If the record can’t keep up, new writes wait instead of slipping through.

  • Prompt-proof authority

    Nothing an agent reads or writes can create a credential, a connection or a permission.

  • Your own Titan

    Each organization gets a dedicated Titan, run for you by Hexel Studio.

Bring your agents under control.

Titan is in private preview with design partners. Tell us about the agents you run and we’ll set you up.