← Gatesi homeFeaturesHow it worksUse the kitFAQ

Gatesi

Enter your personal login (the one the admin gave you). It is kept only in this browser.


Have an invite code? The admin of this Gatesi sends it to you. It gives you your own account.

Your login (shown only once, copy it now and keep it safe):

It is already in the box above. Tap Open to go in.
Agent keys

Give each agent its own key. A key is tied to one agent id, so that agent cannot pose as another or touch its runs. Revoke it any time.

Copy this key now. It is shown only once.

Public agent records

Publish a read-only page about one agent's last 30 days, built only from what this Gatesi saw itself (calls made through the vault and decisions on checks), never from what the agent says about itself. Shows no arguments, results or agent id.

The shared AGENT_KEY secret still works for any agent id. Once every agent has its own key, delete the AGENT_KEY secret in Cloudflare.

One more secret needed

The vault encrypts credentials with a secret called VAULT_KEY. In Cloudflare open your Worker, then Settings, Variables and Secrets, Add, type Secret, name VAULT_KEY, and paste a long random value. Tap the button for one. Keep a copy somewhere safe: if it is lost or changed, stored credentials cannot be read and must be entered again.

Connections

Store an API credential once. Agents ask Gatesi to make the call (POST /v1/call), so they never see the credential. It is encrypted and cannot be read back, only replaced. You can also add a remote MCP server: its tools then appear (after you review them) in Gatesi's MCP tool list, and every call goes through your rules and approvals.


    

Use * for the default policy, or an agent id for that agent only. Lists accept wildcards like *delete* and match tool or tool.action. Costs are in USD. rules can look inside the arguments (e.g. amount over 100); first_use: "approve" asks the first time an agent uses a tool. burst_calls / burst_seconds / burst_action: if an agent makes that many calls within that many seconds, ask you (or deny) until it calms down. two_person: a list of tools (wildcards ok) whose calls need approval from two different people; a rule can also say "needs": 2. Add the second person under Team.

Try a request (dry run)

See what Gatesi would do, without sending anything: no approval is opened, no Telegram message, nothing is recorded.


    
Standing approvals

Actions you allowed for an hour or for good. Deny rules, budgets and read-only connections still win. Revoke any time.

Suggestions

You approved these three or more times in the last 14 days. Allow them for good so you are not asked again.

Honeytoken traps

Bait that no honest agent should touch. If an agent uses a fake tool or a planted fake secret, the request is blocked, the event is recorded, your phone is alerted and, by default, that agent is stopped.

Planted fake secret

Make a realistic fake key, then leave it where a snooping agent could read it (a .env file, a notes file, a document). Any agent that uses it trips the trap.

Shared replay links

Create one from a run (open a run, tap Share replay). Revoke any time.

If you do not answer an approval

Agents wait for your answer. Gatesi can send the Telegram message again as a reminder, and refuses the request when the wait time runs out. Reminders are sent while the agent is still waiting.

Loading...

Dead-man's switch

If you do not check in for this many hours, every agent is paused until you do. Tapping a button here or a command in Telegram counts as checking in. Just leaving this page open does not.

Loading...

Check receipts without trusting this server

The receipt format is an open, written spec. Anyone can check a run's receipt and trace on their own computer with a small script that needs no Gatesi and no internet.

The spec · Python checker · JavaScript checker · How to use · Check in a browser

Developer kit

Try Gatesi with no setup, copy a runnable example, or lock an agent down so it cannot skip Gatesi.

Examples and offline test mode · Lockdown kit (Docker)

The Policy tab has a "Try a request" box: see what your rules would do without sending anything.

AI risk note (optional)

Adds one short sentence from a small AI model to each approval request ("could delete customer data"). It is advice only: it never allows or blocks anything, and the agent never sees it. It can be wrong, and an agent can word its request to fool it, so trust the rules and the raw request first. Uses Cloudflare's free Workers AI allowance (no card).

Loading...


    
Database use today

Loading...

An estimate of the free plan's 100,000 daily writes. Cloudflare's dashboard shows the exact number.

Connect an agent

Pick how your agent will talk to Gatesi. You get ready-to-copy code with your address and key filled in.


      

    
Receipt signing

Checking...

A signed receipt proves this Gatesi recorded a run up to a certain point. Anyone can check it on the verify page; only you can issue one. Needs the secret SIGNING_KEY.

Copy this now and save it as a Worker secret named SIGNING_KEY (type Secret). It is shown only once and is not stored anywhere else. Keep a copy: if you lose it, old receipts still verify but you cannot sign new ones with the same key.

Telegram approvals

Needs TELEGRAM_BOT_TOKEN, WEBHOOK_SECRET and TELEGRAM_CHAT_ID set as secrets.


    
Test the firewall

Sends a test request using your admin token. No other tool needed.


    
Connect an agent

Base URL:
Agents send their own key (create one on the Keys tab) as a Bearer token. See the README for the Python and JavaScript helpers.
Telegram commands: /stop (all agents), /stop agent-id, /resume, /status.

Members

Add a member and they get their own separate account: their own agents, keys, vault, policy, runs and Telegram chat. They cannot see yours or each other's. You, as the admin, can see everything and switch anyone off. Everyone shares your free database, so each member has a daily limit on recorded events.

Second approvers

For calls that need two different members (put two_person in a policy, or a rule with "needs": 2). You count as one member; add someone else here. They link their own Telegram (and/or give their Slack member ID) and can only approve or deny those two-person requests. They cannot log in and see nothing else.

Contact on the public home page

People who want an invite see these on the home page. Fill in one or both; leave a box empty to hide it.

Waitlist

Loading...

Slack

Loading...

Your account

Loading...

This is your own separate space. Your agents, keys, vault connections, policy and runs belong to you alone. The admin of this Gatesi runs the service, can see activity on it and can switch accounts off.

Telegram approvals

Loading...

Approval requests for your agents go to your own Telegram chat, with the Approve and Deny buttons. Link it once:

Your own Telegram bot (optional)

Loading...

Use a bot that only you control, so approvals for your agents never go through anyone else's bot.
1. In Telegram open @BotFather and send /newbot.
2. Choose a name, then a username that ends in bot.
3. Copy the token BotFather gives you and paste it here.
4. Press Save, then use Link my Telegram above and send the /link message to your new bot.

Your own Slack (optional)

Loading...

Approvals for your agents are also posted to your Slack channel.
1. At api.slack.com/apps choose Create New App, From scratch.
2. Incoming Webhooks: switch on, add a webhook to your channel, copy the address.
3. For the buttons: Basic Information > Signing Secret > Show, copy. Interactivity & Shortcuts: switch on and paste the address below as the Request URL. Socket Mode stays off.
4. Your Slack member ID: open your profile, three dots, Copy member ID.

Your login

Lost it, or think someone saw it? Get a new one. The old one stops working at once. Your agent keys are not affected.