A routine lives in Claude Code on the web: a saved prompt + repositories + connectors, packaged so it can run on a schedule, on a GitHub event, or over HTTP. Ambrose uses the HTTP entry point — you register a routine once, and Ambrose fires it on your behalf, returning a link to the live Claude Code session.

What you need first. A claude.ai account on a Pro, Max, Team, or Enterprise plan with Claude Code on the web enabled, plus a routine you've already created at claude.ai/code/routines.

1 · Get the routine's API trigger token

1
Open your routine for editing at claude.ai/code/routines.
2
Under Select a trigger, click Add another trigger and choose API.
3
Click Generate token. The modal shows the routine URL (it contains a trig_… id) and a bearer token (sk-ant-oat01-…). Copy both now — the token is shown once and can't be retrieved later. The token is scoped to this one routine: it can only trigger it, and grants no read access.

2 · Add the routine to Ambrose

1
Open any Agent or Team and click the Claude Routines tab. Routines are shared across your whole agency, so it doesn't matter which agent/team you add them from — every one can use them.
2
Fill in Add a routine:
  • Name — a friendly label like Nightly Book Report. This is the name you'll use everywhere else, including in Routines.
  • Routine URL or ID — paste the full https://claude.ai/code/routines/trig_… URL or just the bare trig_… id. Ambrose extracts the id either way.
  • API token — the sk-ant-oat01-… token from step 1.
  • Description (optional but recommended) — one line on what the routine does, so the AI picks the right one when you have several.
3
Click Add routine. It appears in the list below. Click Test to fire it immediately — Ambrose opens the resulting Claude Code session in a new tab so you can confirm it started.
Security & isolation. The token is stored encrypted-at-rest and is never shown again and never handed to the AI — agents reference a routine only by its name. Routines are scoped to your agency; no other agency can see or trigger them. Use the enabled toggle to pause a routine without deleting it, or Delete to remove it (and its token) entirely.

3 · Trigger it from chat, an agent, or a team

Once a routine is registered, every agent, team, and the Ambrose chat can fire it. Just ask in plain English and name the routine:

Run the Claude Routine "Nightly Book Report".

You can also pass context for that run, which Claude Code receives alongside the routine's saved prompt:

Run the Claude Routine "Incident Triage" with this alert: SEN-4521 fired in prod, 500s on /checkout.

Behind the scenes Ambrose exposes two tools — list_claude_routines (so the AI can see what's available) and trigger_claude_routine (which starts it). The AI matches the name you typed to a registered routine, fires it, and replies with a link to the live session. It does not wait for the routine to finish.

4 · Run a routine from a Routine

This is the most common use: have a Routine fire a routine on a schedule. In the routine's prompt body, write the same plain-English instruction, using the exact Name you gave the routine in Ambrose, in quotes:

Run the Claude Routine "Nightly Book Report".
Use the exact name, in quotes. The text inside the quotes must match the routine's Name in the Claude Routines tab (case-insensitive). If you renamed the routine, update the routine too.
WhatCronTargetRoutine prompt
Nightly report0 22 * * *Agent: AmbroseRun the Claude Routine "Nightly Book Report".
Weekly repo audit0 6 * * 1Agent: RileyRun the Claude Routine "Repo Security Audit" and post the session link to Slack #eng.
Daily data refresh0 5 * * *Team: OpsRun the Claude Routine "Refresh Dashboards" with today's date as context.

Add the routine the usual way — agent or team detail → Routines tab. See What routines do and Cron syntax.

Troubleshooting

  • "Add failed" / not found — double-check you pasted a valid trig_… id (or the full routine URL) and the token, and that all three required fields (Name, Routine, Token) are filled.
  • Test fails with an auth error — the token may have been rotated. Generating a new token in Claude Code revokes the previous one; paste the new token into the routine (edit it and re-enter the token).
  • The AI says it can't find the routine — the name in your message must match a registered routine's Name. Open the Claude Routines tab to confirm the spelling, or ask the AI to "list Claude routines".
  • Rate limited — routine runs count against your claude.ai plan's daily allowance. Check remaining runs at claude.ai/code/routines.