βββ βββββββββββββ ββββββββ βββββββ βββββββ βββββββ ββββββββ
βββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββ ββββββββββββββββββββ βββ βββ ββββββ βββββββββ
ββββ βββββββββββββββββββββ βββ βββ ββββββ βββββββββ
βββββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββ ββββββββββ ββββββββ βββββββ βββββββ βββββββ ββββββββ
Build Software with Discipline β AI coding with guardrails
Vibecode is a CLI tool that brings discipline to AI-assisted development. Instead of chaotic prompt-and-pray coding, Vibecode enforces a structured workflow:
- Define what you want (Intake)
- Design how it works (Blueprint)
- Agree on deliverables (Contract)
- Build with AI assistance
- Review against criteria
- Ship with confidence
# Install globally
npm install -g @nclamvn/vibecode-cli
# Initialize in your project
cd your-project
vibecode init
# Start guided session
vibecode startThat's it! Vibecode will guide you through the entire process.
Traditional approach:
Human β AI β Code β ???
Vibecode approach:
Human β Contract β AI Pipeline β Validated Code β Ship
β β
βββββββββ Feedback Loop ββββββββ
| Principle | Description |
|---|---|
| Contract-First | Lock scope before building. No scope creep. |
| Evidence-Based | Every build produces diff, logs, screenshots |
| Iterative | Build β Test β Fix loop until tests pass |
| Disciplined | State machine prevents skipping steps |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β VIBECODE WORKFLOW β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β PHASE A: PLANNING β
β ββββββββ βββββββββββββ ββββββββββββ ββββββββββ β
β β INIT β β β INTAKE β β β BLUEPRINTβ β βCONTRACTβ β
β ββββββββ βββββββββββββ ββββββββββββ ββββββββββ β
β β β
β βΌ β
β ββββββββββ β
β β LOCK β β
β ββββββββββ β
β β β
β PHASE B: EXECUTION β β
β βΌ β
β ββββββββββ βββββββββ ββββββββββ ββββββββββββ β
β βSHIPPED β β βREVIEW β β β BUILD β β β PLAN β β
β ββββββββββ βββββββββ ββββββββββ ββββββββββββ β
β β β² β
β β β β
β βββββββββββββββ β
β (if failed, rebuild) β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Command | Description | Options |
|---|---|---|
vibecode init |
Initialize workspace | -f, --force -q, --quiet |
vibecode start |
Start guided session | -r, --resume |
vibecode status |
Show current state | --json -v, --verbose |
vibecode lock |
Lock contract, generate spec hash | -d, --dry-run -f, --force |
vibecode doctor |
Check installation health | β |
| Command | Description | Options |
|---|---|---|
vibecode plan |
Create execution plan | β |
vibecode build |
Build with AI | See Build Flags below |
vibecode review |
Review against criteria | --skip-manual |
vibecode snapshot |
Create release | --patch --minor --major |
vibecode config |
Manage settings | --show --provider <name> |
The build command supports multiple modes:
# Manual build
vibecode build --start # Start building
vibecode build --evidence # Capture git diff
vibecode build --complete # Mark as done
# AI-powered build
vibecode build --auto # Single AI build with Claude Code
# Iterative build (recommended)
vibecode build --iterate # Build β Test β Fix loop
vibecode build --iterate --max 5 # Max 5 iterations
vibecode build --iterate --strict # Exit with error if failsβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ITERATIVE BUILD LOOP β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββ β
β β START β β
β ββββββ¬βββββ β
β βΌ β
β βββββββββββ βββββββββββ βββββββββββ β
β β BUILD β βββΆ β TEST β βββΆ β ANALYZE β β
β β(Claude) β β(npm testβ β ERRORS β β
β βββββββββββ β + lint) β ββββββ¬βββββ β
β β² βββββββββββ β β
β β βΌ β
β β βββββββββββ βββββββββββ β
β ββββββββββββGENERATE β βββ β ERRORS? β β
β βFIX PROMPTβ ββββββ¬βββββ β
β βββββββββββ β No β
β βΌ β
β βββββββββββ β
β β DONE! β β
β βββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
mkdir my-calculator && cd my-calculator
vibecode init
vibecode start
# Describe: "CLI calculator with add, subtract, multiply, divide"
vibecode start # Continue to blueprint
vibecode start # Continue to contract
vibecode lock # Lock the contract
vibecode plan # Generate execution plan
vibecode build --iterate # Build until tests pass
vibecode review # Review the build
vibecode snapshot # Create v1.0.0mkdir landing && cd landing
vibecode init
vibecode start
# Describe: "Modern landing page with hero, features, pricing, and contact form"
# ... follow the workflow
vibecode build --iterate --max 3cd my-existing-project
vibecode init
vibecode start
# Describe your feature/fix
vibecode build --auto # Single AI buildAfter vibecode init, your project will have:
your-project/
βββ .vibecode/
β βββ vibecode.yaml # Configuration
β βββ state.json # State machine
β βββ sessions/ # Session data
β β βββ abc123/ # Session ID
β β βββ intake.md
β β βββ blueprint.md
β β βββ contract.md
β β βββ plan.md
β β βββ coder_pack.md
β β βββ evidence/
β β βββ changes.diff
β β βββ build.log
β β βββ screenshots/
β βββ logs/
β βββ audit.log
βββ ... your code
Vibecode enforces a strict state machine to prevent skipping steps:
| State | Description | Next States |
|---|---|---|
INIT |
Fresh workspace | INTAKE_CAPTURED |
INTAKE_CAPTURED |
Description recorded | BLUEPRINT_DRAFTED |
BLUEPRINT_DRAFTED |
Architecture designed | CONTRACT_DRAFTED |
CONTRACT_DRAFTED |
Scope defined | CONTRACT_LOCKED |
CONTRACT_LOCKED |
Ready to build | PLAN_CREATED |
PLAN_CREATED |
Plan generated | BUILD_IN_PROGRESS |
BUILD_IN_PROGRESS |
Building... | BUILD_DONE |
BUILD_DONE |
Build complete | REVIEW_PASSED / REVIEW_FAILED |
REVIEW_PASSED |
QA passed | SHIPPED |
REVIEW_FAILED |
QA failed | BUILD_IN_PROGRESS |
SHIPPED |
Released! | β |
- Node.js >= 18.0.0
- Claude Code CLI (for
--autoand--iteratemodes)npm install -g @anthropic-ai/claude-code
Create a CLAUDE.md file in your project root to provide context to Claude Code:
# Project Rules
- Use TypeScript for all new files
- Follow existing code style
- Write tests for new features
- No console.log in production codeThis will be automatically injected when using --auto or --iterate.
Run vibecode init first.
You're trying to skip a step. Check current state with vibecode status.
Install Claude Code:
npm install -g @anthropic-ai/claude-code- Check
vibecode status --verbose - Look at
.vibecode/sessions/<id>/evidence/build.log - Try
vibecode build --iterate --max 5for more attempts
- npm: https://www.npmjs.com/package/@nclamvn/vibecode-cli
- Issues: https://github.com/nclamvn/vibecode-cli/issues
MIT Β© Lam
Powered by Claude Code
"Contract LOCKED = License to Build"