Launch
$ cd yourproject && vibe
vibe: 🚀 vibe session starting
vibe: project : yourproject
vibe: path : ~/code/yourproject
vibe: github : you/yourproject
vibe: hooks : tool-call guards + idle bell
vibe: extras : 12 commands (/vs /vss /vsss /wide /learn /budget …) · 5 agents
guard: Firewall verification passed - unable to reach https://example.com as expected
claude: already signed in with your Claude subscription – nothing to re-enter
claude: ready – what shall we build?
First launch
$ cd yourproject && vibe
vibe: No GitHub token found for you/yourproject – opening GitHub: Repository access → Only select repositories → yourproject
vibe: ✓ Token saved – you won't be asked again for this repo.
vibe: Building vibe container image (claude-code=latest)...
claude: next launch of this repo skips both steps – ready in seconds
Rotate the PAT
$ vibe pat
vibe: Repo: you/yourproject
vibe: stored token found — it will be replaced
vibe: https://github.com/settings/personal-access-tokens
vibe: set an expiry on the new token – 90 days is a good default
vibe: ✓ Token saved for you/yourproject. Takes effect on the next vibe launch (no rebuild needed).
Build, adversarially
$ /vs "add CSV export to the monthly report"
planner: spec drafted – 7 acceptance criteria · model plan: builder sonnet, tester haiku, Fable rung not pre-authorised
critic: revise: criterion 4 isn't mechanically testable as written
planner: tightened – spec critic: pass after 2 iterations; spec shown for your approval
builder: three files changed – export sits behind the existing report menu
tester: 14 tests written from the spec alone – the builder's diff stays unseen
tester: 14 checks run – 13 passed, 1 failed on the empty-report case
builder: fixed – an empty report now exports its headers only
tester: 14 checks run – 14 passed · pre-existing suite still green
reviewer: raw test log read, diff checked against out-of-scope – pass; ready for your review
One task, solo
$ /vss
planner: TODO.md read – 7 open items; first bounded one: "CSV export – empty-state copy"
planner: type go to proceed now, anything else redirects – silence for 270s = auto-proceed
builder: two files changed
tester: 9 checks run – 9 passed
vibe: committed – audit trail in .vss/sessions/ · not pushed until you've reviewed
Overnight loop
$ /vsss --sessions 2
vibe: 23:12 iter 1 – report export shipped ✓ committed
vibe: 23:58 iter 2 – flaky date test pinned ✓ committed
vibe: 00:41 a question for you parked to your notes – moving on, not waiting
vibe: 02:15 iter 5 – docs caught up with the code ✓ committed
vibe: 03:05 window exhausted – auto-resume: relaunching claude --continue (window 2 of 2)
vibe: 06:40 optimiser: stop the loop – perfection gate, nothing left adds value
claude: while you slept: 9 commits, 1 question waiting – not pushed; review the session audit, then git push
Try to phone out
$ curl https://sketchy.example
guard: curl: (7) Failed to connect to sketchy.example port 443: No route to host
vibe: outbound is REJECTed unless the destination is allowlisted – GitHub · npm · Anthropic · a few named extras
vibe: and the firewall fails closed – if the allowlist can't be built, nothing gets out
Try to leak a secret
$ git commit -m "wip" # config.js still holds a pasted API key
guard: BLOCK config.js:12 secret-assignment api_key = sk-live-…
vibe: commit stopped – the secret never entered history
guard: WARN fires the same way on private IPs, home paths and email addresses
vibe: git push re-scans the outgoing range for secrets – belt and braces
Ship it
$ git push
guard: outgoing range re-scanned for secrets – the guard only speaks when it finds something
out: To https://github.com/you/yourproject.git
out: a1b2c3d..f4e5d6a main -> main
claude: the CHANGELOG entry rode in the same commit – reviewers can follow the story
vibe: peers beyond GitHub? Radicle's seed node is already on the firewall allowlist
/budget
$ /budget
vibe: month to date – sonnet 41M · opus 12M · haiku 3M tokens (subscription quota)
vibe: fable 0 tokens ≈ $0.00 credits – estimates, not invoices; the console is authoritative
/learn
$ /learn "lead with the literal command"
guard: vibe: modifying the learning library – confirm to proceed
vibe: saved – every future session in every project sees it
/c
$ /c
claude: wrote 214 bytes to .vibe/copy-latest.txt
vibe: the Mac-side watcher pbcopys it within a second – paste it anywhere
/diet · /feast
$ /diet
claude: lean mode on – no subagents, terse replies; the rest looks mechanical, suggest /model sonnet
claude: say /feast when you want the full spread back