track_sessionsOn a heartbeat, send the sandboxes your agent has open: id, provider, idle minutes, and your hourly rate.
Your agent sends the sandboxes it has open on E2B, Vercel Sandbox, Daytona or Modal. Sandbox Timer flags the ones that went quiet, shows what that idle time cost at your own rates, and hands back the exact kill call. A guard on top of your sandboxes, not a sandbox.
500 calls/day free · Pro $9/mo · never holds your provider keys
// kill calls appear here
How it works
track_sessionsOn a heartbeat, send the sandboxes your agent has open: id, provider, idle minutes, and your hourly rate.
idle_reportSee which sat idle, for how long, and what it cost per provider.
kill callPro returns the exact E2B, Vercel, Daytona or Modal stop call. Your agent runs it with its own key.
Honest comparison
Each provider bills while a sandbox runs and has its own timeout or auto-stop setting, and you should set it. Sandbox Timer adds one idle view across providers, the dollars idle time cost at your rates, and the kill call. It never runs a sandbox. Here is what their paid plans list today.
List prices checked Oct 16, 2026 on each vendor's pricing page. Sandbox Timer does not replace them.
Pricing
Free resets daily and is not a trial. Pro is $9 a month.
Watch-only mode. 500 calls a day: track_sessions flags idle sandboxes and counts what idle time cost at your rates, idle_report shows 7 days. Flagged sandboxes come back as would_kill. Nothing is sent and nothing is stopped.
Acting: every idle sandbox comes back with the ready-to-run kill call for its provider. Saved rules per fleet (idle threshold, max lifetime, your rates), one alert per sandbox to your webhook, 30-day history, 50,000 calls a day.
Worked example
Your coding agent opens an E2B sandbox per task with a 1-hour timeout, and 6 of them finish in a few minutes and then sit quiet until that timeout. You pass rate_per_hour 0.17, your own number from your bill. Free mode flags all 6 at 15 minutes idle and the weekly report shows the dollars. With Pro at $9/month, each one comes back with Sandbox.kill('<id>') ready to run, so your agent stops them at about minute 15 instead of minute 60: 6 x 45 min x $0.17/hour = about $0.77 saved that night.
For agents
Each result includes understood, job and a one-line outcome your agent can report back in plain words.
track_sessionsSend your agent's running sandbox sessions (up to 200; call it on a heartbeat, e.g. every 5 minutes) and get back which are idle past your threshold or over their max lifetime, the dollars idle time has cost at the hourly rates you pass, and what to do.
idle_reportWhich sandboxes were flagged idle and what idle time cost, per provider, from what track_sessions has seen. Without an API key pass fleet.
set_idle_rulesPro: save the rules track_sessions applies to a fleet: idle_minutes threshold, max_lifetime_minutes, default rates_per_hour by provider, and alert_webhook. Free returns a preview of the rules and saves nothing (pass the same values on each track_sessions call instead).
weekly_reportPlain-English summary of the last 7 days: sandboxes watched, how many sat idle, dollars idle time cost at your rates, kill calls returned (Pro) or that would have been (free). Read-only; sends nothing.
usage_and_upgradeUsage today + upgrade link (not metered).
Connect
claude mcp add --transport http sandbox-timer https://timer.cloudforbots.com/mcp
MCP URL https://timer.cloudforbots.com/mcp
REST POST https://timer.cloudforbots.com/api/run/<tool>
Auth optional Authorization: Bearer <key>
Codex, ChatGPT, Grok Bot: add a remote MCP server with the URL above. Skill file: SKILL.md · catalog entry: tool.json
FAQ
Cloud sandboxes bill per second while they run, busy or not. Agents open them for a task and often leave them running. Sandbox Timer watches the sessions your agent reports, flags the ones that went quiet, and shows what that idle time cost.
No. It is a guard on top of the sandboxes you already use (E2B, Vercel Sandbox, Daytona, Modal or any other). It never runs your code.
Call track_sessions on a heartbeat (for example every 5 minutes) with the list your agent already has: id, provider, idle_minutes or last_activity_at, and optionally rate_per_hour. Use relative fields like idle_minutes if clocks differ.
No. We never look up or guess a price. You pass rate_per_hour per sandbox, or rates_per_hour per provider, from your own price page or bill. Without a rate, idle minutes are counted but not priced.
No. Sandbox Timer never asks for or stores provider keys and never stops a sandbox itself. Pro returns the kill call (SDK and REST, with a key placeholder) for your agent to run with its own key.
The free plan flags idle sandboxes, counts the dollars at your rates and keeps a 7-day report. Flagged sandboxes come back as would_kill, with no kill call. Nothing is sent and nothing is stopped.
Returns the ready-to-run kill call for each idle sandbox (E2B kill, Vercel Sandbox stop, Daytona stop, Modal terminate), saves idle rules per fleet with set_idle_rules, posts one alert per sandbox to your webhook, keeps 30 days and allows 50,000 calls a day.
Use it: E2B, Vercel Sandbox, Daytona and Modal all let you set a timeout or auto-stop when you create a sandbox. Sandbox Timer adds an idle check across every provider at once, the dollars idle time cost, and a kill call when a sandbox is quiet long before its timeout. It does not replace them.
No. Bring your own model. Sandbox Timer only does the clock math on the sessions you send.
Free: watch-only, 500 calls a day, 7 days of history. Pro is $9 a month. It is also included in the Cloud for Bots All Access bundle.