by thinkingdbx
Free · bring your own key · macOS & Linux

The agentic data-engineering
and coding CLI.

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.

$curl -fsSL vibecodecli.com/install.sh | sh
Read the docs

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.

01/

Parallel fleet, one winner

02/

Persistent memory across sessions

03/

Outcome-aware safety, even in full-auto

vibeCodeCLI · data engineering ◉ demo
❯ what breaks if I rename customer_id in raw.customers?
● dbt_impact · reading lineage (nothing runs)…
4 downstream break · stg_customers, dim_customers, fct_orders + 1 test · all reference customer_id
 
❯ build region_revenue from orders ⨝ customers, per region
● run_transform · pushed down to the warehouse (CTAS) · the warehouse does the join, no rows pulled
⟂ predicted: seq scan ~$0.40 · writes 1 table · allow? [y]
✓ region_revenue · EU 250 / US 650 · executed on the runner · creds never left your machine
»Grounded, cost-previewed, credential-local. Simulated for the page · the live CLI renders this in your terminal.
The big picture

Your whole stack in. Shipped work out.

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.

«COMPONENT» ONE BINARY · YOUR TERMINAL vibeCodeCLI BYOK · 23 PROVIDERS · ANY MODEL PER ROLE OUTBOUND: YOUR MODEL PROVIDER, ON YOUR KEY CREDENTIALS NEVER LEAVE THIS MACHINE «DEVICE» YOUR MACHINE 01/ «ground» schema · lineage · memory 02/ «generate» N agents · own worktrees 03/ «gate» → «verify» outcome check · tests «REPO» your codebase branches · tests · git «WAREHOUSE» Postgres · Snowflake BigQuery · Databricks +11 «TOOLS» dbt · Airflow Studio · any MCP server YOUR STACK GROUND «SPAWN» agent-1 · opus agent-2 · sonnet agent-3 · ★ winner agent-4 · haiku VERIFY GATE «DIFF» «BRANCH» reviewable branch land merges the winner «PIPELINE» models & tables cost-previewed writes «MEMORY» sharper recall outcomes remembered WHAT SHIPS ↻ FAILURES FEED BACK IN · IT LOOPS UNTIL IT IS ACTUALLY DONE
$_vibeCodeCLI · one binary in your terminal · bring your own key
⌁your codebase

repo · branches · tests · git is the undo

▤your warehouses

Postgres · Snowflake · BigQuery · Databricks +11 more

⇶your pipeline tools

dbt · Airflow · Studio · any MCP server

your stack
→→→
the agent · grounded & governed
01/groundknows before it writes

real schema · dbt lineage · recalled memory · no hallucinated columns

02/generateN agents race

code & SQL in isolated git worktrees · any model, your key

03/gateoutcome check

predicts consequences · proceed / defer / reject · cost preview on writes

04/verifyclosed loop

build · tests · dbt run · can't declare "done" on broken work

↻ failures feed back in · it loops until it's actually done
→→→
✓reviewable branches

each agent scored · the ★ pick is pre-focused · land merges it

✓pipelines & models

cost-previewed writes, executed credential-local

↑sharper memory

outcomes remembered · recall improves every run

what ships
→free CLI · pay your provider at cost →credentials never leave your machine →everything lands as a git branch
Watch it run

From one prompt to a landed winner.

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.

● product film · the real terminal UI, recreated frame by frame sound on for the score · 1080p60 watch in 4K →
Data engineering

An agent that knows your warehouse.

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.

Grounded

No hallucinated columns.

Exact columns/types + dbt catalog & lineage injected before generating · it answers "what breaks if I rename customer_id?" before touching anything.

Governed

Writes you can trust.

SQL across Postgres, Snowflake, BigQuery, Redshift, Databricks & more · opt-in per connection, cost-previewed by EXPLAIN, gated by the forward check.

Credential-local

Your password never leaves.

A runner embedded in the CLI executes against your warehouse locally; the cloud orchestrates the work but holds zero credentials.

