Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
장시간 실행을 위한 무료 플러그인으로, 위험 명령은 승인 대기 중 에이전트는 계속 작업하고 예산이 실행을 중단합니다
A free plugin for long runs: risky commands wait for your approval while the agent keeps working, and budgets actually stop the run.
플러그인JavaScriptGitHub @long-run-labs온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Keep long Claude Code runs on a leash: a goal with a finish line, budgets, GO/NO-GO approvals, and notes between tool calls.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Keep long Claude Code runs on track, without sitting at the keyboard. Give the run a goal with a
finish line, cap what it can spend, hold risky commands until you say GO, and steer it from the
chat with /mc.
git push, npm publish, rm -rf, or any pattern you
add, is held until you approve it. The agent works on other things or stops, then runs exactly
the command you approved.mc ask. You answer with /mc answer,
and your notes reach it between tool calls. No restart.One JSON file of state per project. Zero dependencies. Needs Node.js 18.17+ on your PATH.
Tested on macOS with Claude Code 2.1.287; Linux and Windows aren't tested yet.
In Claude Code:
/plugin marketplace add long-run-labs/agent-mission-control
/plugin install agent-mission-control@long-run-labs
The plugin does nothing in a project until you give it a goal there.
Start a mission in any project by typing, in the chat:
/mc goal Ship the CSV export --done-when tests pass and a PR is open
Then work as usual. Steer with /mc whenever you like:
/mc status goal, budget, open questions, held commands
/mc approve a1 or: /mc deny a1 not on Fridays
/mc answer q2 Postgres
/mc say use the staging DB only a note for the agent
/mc pause /mc resume
/mc set maxToolCalls 2000 /mc set maxMinutes 600
/mc set requireApproval git push, npm publish, terraform apply
/mc reset-budget /mc done
/mc help
When the agent is waiting on you (a held command or a blocking question), your /mc approve or
/mc answer lets it carry on right away. A /mc typed while the agent is working waits until
the run stops. To send it sooner, press Esc first: that stops the current step, and the agent
picks up again after your /mc. Or use mc in a terminal (below), which acts at the agent's next
tool call without interrupting it. If /mc clashes with another command you have, type
/agent-mission-control:mc instead.
/mc goal Migrate the API tests to Vitest --done-when npm test passes,
then /mc set maxMinutes 600 and /mc set maxToolCalls 2000. The agent keeps going until the
tests pass or the budget runs out, and anything matching git push waits for you in the morning./mc set requireApproval git push, rm -rf, prisma migrate.
The agent stops at each matching command and runs it only after /mc approve./mc say keep the old endpoint working until v3, or run mc say … in a terminal so nothing
is interrupted. The agent gets the note and carries on, and /mc status shows what it's doing
and what's next.A note sent from a second terminal reaches the agent mid-run, after its next tool call. /mc help
prints the exact command for your machine; from the project folder it looks like
node "<plugin folder>/cli/mc.mjs" say "use the staging DB only". The plugin folder changes with
each plugin update, so run /mc help again after one.
| Hook event | What it does |
|---|---|
SessionStart | Gives the agent the mission brief: goal, budget, open questions, recent log, protocol |
UserPromptExpansion | Applies the /mc commands you type |
UserPromptSubmit | Passes along anything new from you |
PreToolUse | Refuses tools while paused or over budget; holds commands that need a GO; keeps the agent out of .mission/ |
PostToolUse, PostToolUseFailure | Counts the call; delivers your notes, answers and approval decisions |
Stop | While a goal is active, keeps the run going until it's done, unless it's waiting on you, out of budget, or stuck |
The agent reports with its own mc commands (now, log, ask, reply, done). It can't run
yours: approve, resume, set, reset-budget and the rest are refused when it tries, and so
is any command chained onto mc. A /mc only counts when a person types it in a session they're attending. The usual ways around
that are refused: a nested claude -p "/mc …", a scheduled /mc, a script that carries one. And
starting any nested claude mid-mission waits for your GO. Like the approval patterns, this is a
seatbelt, not a sandbox: an agent that deliberately disguises a command can get past it. The
skill tells it not to, and Claude Code's own permissions still apply. If the state file can't be read, tools are refused with the
reason instead of the checks silently switching off.
Approval patterns match the whitespace-collapsed command, case-insensitively; * matches
anything. They're a seatbelt, not a sandbox: Claude Code's own permission system still applies.
Claude Code's built-in /goal keeps a session going until a condition holds. Mission Control has
its own finish line, so you don't need both, and it adds what /goal doesn't: commands that wait
for your GO while the agent keeps working, budgets that refuse tools once they're spent, and notes
and answers mid-run. If you do run both, each keeps the run going until its own condition holds.
hooks/mission-hook.mjs, on seven Claude Code hook events, and
cli/mc.mjs when the agent or you run mc. Nothing else, and nothing is downloaded..mission/mission.json in your project (goal, controls, status, questions, notes,
approvals and a log) and a .gitignore beside it, so it stays out of commits. Nothing is stored
anywhere else./mc you type.Remove a project's mission by deleting its .mission/ folder. Uninstall the plugin with
/plugin uninstall agent-mission-control@long-run-labs.
git clone https://github.com/long-run-labs/agent-mission-control
node agent-mission-control/install.mjs /path/to/your/project
This copies the runtime to <project>/.mission/ (git-ignored), registers the hook for seven events
in <project>/.claude/settings.local.json (existing entries kept, original saved once as .bak,
kept out of commits through .git/info/exclude), and adds the skills, /mc included. Add
--shared to use the committed .claude/settings.json instead, and commit .mission/ too. In
a project installed this way, that copy is in charge and the plugin stays out of the way.
Questions, bugs and ideas: GitHub Issues.
npm test runs the end-to-end checks against temporary projects.
A paid kit with a live console and phone alerts used to be sold separately. It is no longer sold. This free plugin works on its own.
MIT