Schedule, run, and verify OpenCode tasks in the background.
go install github.com/4nkitd/open-routines/cmd/routines@latest
Single Go binary · systemd / launchd / Windows SCM · zero external deps · GPLv3
Every day at 8 AM, check my emails and send me a summary to ntfy.
Your agent schedules the task. Open Routines runs it, then a second, independent agent judges the result.
Everything a background agent needs — nothing it doesn't.
Seven tools — routines_create, list, get, update, delete, trigger, runs. Agents manage their own schedules without leaving the conversation.
Cron expressions like 0 8 * * *, shortcuts like @hourly and @every 30m, or RFC3339 timestamps for one-shot tasks.
Every run is judged by an independent second OpenCode instance. No self-grading — the verifier records a structured JSON verdict.
Installs as systemd, launchd, or Windows SCM service. Survives reboots on macOS, Linux, and Windows.
Local UI on localhost:47600 — create and edit routines, trigger run-now, and browse full run history.
Fire a webhook on run success or failure. Wire it to ntfy, Slack, or anything that accepts an HTTP POST.
Pure Go with embedded bbolt storage. No database server, no runtime, no container — one file and you're done.
A routine is just a prompt with a schedule. At run time, opencode run gets the prompt verbatim — fully self-contained, fresh context.
> Every day at 8 AM, check my emails and send me a summary to ntfy. ⏺ routines_create(name: "morning-email-summary", schedule: "0 8 * * *", once: false, prompt: "Check unread emails, write a concise summary, POST it to https://ntfy.sh/…") ✓ created id=rtn_01hx… next_run=2026-07-03T08:00:00+05:30 ── next morning, 08:00 ────────────────────────── ⏺ run opencode run "Check unread emails…" exit 0 ⏺ verify independent instance reviews output ⏺ verdict {"pass": true, "reason": "summary sent to ntfy"}
Two commands to a persistent, reboot-surviving scheduler.
Install the binary with Go, or grab a prebuilt one from GitHub Releases.
go install github.com/4nkitd/open-routines/cmd/routines@latest
Install the service — registers with systemd, launchd, or Windows SCM and starts the MCP server + dashboard.
routines install
Point your agent at it — add the MCP server to OpenCode and start scheduling. Dashboard lives at localhost:47600.
Prebuilt binaries for macOS, Linux, and Windows on the releases page.