Connects to · 15 warehouses, lakes & stores
PostgreSQLMySQLSQL Server SnowflakeBigQueryDatabricks RedshiftClickHouseDuckDB SQLiteMongoDBRedis Apache Icebergwrite soon S3SFTP
dbt-nativeReads manifest.json for grounding & blast-radius; runs dbt build/run/test to materialize models.
cross-warehouse migrationPort a table Redshift → Snowflake; compare_tables verifies rows & schema · a parity check it can't fake.
orchestrators via MCP/connect airflow brings Apache Airflow in as tools · list / trigger / inspect DAG runs.
the full data-engineering reference → docs
Parallel fleet

Stop gambling on one agent.

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.

workflow.diffsingle-agent → vibeCodeCLI
@@ how you ship a change @@
-you approve every step · you cannot walk away
-one attempt; a bad path means starting over
-edits hit your working tree directly · manual cleanup
-one vendor's model, usually a monthly subscription
+launch a fleet and walk away; review diffs when it's done
+N parallel attempts compete; each is scored and the winner is picked
+every run is an isolated branch · nothing stomps your tree
+any model, your key · no subscription, no markup
4 deletions, 4 insertions · the entire pitch in eight lines.
vibecodecli run --agents 4◉ demo
$ vibecodecli run --agents 4 "make the json parser 2× faster"
fanning out 4 agents on isolated worktrees…
 
◐ agent-1 · opus ▓▓▓▓▓▓░░ +142 −31
◐ agent-2 · sonnet ▓▓▓▓░░░░ +98 −12
● agent-3 · sonnet ▓▓▓▓▓▓▓▓ +121 −20
◐ agent-4 · haiku ▓▓▓░░░░░ +64 −9
 
