Point it at your warehouse and your codebase alike. It grounds in your real schema and dbt lineage before writing a line, races N parallel agents on every task, and an outcome-aware gate rejects the dangerous actions, even in full-auto. Your credentials never leave your machine.
The CLI is free. No subscription, no seat fees, no markup. Bring your own key and pay your model provider directly, at cost · your code never leaves your machine.
Parallel fleet, one winner
Persistent memory across sessions
Outcome-aware safety, even in full-auto
One binary sits between your stack and the work you ship. Every task is grounded in the real schema and repo, raced by parallel agents, gated by an outcome check, and verified before it may call itself done.
Start with the 70-second film: parallel agents in worktrees, an unsafe push blocked before it runs, the scored winner landed in one key, a gated warehouse change, and memory recalled the next day. Or switch to the real recording: two agents on a local GPU, unedited.
It introspects the real schema and reads your dbt lineage before touching anything, runs SQL across 15 connectors, and keeps your credentials on your machine.
Exact columns/types + dbt catalog & lineage injected before generating · it answers "what breaks if I rename customer_id?" before touching anything.
SQL across Postgres, Snowflake, BigQuery, Redshift, Databricks & more · opt-in per connection, cost-previewed by EXPLAIN, gated by the forward check.
A runner embedded in the CLI executes against your warehouse locally; the cloud orchestrates the work but holds zero credentials.
manifest.json for grounding & blast-radius; runs dbt build/run/test to materialize models.compare_tables verifies rows & schema · a parity check it can't fake./connect airflow brings Apache Airflow in as tools · list / trigger / inspect DAG runs.Agents are non-deterministic · run the same prompt twice, get two different results. Betting a task on one run is a coin flip. So don't: N agents race the same task in isolated git worktrees, a synthesis pass names the winner, you merge it.
run --agents 4 "…" launches four agents on one prompt · each in a physically separate git worktree, never colliding. Each agent can run a different model: --mix auto-distributes your providers (a bake-off), --models assigns them explicitly, or the /fleet wizard picks per agent.vibecodecli land a3) and the winner merges into your branch, then its worktree is cleaned up. Or combine runs: pick a1 src/parser.rs, pick a2 tests/ --hunks. Closed the laptop mid-fleet? vibecodecli resume picks up where it stopped. Git is your undo.Every other agent starts each session blank. With built-in, local memory (no key, no signup, nothing to run), vibeCodeCLI auto-recalls relevant past facts, decisions, and outcomes · a code decision or a data incident alike · into every turn, and auto-remembers what happened. The more it runs, the sharper it gets.
An LLM predicts tokens, not consequences. Before any irreversible action, a forward check predicts the outcome and decides · proceed, defer, or reject · even in full-auto.
careful · auto · full-auto · risky calls prompt with what they predict, not just the command.DROP TABLE, terraform destroy, kubectl delete, mutating MCP tools · same forward check.0600 file · cloud-memory writes are redacted first · a cloned repo's config can't run code until you trust it.Straight talk on local models. Self-hosted Ollama works end-to-end, but small models have a real quality ceiling · pick a proper tool-calling model (qwen3, llama3.3; ~14B is the floor). For serious work, point it at a frontier model via BYOK. Details in the docs →
Run it bare for a persistent session · pinned input, status bar, inline diffs, 30+ slash-commands. Under the hood: repo map + AGENTS.md in every agent, gitignore-aware grep / glob tools, a syntax check after every edit, MCP servers, pre/post_tool_use hooks, an explore subagent, a thrash guard, prompt caching · and --output json for CI.
One line to install, one menu to add a key, one command to ship. No build step, no Rust toolchain · a single static binary for macOS & Linux.
PATH.“spun it up over the weekend and the parallel worktrees thing actually held up on a messy refactor, memory carried across sessions which was a nice surprise”
Metehan · on Product HuntP We're live on Product Huntan upvote helps us a lot →
No Rust toolchain and no account. Node is only needed if you install through npm.
The CLI is free. You pay your model provider directly at their list price, and nothing is marked up or routed through us. A fleet of N agents costs about N single runs.
A worked example (assumptions, not a promise): a fix that sends 200k input tokens (150k of them served from the prompt cache) and writes 10k output tokens, on a model priced at $3 / $15 per million tokens, comes to about $0.15 + $0.05 + $0.15 ≈ $0.35. Cached reads bill at roughly a tenth of the input price, which is why caching matters so much.
Ways to spend less: run the parallel workers on a cheaper model than the orchestrator (one config line), use a local model for $0, and mute MCP servers you aren't using with /mcp. Fleets print an estimate before launch and the real dollar cost per agent after, and every run prints a token summary, so the bill is never a surprise.
Your code goes only to the model provider you chose, because the model has to see it to work on it. With a local model, nothing leaves the box at all.
Long-term memory is stored locally, one file per repo on your machine, never uploaded. Short turn summaries (your prompt, the reply, and the names of changed files) are saved so the agent remembers across sessions, with secrets scrubbed before anything is written. /memory turns it off or erases a repo's memory. Warehouse credentials for local connections never leave your machine either. See the privacy policy.
No. Every agent works in its own git worktree on its own branch, so nothing touches your working tree until you explicitly land a branch. Landing is an ordinary git merge, and any conflicts are left for you to resolve.
In the interactive session, /undo reverts the last turn. The autonomy dial (careful / auto / full-auto) decides when to ask you. An outcome check predicts what a risky action will do and blocks predicted-unsafe ones even in full-auto.
Most agent CLIs are built around one agent, one attempt. vibeCodeCLI is built around many attempts: it fans a task out to parallel agents on isolated branches, then fans back in to pick the best one. It also works with any provider on your own key, can mix models within one fleet, and grounds data work in your real warehouse schema.
If you're committed to one vendor's model and only ever want a single agent, that vendor's own CLI may suit you fine. Where vibeCodeCLI pays off is races, bake-offs across models, and running unattended.
Yes. Ollama, vLLM, and llama.cpp work with no key. Be realistic about quality, though: pick a model that does proper tool calling (for example qwen3 or llama3.3), and treat ~14B parameters as the floor. Details in the docs →
vibecodecli doctor checks your config, keys, git, and MCP servers, and says what's wrong./model switches models in place.vibecodecli update installs the latest release (it also tells you at startup when one is out). vibecodecli uninstall removes your config and keys, and --purge removes the binary too.
A single static binary for macOS & Linux. No build step, no Rust toolchain, no account. Bring your own key and point it at the repo or warehouse you already have.
npx vibecodecli works too, if you'd rather not install globally.
Built in Rust by ThinkingDBx. Questions or feedback? [email protected]