Skip to main content
Newsroom

Vinci Code is now open source

George PuAugust 25, 20265 min read

Today we are releasing Vinci Code as open-source software under the MIT License.

Vinci Code is a terminal coding agent. It reads a project, edits files, runs commands, and works through multi-step tasks on your machine.

You can connect it directly to a provider you already use, or sign in to Vinci's managed service.

The important part is not another coding interface.

It is that the harness — the software deciding what the agent can read, write, run, remember, and call finished — is now something you can inspect, change, fork, and keep.

A real turn on a user's own provider key: Vinci Code finds an ascending sort in sizes.py, changes it, runs the script to prove the fix, and closes by saying nothing repeatable confirms it

That is one unedited turn on a user's own key. The header reads "/login to connect" — no Vinci account is signed in.

Built on Pi, not from scratch

Vinci Code is a distribution of Pi, the MIT-licensed agent harness created by Mario Zechner.

We did not build the core agent engine.

Pi provides the multi-provider model layer, agent runtime, tool loop, and terminal interface. We preserve its upstream history and attribution, track the project closely, and keep the Vinci additions in a separate layer.

We are stating that prominently because open source only works when provenance remains visible. This project would not exist without Pi.

Vinci adds an opinionated layer around that engine: plain-language narration, command guards, secret masking, OS-level sandboxing, checkpoints, undo, review, and durable task receipts.

It also keeps the current task visible, and is designed so someone who cannot read every line of a terminal log can still understand what the agent did.

That matters because coding agents will not remain tools used only by programmers. More people will direct software without personally writing every line of it. They still need to know what changed, what was checked, and what remains uncertain.

Use your provider, or use ours

In direct or bring-your-own-key mode, a Vinci account is not required.

Your provider credential is stored locally and sent only to the provider you selected, because authenticating to them requires it. Requests go from your machine to that provider. Vinci is not in the prompt path.

/login asks how you want to authenticate before it asks who with. "Use an API key" lists every provider the agent supports — 33 at the time of writing — each marked unconfigured until you add a key. A Vinci account is one of the options, never a prerequisite.

For people who prefer convenience, Vinci's managed service remains available through the same CLI. Sign in, and Vinci handles model selection and usage billing.

The local guards, checkpoints, receipts, and review layer are the same either way.

Open source does not make provider limits disappear. A provider can still rate-limit or refuse a request under its own terms.

What changes is that your coding environment is no longer fused to that provider. You can move without discarding the harness, safeguards, and working habits around it.

Portability is not immunity from somebody else's policies.

It is the ability to leave.

What it does not do

It does not run local models. Vinci Code talks to hosted provider APIs; pointing it at Ollama, LM Studio, llama.cpp or another local server is not supported today.

It is a command-line tool, with no graphical interface planned for the first release.

We are listing this here rather than leaving it to be discovered, because a launch post that only describes capabilities teaches people to distrust the ones it does describe.

It stops before it is irreversible

Vinci Code pausing on a destructive command: it names the classification, prints the exact command, and has "No, don't" selected

Asked to delete a directory with rm -rf, it names the classification, prints the exact command it would run, and waits. The default answer is no. The directory in that capture still had all four files in it afterwards.

What "done" means today

Coding agents are very good at sounding finished.

We do not think a completion claim should be accepted simply because the same model that made the changes says the work is complete.

Vinci Code ends work in one of four explicit states:

  • DONE — changed work that warranted a check has current verification evidence.
  • DONE-UNVERIFIED — changes were made, but the required evidence is incomplete.
  • WAITING — a named user decision is required before work can continue.
  • BLOCKED — the task could not proceed, with the reason recorded.
The end of a real turn: the agent says the project has no test suite, so nothing repeatable confirms the change, and marks the file unverified

That is a real turn ending. It ran the code, and it still would not call the change verified, because the project had no test suite to run.

That is not the same as proving the code correct.

A reviewer model can miss a defect. A test can be inadequate. A verifier can be wrong. We have not solved verification.

But DONE and DONE-UNVERIFIED should not be represented by the same word.

Separating them is a necessary step toward the standard we are working toward: an agent should not say that work is done until it can show why.

Open means open

Everything in the Vinci Code repository is released under the MIT License.

There is no separate ee/ directory, source-available tier, or enterprise licence around the useful parts. You can read the code, build it, modify it, fork it, and redistribute it under the MIT terms.

The optional Vinci managed-inference service remains a hosted service. It is not required for bring-your-own-key use.

The Vinci and SimpleDirect names remain trademarks. The MIT code grant does not grant permission to distribute a fork under our identity.

Changes that improve the general Pi engine should usually go upstream, where every Pi user benefits. Vinci-specific work — guards, receipts, checkpoints, review — belongs in Vinci Code.

Beta, honestly

Vinci Code is actively maintained, and we use it every day.

It is also beta.

Settings and extension interfaces may change before 1.0. Some experiments will be removed. Security fixes will target the latest release rather than a long-term-support branch.

We are opening it now because waiting for a polished 1.0 would keep the project closed during the period when outside scrutiny matters most.

Issues and pull requests are welcome. So are hard questions about the guardrails, privacy model, verification logic, supply chain, and the parts that do not work yet.

A coding agent with access to your files and shell should be challenged in public.

Run it

Build it from source:

git clone https://github.com/getsimpledirect/vinci-code-cli
cd vinci-code-cli
npm install && bash vinci/build.sh
./vinci/bin/vinci

Or use the signed installer:

curl -fsSL https://vinci.getsimpledirect.com/install | sh

Read the source, documentation, and contribution guide:

github.com/getsimpledirect/vinci-code-cli

Our ambition is to help make an open, inspectable coding harness a mainstream default — not another wrapper people try for a week.

A launch post does not accomplish that. Maintenance, upstream contributions, security work, and users who trust it for real tasks might.

Today, the starting condition is finally right.

The coding agent is something you can own.

— George Pu

George Pu

George Pu

SimpleDirect® is an independent AI lab in Toronto. Vinci is its research line: open-weight models, verification of AI-made work, and local AI you can own.

Share