Quickstart

Quickstart

The zero-step start: let your agent onboard you

Don’t have a TAP account yet? You don’t need to set one up first. Paste this single line to your agent (Claude Code, Cursor, or any agent that can make HTTP calls):

Set yourself up with TAP: https://proxy.tap.human.tech/instructions

The agent reads the instructions, calls POST /onboard/start, and hands you back a signup link. You click it, create your account (email + passkey), and the moment you finish, the agent receives its own API key — it’s already connected by the time you’re back in the terminal. Then add credentials whenever you’re ready (the agent can send you prefilled links for the exact services it needs).

Other ways in

Your agentPath
Claude (web/desktop), ChatGPT, hosted MCP clientsSteps 1–2, then paste one URL — see Connect Claude & ChatGPT. No API key needed.
Already have a TAP accountSteps 1–5 below.

1. Sign up

Go to tap.human.tech and create an account.

2. Add your credentials

Fastest path — import your .env. If your keys already live in a .env file, go to CredentialsImport from .env (also offered as the first step of onboarding): paste the file, TAP recognizes the keys inside (OpenAI, Anthropic, Stripe, GitHub, Slack, AWS, and ~25 others), names each credential, and binds it to its service’s API host. Unrecognized keys get an AI-suggested host binding to verify (the variable name is all that’s analyzed — values never leave the create path). You review the list and pick what to import; everything is stored encrypted. Once your agent talks to TAP, you can delete the raw keys from the .env. Details: Import from .env.

Or add one at a time: in the dashboard, go to Credentials+ Add Credential.

Most services use Standard API Key — give it a name, paste the secret. Common ones:

ServiceWhere to find your key
Mercuryapp.mercury.com/settings/tokens
Stripedashboard.stripe.com/apikeys
AWSconsole.aws.amazon.com/iam → Security credentials
GitHubgithub.com/settings/tokens
Notionnotion.so/my-integrations → New integration → Copy Internal Integration Secret
Slackapi.slack.com/apps → OAuth & Permissions → Bot User OAuth Token

For Google (Gmail, Calendar, Drive, Workspace admin, Google Cloud), the dashboard has a guided browser OAuth flow. X/Twitter uses one credential that can hold both a Bearer Token for search/counts and OAuth 1.0a fields for account actions. Telegram has a dedicated setup wizard — see Credential Setup Guides.

If your agent already has the secret (say it’s sitting in a .env it can read), it doesn’t have to hand you a link at all — it can enroll the credential directly by piping the value from its source, so the value never enters its own context. See enroll or link? for when each path applies.

3. Create an API key

(Skip this and the next step if you’re connecting a hosted agent via Claude & ChatGPT — OAuth authorization provisions the agent for you.)

Go to API Keys+ Create API Key. Give it a name and select which credentials it can access.

Copy the API key — it’s shown only once.

To add colleagues, go to Team → enter their email. See Team Members.

4. Connect your agent

Give your agent these two lines — in its context, memory, or just pasted into the conversation (e.g. in CLAUDE.md or a skill):

TAP API key: <YOUR API KEY>
TAP instructions: https://proxy.tap.human.tech/instructions

The agent fetches that URL, learns the protocol, and discovers your configured services — works with any instruction-following model.

For shell-based agents (Claude Code, Cursor), you can optionally install the tiny tap wrapper so the agent’s TAP calls are a single allowlistable command instead of raw curl:

curl -fsSL https://proxy.tap.human.tech/install/tap | sudo tee /usr/local/bin/tap > /dev/null && sudo chmod +x /usr/local/bin/tap

It reads TAP_API_KEY (and TAP_PROXY_URL to override the default proxy) from the environment and exposes tap forward|services|logs|config. Allowlisting tap * once in your agent’s permission settings covers every TAP call.

5. Try it

Ask your agent: “List my available TAP services.”

Then pick something from the Examples page — copy a prompt, paste it, and watch the approval flow in action.

Approvals work out of the box — no setup needed. Reads go through immediately. New teams start in autonomous mode, so writes also run straight through; switch the team to gated on the Team page and writes pause for your approval. When the agent makes a write, it gets back an approval link to show you right in the conversation, and the same request appears in the dashboard under Approvals. Approve in either place and the request goes through.

Optional: approval notifications

Want approval prompts pushed to you instead? Go to Approvals in the dashboard and add a channel:

  • Dashboard inbox + browser notifications — get a web push notification on that device even with the tab closed
  • Telegram — add @vaulty_tap_bot to a Telegram chat or group, then paste the chat ID into the dashboard
  • Matrix — invite @vaulty:matrix.org to a Matrix room, then paste the room ID into the dashboard

With Telegram or Matrix, TAP sends you a message like:

Agent: my-agent · Credential: slack · Action: POST /chat.postMessage
{"channel": "C123456", "text": "Hello team, the deploy is done"}
✅ Approve   ❌ Deny

Optional: passkey approval. Approve with Face ID, a fingerprint, or a YubiKey instead of tapping in chat. Register passkeys under Security, then enable passkey approval in a credential’s policy. See Policies & Approval.

Add custom policies in Policies & Approval.