SDD is all you need
English documentation. 中文版请见:README.zh-cn.md
Local Web UI for Spec‑Driven Development that maximizes the effective use of Codex and other coding agents.
- Spec‑Driven Development workflow (Spec → Task → Coding)
- Local Web UI for everyday workflows (embedded SPA)
- Manage CLI coding agents (Codex / Claude Code / Gemini CLI)
- Manage MCP and third‑party models
- Provider catalog v2 at
~/.codectl/provider.jsonwith JSON Schema - CLI helpers: interactive usage and scriptable integration
- Spec: define specs in
vibe-docs/spec/ - Task: define tasks in
vibe-docs/task/ - Coding: execute implementation via LLMs
- Build and run codectl (starts local Web UI by default):
# Run locally for development
go run . -o # start server and open browser
# Or build a binary
go build -o codectl
./codectl -o # start server and open browsercodectl # Start embedded Web UI server (default)
codectl -a 127.0.0.1:8787 -o # Bind address and open browser
codectl webui -o # Same as above, explicit subcommand
# Spec workflow helpers
codectl spec # Open Spec UI in the Web UI
codectl spec new "<desc>" # Generate a spec draft via Codex into vibe-docs/spec
codectl check [--json] # Validate *.spec.mdx frontmatter under vibe-docs/spec
# Configuration & providers
codectl config # Initialize ~/.codectl (provider/models/mcp) and print path
codectl config -w # Run interactive config wizard
codectl provider sync # Create/normalize ~/.codectl/provider.json (v2)
codectl provider schema # Print JSON Schema for provider.json (v2)
# Utilities
codectl codex [args...] # Shorthand to launch Codex (gpt-5, high reasoning)
codectl version # Print version (numeric only; script-friendly)
codectl update # Self-update (planned; placeholder)Notes:
- The default server binds to
127.0.0.1:8787. Use-ato change. codectl cliremains as a compatibility alias that opens the Web UI.
- 1. Prototype
- 2. Better Spec TUI
- 3. Config Wizard (MCP/Custom Provider)
Default location: ~/.codectl/
provider.json(v2): provider catalog; edit to add providers/models. See schema viacodectl provider schema.models.json: seeded from provider catalog if missing.mcp.json: example generated bycodectl configif missing.
Requirement: Go 1.25+ (latest stable recommended)
# Fetch deps (first run will pull automatically)
go mod download
# Run locally
go run .
# Build binary
go build -o codectlMake targets:
make start– hot reload dev (requiresgo install github.com/air-verse/air@latest)make format–go fmt ./...make lint–golangci-lint runor fallbackgo vet ./...make test– writes coverage tocoverage.outmake docker-test– run tests in Docker (e.g.,GO_TEST_FLAGS='-v -run TestLoad')
Contributions welcome: please consider updating specs in vibe-docs/spec/ first, then submit implementation + docs.
codectl helps you install, check, and configure third‑party tools; it does not provide model inference itself. The capabilities, stability, and terms of third‑party CLIs/MCPs are governed by their respective providers—review and follow their usage policies as needed.
- Do not commit secrets. Respect
OPENAI_API_KEY,ANTHROPIC_API_KEY,GOOGLE_API_KEY, and proxy env vars. - The app runs locally; review provider terms before use.
MIT License. See LICENSE.
