https://github.com/startvibecoding/vibecoding
A terminal-based AI coding assistant written in ~10,000 lines of Go, inspired by pi.dev
https://github.com/startvibecoding/vibecoding
anthropic codingplan deepseek glm openai qwen seed vibecoding
Last synced: 9 days ago
JSON representation
A terminal-based AI coding assistant written in ~10,000 lines of Go, inspired by pi.dev
- Host: GitHub
- URL: https://github.com/startvibecoding/vibecoding
- Owner: startvibecoding
- License: mit
- Created: 2026-05-12T09:52:39.000Z (20 days ago)
- Default Branch: main
- Last Pushed: 2026-05-23T01:59:30.000Z (10 days ago)
- Last Synced: 2026-05-23T02:30:47.291Z (10 days ago)
- Topics: anthropic, codingplan, deepseek, glm, openai, qwen, seed, vibecoding
- Language: Go
- Homepage: http://startvibecoding.work/
- Size: 93.9 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
VibeCoding
A terminal-based AI coding assistant written in ~10,000 lines of Go, inspired by pi.dev
## Features
- **Multi-Provider Support**: DeepSeek (default), OpenAI, Anthropic, and any custom provider via OpenAI/Anthropic-compatible APIs
- **SSE Streaming**: Real-time token streaming for fast response delivery
- **Think Mode**: Extended thinking/reasoning support (DeepSeek reasoning)
- **Three Modes**:
- 🗒️ **Plan** — Read-only analysis and planning. Sandboxed, no file writes
- 🔧 **Agent** (default) — Controlled read/write access to the project. Bash requires approval (configurable whitelist). Sandboxed, no network
- 🚀 **YOLO** — Full system access with no restrictions
- **bwrap Sandbox**: Linux sandboxing via [bubblewrap](https://github.com/containers/bubblewrap) for secure execution
- **Session Management**: JSONL-based session files with tree structure, branching, compaction
- **Context Management**: Automatic context window management and token estimation
- **Rich TUI**: Terminal UI built with BubbleTea, with Markdown rendering and code highlighting
- **Cache Hit Rate**: Real-time cache hit percentage display in footer, with per-turn cache statistics
- **ACP Support**: Run as an Agent Client Protocol (ACP) stdio agent for editor integrations and compatible clients, including VS Code, Zed, and JetBrains IDEs such as IntelliJ IDEA/WebStorm via ACP-compatible plugins
- **Safer Approval Handling**: `bashBlacklist` now takes precedence over whitelist entries, including in YOLO mode, and `--print` fails fast when approval would be required
- **Unified Cache Metrics**: TUI and print mode now use the same cache-aware token accounting and cache hit rate semantics
- **Provider Debugging**: `--debug` now enables provider-level request/response diagnostics consistently, including ACP mode
## Quick Start
### Install
**Option 1: npm (Recommended)**
```bash
npm install -g vibecoding-installer
```
**Option 2: One-line Install**
Linux/macOS:
```bash
curl -fsSL https://raw.githubusercontent.com/startvibecoding/vibecoding/main/install.sh | bash
```
Windows (PowerShell):
```powershell
irm https://raw.githubusercontent.com/startvibecoding/vibecoding/main/install.ps1 | iex
```
Or with custom install directory:
```bash
# Linux/macOS
INSTALL_DIR=~/.local/bin curl -fsSL https://raw.githubusercontent.com/startvibecoding/vibecoding/main/install.sh | bash
# Windows
$env:VIBECODING_INSTALL_DIR="C:\Tools\vibecoding"; irm https://raw.githubusercontent.com/startvibecoding/vibecoding/main/install.ps1 | iex
```
**Option 3: Go Install**
```bash
go install github.com/startvibecoding/vibecoding/cmd/vibecoding@latest
```
**Option 4: Build from Source**
```bash
git clone https://github.com/startvibecoding/vibecoding.git
cd vibecoding
make build
```
### Cross-compile
```bash
make build-all # Build for linux/amd64, darwin/amd64, darwin/arm64, windows/amd64
```
### Configure
Set your API key:
```bash
# DeepSeek
export DEEPSEEK_API_KEY=sk-...
```
Or configure directly in `settings.json`:
```json
{
"providers": {
"deepseek-openai": { "apiKey": "sk-..." }
}
}
```
### Run
```bash
# Interactive mode
vibecoding
# With initial prompt
vibecoding "Explain this codebase"
# Non-interactive (print mode)
vibecoding -p "Write a hello world in Go"
# Specify provider and model
vibecoding --provider deepseek-openai --model deepseek-v4-flash
# Change mode
vibecoding --mode plan # Read-only planning
vibecoding --mode agent # Standard (default)
vibecoding --mode yolo # Full access
# Continue most recent session
vibecoding -c
# Disable sandbox
vibecoding --no-sandbox
```
## Configuration
### Settings Files
| Location | Platform | Scope |
|----------|----------|-------|
| `~/.vibecoding/settings.json` | Linux/macOS | Global (all projects) |
| `%APPDATA%\vibecoding\settings.json` | Windows | Global (all projects) |
| `.vibe/settings.json` | All | Project (overrides global) |
> **Windows users:** `%APPDATA%` resolves to `C:\Users\\AppData\Roaming`.
### Example Settings
```json
{
"defaultProvider": "deepseek-openai",
"defaultModel": "deepseek-v4-flash",
"defaultThinkingLevel": "medium",
"defaultMode": "agent",
"maxContextTokens": 1000000,
"maxOutputTokens": 384000,
"compaction": {
"enabled": true,
"reserveTokens": 16384,
"keepRecentTokens": 20000
},
"sandbox": {
"enabled": true,
"level": "standard",
"allowNetwork": false
},
"contextFiles": {
"enabled": true
},
"retry": {
"enabled": true,
"maxRetries": 3,
"baseDelayMs": 2000
},
"approval": {
"bashWhitelist": ["go ", "make ", "git ", "npm ", "yarn "],
"bashBlacklist": ["rm -rf", "sudo"]
}
}
```
### Environment Variables
| Variable | Description |
|----------|-------------|
| `DEEPSEEK_API_KEY` | DeepSeek API key |
| `VIBECODING_DIR` | Override config directory |
| `VIBECODING_PROVIDER` | Override default provider |
| `VIBECODING_MODEL` | Override default model |
| `VIBECODING_MODE` | Override default mode |
| `VIBECODING_THINKING` | Override default thinking level |
| `VIBECODING_USER_AGENT` | Custom User-Agent string |
## Sandbox Security
VibeCoding uses [bubblewrap](https://github.com/containers/bubblewrap) for Linux sandboxing.
| Mode | File System | Network | bwrap |
|------|------------|---------|-------|
| **Plan** (strict) | Project read-only | ✗ | ✓ |
| **Agent** (standard) | Project read-write | ✗ | ✓ |
| **YOLO** (none) | Full access | ✓ | ✗ |
### Installing bwrap
```bash
# Debian/Ubuntu
sudo apt install bubblewrap
# Fedora
sudo dnf install bubblewrap
# Arch
sudo pacman -S bubblewrap
```
## CLI Reference
```
vibecoding [flags] [message...]
Aliases: vc
Flags:
-p, --provider string Provider (deepseek-openai, deepseek-anthropic, or custom provider name)
-m, --model string Model ID
-M, --mode string Mode (plan, agent, yolo)
-t, --thinking string Thinking level (off, minimal, low, medium, high, xhigh)
-c, --continue Continue most recent session
-r, --resume string Resume session by ID or path
--session string Use specific session file or ID
--sandbox Enable sandbox (bwrap) for secure execution
-P, --print Print response and exit (non-interactive)
--verbose Verbose output
--debug Enable debug logging
-v, --version Show version
-h, --help Show help
```
### Interactive Commands
| Command | Description |
|---------|-------------|
| `/mode [plan\|agent\|yolo]` | Switch mode |
| `/model` | Show current model |
| `/think` | Cycle thinking level |
| `/skills` | List loaded skills |
| `/clear` | Clear conversation |
| `/help` | Show help |
| `/quit` | Exit |
### Keyboard Shortcuts
| Key | Action |
|-----|--------|
| `Ctrl+C` | Abort / Clear input |
| `Ctrl+D` | Quit |
| `Tab` | Cycle thinking level |
| `Ctrl+T` | Toggle thinking display |
## Development
```bash
make build # Build binary
make test # Run tests
make lint # Run linter
make fmt # Format code
make clean # Clean build artifacts
make build-all # Cross-compile for all platforms
make dist # Build distribution packages (.deb, .tar.gz)
```
## Architecture
```
vibecoding/
├── cmd/vibecoding/ # CLI entry point
├── internal/
│ ├── agent/ # Core agent loop
│ ├── config/ # Configuration system
│ ├── context/ # Context management and token estimation
│ ├── contextfiles/ # Context file discovery (AGENTS.md, CLAUDE.md, etc.)
│ ├── platform/ # Cross-platform compatibility utilities
│ ├── provider/ # LLM provider abstraction
│ │ ├── openai/ # OpenAI Chat Completions API
│ │ └── anthropic/ # Anthropic Messages API
│ ├── sandbox/ # Sandbox (bwrap) implementation
│ ├── session/ # Session management (JSONL)
│ ├── skills/ # Skills system
│ ├── tools/ # Tool implementations
│ ├── tui/ # Terminal UI (BubbleTea)
│ └── ua/ # User-Agent string generation
└── pkg/sdk/ # Public SDK interface
```
## License
MIT