This file is for AI agents working in this repository. Keep changes aligned with the current codebase and prefer concise, minimal edits.
- Language: Go
- UI: Bubble Tea + Lipgloss
- CLI: Cobra
- Default working style: terminal-first, tool-driven
- Main purpose: a terminal AI coding assistant with provider abstraction, sessions, tools, sandboxing, context files, and skills
cmd/vibecoding/— CLI entryinternal/agent/— agent loop, events, system promptinternal/config/— settings and defaultsinternal/context/— context window and compactioninternal/contextfiles/—AGENTS.md/CLAUDE.mddiscoveryinternal/provider/— provider abstraction and implementationsinternal/sandbox/— sandbox backendsinternal/session/— JSONL session storageinternal/skills/— skills loadinginternal/tools/— built-in toolsinternal/tui/— terminal UIinternal/acp/— ACP / MCP related integrationinternal/vendored/— embeddedrg/fddocs/— documentation
- Providers stream responses through the provider abstraction.
- The agent loop builds a system prompt, sends messages, handles stream events, executes tools, and continues until completion.
- Tools should stay stateless when possible; shared execution state belongs in registries/managers.
- Context files and skills are first-class prompt inputs.
- Sessions are stored as JSONL with parent/child relationships.
- Read before editing.
- Prefer small, targeted changes.
- Keep behavior consistent with existing patterns.
- Do not introduce broad refactors unless requested.
- Do not add license headers unless the repository already uses them.
- Do not auto-commit. Commit only when the user explicitly asks.
- Return errors; do not panic for normal control flow.
- Pass
context.Contextthrough request/execution paths. - Keep interfaces and structs consistent with nearby code.
- Follow existing naming and file layout before introducing new abstractions.
- Add tests when changing behavior or fixing bugs if there is an obvious test location.
Built-in tools include:
read,write,editbash,jobs,killgrep,find,lsskill_ref
grep and find are backed by embedded rg and fd binaries in internal/vendored/.
plan: read-only toolsagent: file edits allowed;bashusually requires approvalyolo: all tools auto-execute
When changing code, prefer the least risky approach that satisfies the request.
- Put changelog updates only in:
docs/en/changelog.mddocs/zh/changelog.md
- Do not create separate release note files.
- Update README files only for user-visible major changes.
When appropriate, verify with the smallest useful scope first. Examples:
- focused package tests
- targeted grep/find checks
- full test suite only when necessary
Common commands:
make buildmake test
Current version: v0.1.13
Next version: v0.1.14