Your agents run 24/7, even when your laptop is closed.
Your hosted Actionist runtime. Agents, channels, schedules, and triggers you put in the cloud run here around the clock, even when your computer is off. The same Headless Runtime engine, two ways to host it.
One engine, two places to run it.
Actionist’s Headless Runtime is the same engine regardless of where it runs. Choose hosted Cloud for zero infrastructure, or your own VPS for full control.
The runtime lifecycle, state by state.
Click Cloud in the left sidebar (route /cloud-runtime) to see your hosted runtime’s current state, then click a state below to read exactly what it means, what the UI shows, and what (if anything) you need to do. The Cloud tab polls every 4 seconds while provisioning is in progress, then stops once the state is terminal; the runtime heartbeats every 30 seconds and is considered offline if no ping arrives within 90 seconds.
RuntimeProvisioningStepper steps through four stages: Provisioning → Starting → Active → Ready. The page polls every 4 seconds. You can leave this page at any time, setup continues in the background.status === ‘active’ and the last heartbeat is within the past 90 seconds.Provisioning → retry. If the state persists, contact support.Reading the details and channels cards.
Once the runtime is ready, two cards appear below the status banner.
Runtime details
status === 'active' and the last heartbeat is within the past 90 seconds.Connected channels
The hosted cloud requires a paid plan.
Upgrade your plan
What moves with an agent.
An agent is not just its instructions. Wherever it runs, it needs its memory, skills, MCP servers, schedules, triggers, and channels to come along. The sequence below shows what that inventory looks like.
Everything the agent has learned and every skill enabled on it stay attached to the agent, not to a machine.
Recurring runs and incoming triggers belong to the agent, so they keep firing wherever it runs.
A connected Telegram bot or Slack presence follows the agent. You do not reconnect it because placement changed.
Deploy the runtime to your own VPS.
Any Linux server with SSH access works. Actionist uploads the runtime bundle via SCP, installs dependencies, writes the environment file, and starts the process.
Open Settings → Headless Runtime
Fill in Connection
Fill in Authentication
Fill in Telegram Gateway
Test the connection
Deploy
“Replace existing paired runtime?” “Your organization already has an active runtime. Deploying here will revoke it. Continue?”Click Replace and deploy to proceed, or Cancel to keep the existing runtime.
Monitor the running runtime
- Check Status: polls the
/healthzhealth endpoint on port 9090. - Logs: fetches the last 50 lines from
runtime.log. - Stop: terminates the remote process.
Three ways to run. Pick the right one.
In builds where container deployment is enabled, you can choose how the runtime handles browser automation. Click a mode to see when to use it.
Actionist provisions and manages the container for you. Your job is reading the status page on the Cloud tab. Schedules, triggers, Telegram, and Slack all fire when your computer is off. Auto-retries on failures. Requires an active paid plan. If your plan does not include cloud, the tab shows an Upgrade button.
One node dist/index.cjs process per server. No container, no browser. Use process mode when your agents do not need web browsing. It is the simpler, lighter-weight option that most teams start with.
Use container mode (the third option) when you need strict isolation or explicit browser RAM control.
Machine identities and pairing codes.
Every runtime authenticates to the Actionist backend using a long-lived machine bearer token (mid_*). The first boot of a VPS runtime exchanges a one-time pairing code for this token and stores it at config/machine-token.json.
ACTIONIST_PAIRING_CODE env var. Runtime exchanges it for a mid_* token.config/machine-token.json locally. Revoke via the Vault panel at any time.mid_a7f2…k9r3 stored at config/machine-token.jsonOpen Machine Identities
Generate a pairing code
Use the code on first boot
ACTIONIST_PAIRING_CODE environment variable on first boot. The runtime exchanges it for a mid_* token and stores it locally.Revoke if needed
Run the runtime on your desktop.
If you want Telegram bot connectivity without a remote server, the Headless Runtime can also run as a local child process. Useful for testing or for machines that stay on.
Select Run Locally
Enter your Telegram Bot Token
Start the runtime
Stop when done
While your laptop was closed.
The VPS runtime keeps a rolling log of everything it handled while you were away. Three things happened overnight: a scheduled digest fired, a webhook trigger came in, and a Telegram message got a reply, all without you.
The runtime does not wait for you to wake up. Schedules fire, triggers respond, channels reply. The lid being closed is not a blocker.
Overnight log · VPS runtime · 3 events handled · 0 errorsTips for a reliable runtime.
'Active' is not the same as 'Ready'
'Active' is not the same as 'Ready'
status === ‘active’ AND the last heartbeat is within 90 seconds. For a self-hosted VPS runtime: if stuck at “Active” for more than a minute, port 9090 is likely blocked inbound (the health endpoint) or outbound HTTP from the VPS to the Actionist API is firewalled. Open port 9090 inbound and confirm outbound HTTP is unrestricted. For a hosted cloud runtime stuck at “Active”, contact support.Always restrict Telegram to known user IDs in production
Always restrict Telegram to known user IDs in production
TELEGRAM_ALLOWED_IDS environment variable). A comma-separated list of Telegram numeric user IDs is sufficient.Test Connection before deploying
Test Connection before deploying
Pairing codes are single-use and shown once
Pairing codes are single-use and shown once
Use Browserbase for RAM-constrained servers
Use Browserbase for RAM-constrained servers
Enable vector memory search
Enable vector memory search
File proxy requires HTTPS in production
File proxy requires HTTPS in production
ACTIONIST_VPS_FILE_PROXY_SECRET on the backend.Revoke compromised machine identities immediately
Revoke compromised machine identities immediately
Schedule failures retry automatically
Schedule failures retry automatically
Leave the provisioning page freely
Leave the provisioning page freely
Defaults and limits.
Your agents shouldn’t need you to be awake.
Upgrade to a paid plan and your hosted runtime provisions automatically. Agents, schedules, and channels run around the clock, without your laptop.
Hosted or self-hosted: the same runtime engine, the same capabilities.
Heartbeats every 30 s · auto-retries on failure · 90 s freshness threshold.