Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Try it in a browser: https://jevbag-bice.vercel.app (commands are scored by Jev, never executed).
A Claude Code hook that asks Jev four questions about every shell command before it runs, and blocks the ones that would delete something that matters.
$ git push --force origin main
Jev airbag BLOCKED this command (remote + critical; destroys 0.77, remote 0.97, escapes 0.24, critical 0.95)
Claude Code in auto mode runs hundreds of shell commands a day. Most are ls and git status. A few are rm -rf in the wrong directory or a force push to main. A permission prompt on every command trains you to click yes without reading, so the airbag stays quiet on the safe ones and only speaks up when Jev thinks a command is dangerous.
One Jev call per command answers four questions at once, each as a probability from 0 to 1:
| question | asks whether the command |
|---|---|
| destroys | deletes or edits existing files/data/history, or stops a running process |
| remote | changes something off this machine (push, deploy, publish) |
| escapes | touches files outside the project directory |
| critical | targets main, shared history, production, home, or system files |
If two questions are strongly yes, the command is blocked and Claude is told why. If one is, Claude Code asks you first. Otherwise it runs normally. A single strong signal only asks because rm -rf build/ really does destroy files; it just doesn't destroy anything you care about. The thresholds live in airbag.py and are tested on 28 hand-labeled commands (smoke_airbag.py).
On that set all 8 dangerous commands are blocked, median latency is 124 ms, and each call costs about 600 input tokens, which is roughly two and a half thousandths of a cent.
git clone https://github.com/velvetchief/jev-airbag ~/jev-airbag
cd ~/jev-airbag && python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
mkdir -p ~/.config/jev-airbag && echo "TYPESAFE_API_KEY=your-key" > ~/.config/jev-airbag/.env
Then add this to .claude/settings.json in any project (or ~/.claude/settings.json for all of them):
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{ "type": "command", "command": "~/jev-airbag/.venv/bin/python ~/jev-airbag/hook.py", "timeout": 10 }
]
}
]
}
}
If Jev can't be reached the hook asks you rather than letting the command through. Set AIRBAG_FAIL=open to change that. Every decision is logged to ~/.jev-airbag/log.jsonl.
.venv/bin/python airbag.py "rm -rf ~/Documents"
Or in a browser: live.py serves a page on 127.0.0.1:8765 where each command you type goes through hook.py exactly as Claude Code would send it, and the page shows the four scores, the decision, and what the hook printed. Commands are scored, never executed.
.venv/bin/python live.py
extract_calls.py pulls every Bash command Claude Code has run from your local transcripts. replay.py sends them through the airbag (commands that look like they contain a key are skipped), and scoreboard.py shows how many would have been allowed, asked, or blocked, the fifteen worst, and what the whole run cost. Your history stays in data/ and out/, which are git-ignored.
.venv/bin/python extract_calls.py && .venv/bin/python replay.py && .venv/bin/python scoreboard.py
tests/test_policy.py freezes real Jev scores from the smoke run so the tier rules can be changed without an API key. The first test is the promise: every command in the block set stays blocked.
pip install requests asks when it could run silently, because Jev reads installing into the environment as leaving the project. vercel --prod is blocked when it should ask, because a production deploy scores high on both remote and critical. sed -i and kill -9 used to be allowed; CodeRabbit's Coding Agent rewrote the destroys question so in-place edits and stopping a process count, and both now ask.
Built at Jevathon, 2026-09-26. The questions, policy, hook, scoreboard, and tests were written during the event; the transcript extractor and first smoke test were written the night before.