Always-on agents
Your always-on agent can run your growth stack.
AfterLaunch is an MCP server. Any agent that runs on a schedule and can send one header, or sign in over OAuth, can connect to it.
The rows below cover OpenClaw, Hermes Agent, a Claude scheduled task, an agent built on the Claude Agent SDK, Grok Bot and a ChatGPT scheduled task. The chat clients work as before. This page is for the agents nobody is watching.
How the loop runs
- 1
Install once
One config entry: the server URL with a bearer header, or an OAuth sign-in. Paste the standing orders into the agent's instructions file. The agent calls
whoamionce to learn which product it drives. - 2
Every morning
On its own scheduler the agent calls
get_standupand relays the screen to your channel: what shipped and what it moved, what is ready, what is in flight. - 3
You name a move
The agent waits for your word. Only after your yes does it call
accept_move. - 4
It works the queue
The accepted move lands in the queue. The agent reads
list_queue, claims a job withpick_up_joband starts work only when the answer saysclaim_wonis true. It reports each step withreport_job: running, needs_input with one question relayed to you, ready_for_review, shipped with the live URL, or failed. - 5
Every week
It reads
get_visibilityandget_outcomesand relays them as your Monday brief.
Nothing ships without you.
Ship stays a human decision. The standing orders tell the agent never to post, publish, send or pay without a yes in your channel.
No key you create and no OAuth sign-in has permission to publish to your channels through AfterLaunch.
A listing form is filled and left on its review page, and you press submit. When the agent needs you, it asks one question at a time, through needs_input.
Connect, per runtime.
- OpenClaw
- Connect
- One command,
openclaw mcp add, with the URL and the bearer header.openclaw mcp probe afterlaunchlists the tools. - Schedule
- It needs a model account and a channel set up first.
openclaw cron add --name afterlaunch-standup --cron "0 9 * * *" --tz <your zone> --session isolated --channel telegram --to <chat id> --message "Call the afterlaunch get_standup tool and send me the screen verbatim." - Standing orders
AGENTS.mdin the OpenClaw workspace (~/.openclaw/workspace).
- Hermes Agent
- Connect
- A block under
mcp_serversin~/.hermes/config.yaml, with the key in~/.hermes/.env.hermes mcp test afterlaunchlists the tools. - Schedule
- Nothing fires until
hermes cron create "0 9 * * *" "Call the afterlaunch get_standup tool and send me the screen verbatim in a code block." --name afterlaunch-standup --timezone <your zone> --deliver telegramhermes gateway installhas run. - Standing orders
SOUL.md, or anAGENTS.mdin the job's--workdir.
- Claude scheduled tasks
- Connect
- The AfterLaunch connector on your claude.ai account. A task gets your account's connectors by default, so there is no key.
- Schedule
- The task's own schedule.
- Standing orders
- The task's prompt, plus the repository's
CLAUDE.md.
- Claude Agent SDK
- Connect
- An http entry in the
mcpServersoption, with the URL and the bearer header. - Schedule
- Whatever already starts your agent: cron, a queue or a hosted schedule.
- Standing orders
- Your system prompt.
- Grok BotNot verified
- Connect
- Ask your Grok Bot, in a chat, to add a custom MCP server with the URL and the bearer header.
- Schedule
- A Routine, for example "every weekday at 8:00 AM".
- Standing orders
- Its memory and a private skill.
- ChatGPT scheduled tasksNot verified
- Connect
- The AfterLaunch plugin on your account (Plugins, Personal), attached from the composer's + menu.
- Schedule
- A scheduled task, created from a guided conversation on chatgpt.com/scheduled; whether a task can call the plugin is not yet confirmed.
- Standing orders
- The task's own instructions, set in the guided conversation that creates it (plugin use inside a task is not yet confirmed).
- Claude DuetNot verified
- Connect
- Duet inherits the connectors on your claude.ai account. Anthropic has not documented custom connectors for it yet, so there is no guide.
- LovableNot verified
- Connect
- A custom MCP server under Connectors, inside your Lovable project.
- Schedule
- None. Lovable calls the tools while you chat, not on a schedule.
More runtimes that run on a schedule
- GitHub Copilot cloud agentNot verified
- Connect
- A block in the repository's MCP settings, with the key in an Agents secret named
COPILOT_MCP_AFTERLAUNCH_API_KEY. - Schedule
- Repository automations can use the tools; GitHub's MCP page does not say how one is scheduled.
- Replit AgentNot verified
- Connect
- The MCP Servers pane, with the header under Advanced settings.
- Schedule
- A Routine, hourly, daily or weekly; Replit does not say whether a routine calls MCP tools.
- WarpNot verified
- Connect
- A block pasted under Settings, Agents, MCP servers.
- Schedule
oz schedule createwith a cron, and--mcpattaches the server.
- GooseNot verified
- Connect
- An extension in
~/.config/goose/config.yaml, signed in with OAuth. - Schedule
goose schedule addruns a recipe on a cron like the docs'0 0 9 * * *.
A row marked Not verified has not yet been run against the server. OpenClaw and Hermes Agent have: each connected with a key and listed the tools, though no chat turn was run. A Claude scheduled task and an Agent SDK agent each called whoami and get_standup and relayed the standup. The full steps for every row with a guide are on the guide index.
Standing orders.
The standing orders are one markdown block: the loop above, written for the agent. Read them at /agents/always-on.md, or have the agent call get_setup_snippet with mode: "always_on". They go where your runtime reads its instructions, named on each row above.
A key that does not die silently.
A key minted under API access on Connect your AI expires after 90 days unless you choose Never expires. A key from the agent sign-up flow always expires after 90 days. An agent nobody watches would simply stop, so give it a key with Never expires.
The agent can check: whoami returns key_expires_at, and the standing orders tell it to warn you a week before a key runs out.
Try it in one command.
From Claude Code:
claude mcp add afterlaunch --scope user --transport http https://afterlaunch.io/api/mcp --header "Authorization: Bearer YOUR_AFTERLAUNCH_API_KEY"Or let the CLI create the account or take a key, and write the config:
npx afterlaunch connectOAuth clients such as claude.ai and ChatGPT add https://afterlaunch.io/api/mcp as a custom connector and sign in. There is no key to copy.
The organic growth engine for AI search and SEO
AfterLaunch helps you show up everywhere people search.
Free. No card.