AI-powered test generation for vibe coders
Ship fast. Ship safe. Let AI write your tests.
Installation • Quick Start • Commands • Features • Contributing
You're a vibe coder. You ship fast, iterate quickly, and don't want to slow down writing tests. But you also don't want to ship bugs.
VibeTap is your safety net.
$ vibetap now
🔍 Analyzing staged changes...
📝 3 test suggestions for src/auth/login.ts
┌─────────────────────────────────────────────────────────────────────┐
│ 1. Unit Test: validatePassword function [HIGH] │
├─────────────────────────────────────────────────────────────────────┤
│ Tests password validation logic including: │
│ • Minimum length requirement │
│ • Special character validation │
│ • Common password rejection │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ 2. Security Test: SQL injection prevention [HIGH] │
├─────────────────────────────────────────────────────────────────────┤
│ Tests that user input is properly sanitized before database queries │
└─────────────────────────────────────────────────────────────────────┘
Run 'vibetap apply 1' to add a test, or 'vibetap apply all' for everything.
curl -sSL https://vibetap.dev/install.sh | shDownload the latest binary for your platform from GitHub Releases.
| Platform | Architecture | Download |
|---|---|---|
| macOS | Apple Silicon (M1/M2/M3) | vibetap-darwin-arm64 |
| macOS | Intel | vibetap-darwin-x86_64 |
| Linux | x86_64 | vibetap-linux-x86_64 |
| Linux | ARM64 | vibetap-linux-arm64 |
| Windows | x86_64 | vibetap-windows-x86_64.exe |
cargo install vibetap-cliOr build from source:
git clone https://github.com/devtunehq/vibetap-cli.git
cd vibetap-cli
cargo build --release# 1. Authenticate (free tier available)
vibetap auth login
# 2. Stage some code changes
git add src/my-feature.ts
# 3. Get test suggestions
vibetap now
# 4. Apply the ones you like
vibetap apply 1That's it! VibeTap analyzes your changes and suggests tests that match your project's style.
| Command | Description |
|---|---|
vibetap now |
Generate test suggestions for staged changes |
vibetap now --staged |
Alias for vibetap now |
vibetap now --quiet |
Condensed output (for git hooks) |
vibetap watch |
Continuous mode - suggests tests as you code |
vibetap apply <id> |
Apply a test suggestion to your project |
vibetap apply all |
Apply all suggestions |
vibetap revert |
Undo the last applied test |
vibetap run |
Run generated tests |
vibetap hush <file> |
Temporarily suppress suggestions for a file |
vibetap auth login |
Authenticate with VibeTap |
vibetap auth logout |
Log out |
vibetap auth status |
Check authentication status |
vibetap hook install |
Install pre-commit hook |
vibetap hook uninstall |
Remove pre-commit hook |
Never forget to add tests before committing:
vibetap hook installNow every commit will show you test suggestions:
$ git commit -m "Add user auth"
🧪 VibeTap: 2 test suggestions for staged changes
1. Unit test for login flow
2. Security test for password validation
Run 'vibetap apply' to add tests, or '--no-verify' to skip.
VibeTap doesn't just generate generic tests. It:
- Learns your style - Matches your existing test patterns
- Understands context - Knows what functions do and how they're used
- Prioritizes risk - Focuses on security and edge cases first
- Supports frameworks - Vitest, Jest, Pytest, Go testing, and more
Every scan includes security checks:
- OWASP Top 10 vulnerabilities
- Injection attacks (SQL, XSS, command)
- Authentication bypasses
- Sensitive data exposure
- Input validation gaps
| Language | Frameworks |
|---|---|
| TypeScript/JavaScript | Vitest, Jest, Mocha, Playwright |
| Python | Pytest, unittest |
| Go | testing, testify |
| Rust | cargo test |
| Ruby | RSpec, Minitest |
Create .vibetap/config.json in your project:
{
"version": "1.0",
"testRunner": "vitest",
"testDirectory": "tests",
"generation": {
"maxSuggestions": 5,
"includeSecurity": true,
"includeNegativePaths": true
},
"ignore": [
"*.config.ts",
"migrations/**"
]
}Located at ~/.config/vibetap/config.toml:
[api]
key = "vt_..."
[generation]
default_runner = "vitest"┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Your Code │────▶│ VibeTap CLI │────▶│ VibeTap API │
│ (git staged) │ │ (local agent) │ │ (AI engine) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Applied Tests │◀────│ Your Approval │◀────│ Test Suggestions│
│ (in repo) │ │ (vibetap apply)│ │ (prioritized) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- Analyze - VibeTap reads your staged git changes
- Identify - AI identifies what needs testing
- Generate - Tests are created matching your style
- Review - You see suggestions with explanations
- Apply - One command adds tests to your project
- Only git diffs are sent (not full files)
- No code is stored on our servers
- All API calls use TLS encryption
- See our Privacy Policy
We love contributions! VibeTap is open source under the MIT license.
# Clone the repo
git clone https://github.com/devtunehq/vibetap-cli.git
cd vibetap-cli
# Build
cargo build
# Run tests
cargo test
# Run the CLI
cargo run -- nowvibetap-cli/
├── crates/
│ ├── vibetap-cli/ # CLI binary
│ ├── vibetap-core/ # Core logic
│ └── vibetap-git/ # Git integration
├── scripts/
│ └── install.sh # Cross-platform installer
└── Cargo.toml # Workspace config
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing) - Open a Pull Request
- Documentation: vibetap.dev/docs
- Discord: discord.gg/vibetap
- Issues: GitHub Issues
- Twitter: @vibetapdev
MIT License - see LICENSE for details.
Made with ❤️ by DevTune HQ for vibe coders everywhere.