vibecoding

module
Version: v0.1.31 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 2, 2026 License: MIT

README ΒΆ

VibeCoding

VibeCoding

A terminal-based AI coding assistant written in ~10,000 lines of Go, inspired by pi.dev

Progressive and agile vibe-coding tool. No need to re-deploy Claude Code 、 codex、Claw、Hermes; everything is packed into a single file.

npm downloads GitHub release Go Report Card GoDoc Dependencies

Features

  • Multi-Provider Support: DeepSeek (default), OpenAI, Anthropic, and vendor adapters for compatible OpenAI/Anthropic-format APIs
  • SSE Streaming: Real-time token streaming for fast response delivery
  • Think Mode: Extended thinking/reasoning support (DeepSeek reasoning)
  • Multi-Agent Workflows: Optional --multi-agent mode with delegated sub-agents and cron command entry points
  • A2A Master Mode: Optional --enable-a2a-master mode to manage multiple remote A2A agents via a2a-list.json, registers a2a_dispatch tool for automatic task dispatch
  • 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 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)

npm install -g vibecoding-installer

Option 2: One-line Install

Linux/macOS:

curl -fsSL https://raw.githubusercontent.com/startvibecoding/vibecoding/main/install.sh | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/startvibecoding/vibecoding/main/install.ps1 | iex

Or with custom install directory:

# 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

go install github.com/startvibecoding/vibecoding/cmd/vibecoding@latest

Option 4: Build from Source

git clone https://github.com/startvibecoding/vibecoding.git
cd vibecoding
make build

Cross-compile

make build-all    # Build for linux/amd64, darwin/amd64, darwin/arm64, windows/amd64

Configure

Set your API key:

# DeepSeek
export DEEPSEEK_API_KEY=sk-...

Or configure directly in settings.json:

{
  "providers": {
    "deepseek-openai": {
      "vendor": "deepseek",
      "api": "openai-chat",
      "baseUrl": "https://api.deepseek.com",
      "apiKey": "sk-..."
    }
  }
}

Run

# 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

# Enable sub-agent tools and multi-agent commands
vibecoding --multi-agent

# 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\<Username>\AppData\Roaming. Override the global config directory with VIBECODING_DIR environment variable.

Example Settings

{
  "defaultProvider": "deepseek-openai",
  "defaultModel": "deepseek-v4-flash",
  "defaultThinkingLevel": "medium",
  "defaultMode": "agent",
  "enablePlanTool": true,
  "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"],
    "confirmBeforeWrite": true
  }
}

For the full list of settings including cacheControl, idle compression, sandbox paths, shell configuration, and API key formats, see the Configuration Guide.

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
VIBECODING_DEBUG Enable provider-level request/response debug output

Sandbox Security

VibeCoding uses 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

# 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)
      --multi-agent        Enable multi-agent tools and commands
      --enable-a2a-master   Enable A2A master mode (remote agent dispatch)
  -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

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/
β”‚   β”œβ”€β”€ a2a/               # A2A protocol server and master mode
β”‚   β”œβ”€β”€ acp/               # ACP / MCP integration
β”‚   β”œβ”€β”€ agent/             # Core agent loop
β”‚   β”œβ”€β”€ config/            # Configuration system
β”‚   β”œβ”€β”€ context/           # Context management and token estimation
β”‚   β”œβ”€β”€ contextfiles/      # Context file discovery (AGENTS.md, CLAUDE.md, etc.)
β”‚   β”œβ”€β”€ cron/              # Scheduled tasks for multi-agent workflows
β”‚   β”œβ”€β”€ gateway/           # OpenAI-compatible HTTP gateway
β”‚   β”œβ”€β”€ hermes/            # Messaging gateway (WeChat/Feishu/WebSocket)
β”‚   β”œβ”€β”€ mcp/               # MCP server integration
β”‚   β”œβ”€β”€ memory/            # Persistent memory (memory.md)
β”‚   β”œβ”€β”€ messaging/         # Messaging platform abstraction
β”‚   β”œβ”€β”€ platform/          # Cross-platform compatibility utilities
β”‚   β”œβ”€β”€ provider/          # LLM provider abstraction
β”‚   β”‚   β”œβ”€β”€ factory/       # Shared provider/model construction
β”‚   β”‚   β”œβ”€β”€ openai/        # OpenAI Chat Completions API
β”‚   β”‚   β”œβ”€β”€ anthropic/     # Anthropic Messages API
β”‚   β”‚   └── vendor*.go     # Vendor adapter registry and defaults
β”‚   β”œβ”€β”€ sandbox/           # Sandbox (bwrap) implementation
β”‚   β”œβ”€β”€ session/           # Session management (JSONL)
β”‚   β”œβ”€β”€ skills/            # Skills system
β”‚   β”œβ”€β”€ tools/             # Tool implementations
β”‚   β”œβ”€β”€ tui/               # Terminal UI (BubbleTea)
β”‚   β”œβ”€β”€ ua/                # User-Agent string generation
β”‚   └── vendored/          # Embedded binaries (rg, fd)
└── pkg/sdk/               # Public SDK interface

Running Modes

vibecoding                    # Interactive terminal (TUI)
vibecoding -p "..."           # Non-interactive print mode
vibecoding acp                # ACP stdio agent (editor integration)
vibecoding gateway            # OpenAI-compatible HTTP gateway
vibecoding hermes             # Messaging gateway (WeChat/Feishu/WebSocket)
vibecoding a2a start          # A2A protocol server (standalone)
vibecoding --enable-a2a-master  # A2A master mode (remote agent dispatch)

License

MIT

Directories ΒΆ

Path Synopsis
Package agent defines the public Agent interface and related types.
Package agent defines the public Agent interface and related types.
cmd
vibecoding command
internal
a2a
Package a2a implements the A2A (Agent-to-Agent) protocol server.
Package a2a implements the A2A (Agent-to-Agent) protocol server.
acp
cron
Package cron implements scheduled task management for vibecoding.
Package cron implements scheduled task management for vibecoding.
hermes/hooks
Package hooks implements shell hook scripts for Hermes mode.
Package hooks implements shell hook scripts for Hermes mode.
hermes/webhook
Package webhook implements inbound webhook routing for Hermes mode.
Package webhook implements inbound webhook routing for Hermes mode.
hermes/ws
Package ws implements the WebSocket + HTTP gateway for Hermes mode.
Package ws implements the WebSocket + HTTP gateway for Hermes mode.
mcp
memory
Package memory implements persistent memory storage for Hermes mode.
Package memory implements persistent memory storage for Hermes mode.
messaging
Package messaging defines the messaging platform abstraction for Hermes mode.
Package messaging defines the messaging platform abstraction for Hermes mode.
messaging/feishu
Package feishu implements the Feishu (Lark) messaging platform adapter.
Package feishu implements the Feishu (Lark) messaging platform adapter.
messaging/wechat
Package wechat implements the WeChat iLink Bot messaging platform adapter.
Package wechat implements the WeChat iLink Bot messaging platform adapter.
platform
Package platform provides cross-platform compatibility utilities.
Package platform provides cross-platform compatibility utilities.
tui
ua
Package ua provides User-Agent string generation for vibecoding.
Package ua provides User-Agent string generation for vibecoding.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
Morty Proxy This is a proxified and sanitized view of the page, visit original site.