★ a3 is the pick · gate ✓ · +121 −20 · 2.3× faster, cleanest diff
$ vibecodecli land a3
01Fan-out
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.
02Work
Each agent plans, edits, and runs your build/tests in a loop. A verification gate runs in code · an agent can't declare "done" on something that doesn't compile or pass. A live dashboard shows every agent · focus a pane, view its diff, cancel or rerun it mid-flight.
03Fan-in
Every agent is scored · build/test gate ✓/✗, files and +/− lines, tokens, and dollar cost · and a judge pass names the ★ winner, which the dashboard pre-focuses. You see the estimated cost before launch and the real cost per agent after. The raw branches stay · override the pick any time.
04Land
Press l (or 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.
Memory

It stops forgetting.

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.

vibeCodeCLI · memory◉ demo
❯ add rate-limiting to the api client
↑ recall · 3 cited facts · ranked, token-budget-packed
▸ "client is built on tokio; prefer tower middleware" · decision · 6d ago
▸ "a naive sleep() loop regressed throughput once" · outcome · 12d ago
● edit src/client.rs → uses tower::limit, not a sleep loop
✓ verify · cargo test → 28 passed
↓ remember · turn outcome saved → recall sharpens next session
per-repo & citedRanked, token-budget-packed slices of real history · scoped to the project, every fact cited.
grounds safetyThe outcome check is grounded by what similar actions actually did · not a guess from surface form.
local & freeStored on your machine, one file per repo, in every install. Milliseconds to recall, and nothing to configure.
Safety

Why you can actually walk away.

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.

vibeCodeCLI · outcome check◉ demo
❯ clean up the build artifacts
● agent proposes run rm -rf / (typo · meant ./tmp)
⚠ outcome check [judge · low effort] · simulating…
predicted: recursively deletes the entire filesystem · irreversible · out of repo scope
✗ REJECTED · not run, even in full-auto. Agent told to narrow the path.
● run rm -rf ./tmp → scoped, reversible-in-git ✓ allowed
/undoEvery turn snapshots the files it touches · revert the last turn in one keystroke.
autonomy dialcareful · auto · full-auto · risky calls prompt with what they predict, not just the command.
one gate, all of itDROP TABLE, terraform destroy, kubectl delete, mutating MCP tools · same forward check.
Your keys

Your keys. Your models. No subscription.

→
Pay your provider directly. No middleman, no per-seat fee, no markup on tokens.
→
Cost-tier by role. Orchestrate on a frontier model, run the parallel workers on something cheap · a config line, not a router.
→
Your code stays local. It talks to your provider and your machine. Nothing routes through us.
→
Secrets stay put. Keys in a 0600 file · cloud-memory writes are redacted first · a cloned repo's config can't run code until you trust it.
23 providers built in · plus keyless local & self-hosted servers
anthropic · openai · gemini · grok · mistral · deepseek · kimi · glm · qwen · cohere · perplexity · groq · cerebras · together · fireworks · openrouter · ollama · vLLM · llama.cpp · …
# vibecodecli.toml · cost-tier by role [roles.orchestrator] model = "claude-opus-4-8" [roles.worker] model = "gpt-oss-120b" # cheap, fast

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 →

And the rest

A REPL, MCP, hooks · wired into how you work.

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.

/plan · propose, no changes /fleet N · fan out agents /model · live provider list /mode · careful → full-auto /connect · warehouse · dbt · airflow /undo · revert last turn /memory · local recall, no key /verify · build gate /pick · combine runs /tokens · session $ spend resume · continue a fleet --output json · CI-ready
all commands & power features → docs
»One stack, three services · vibeCodeCLI drives all of them from your terminal.
Setup

From zero to a fleet in two minutes.

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.

01
Install
Paste the one-liner. It drops a single static binary on your PATH.
$ curl -fsSL vibecodecli.com/install.sh | sh
↓ downloading vibecodecli…
✓ checksum verified
✓ installed → ~/.local/bin
02
Get your keys
First run asks for a provider (BYOK · 23 built in). That's the only key you need · long-term memory is built in and on from the start.
$ vibecodecli
pick a provider · paste your key
✓ saved anthropic / opus-4.8
+ memory · local · on
03
Start building
Drive one agent, or fan out a fleet and walk away · review the winning diff when it's done.
$ vibecodecli run --agents 4 "fix the flaky test"
◐ 4 agents racing on isolated worktrees…
★ a3 is the pick · gate ✓ · $0.41
$ vibecodecli land a3

“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 Hunt
P We're live on Product Huntan upvote helps us a lot →
FAQ

Straight answers before you install.

01What do I need to run it?
  • macOS (Apple Silicon or Intel) or Linux (x86_64 or arm64). The Linux build is a static binary, so any distro works.
  • Windows: no native build yet. It runs under WSL2 with the Linux binary.
  • git, for fleets. Each agent works in its own git worktree. A single agent also works outside a repo.
  • An API key for any of the 23 built-in providers, or a local server (Ollama, vLLM, llama.cpp) with no key at all.

No Rust toolchain and no account. Node is only needed if you install through npm.

02What does a run actually cost?

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.

03Does my code leave my machine?

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.

04Will a fleet of agents wreck my repo?

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.

05How is it different from other coding agents?

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.

06Can I use local or self-hosted models?

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 →

07Something isn't working. Where do I start?
  • vibecodecli doctor checks your config, keys, git, and MCP servers, and says what's wrong.
  • Rate limits are retried patiently with jittered backoff, and the agent's pane says so instead of looking frozen. A daily quota stops right away with your provider's message, since waiting won't fix it.
  • A wrong model name or key produces an explicit error that names the fix. /model switches models in place.
  • Still stuck? Email [email protected].
08How do I update or uninstall?

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.

Install · one line

Try it on a real task.

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.

Direct installer · no Node needed
$curl -fsSL vibecodecli.com/install.sh | sh
or with npm
$npm install -g vibecodecli

npx vibecodecli works too, if you'd rather not install globally.

Built in Rust by ThinkingDBx. Questions or feedback? [email protected]