Eight days took vincent from 0.4.0 to 0.7.0. I used vincent to build every change in that run.
The 0.4.0 release note covered the richer workflow language, responsive TUI, and wider distribution. The three releases after it made that surface programmable enough to carry vincent’s own development — from issue to verified change.
From fields to workflows
Version 0.4.0 gave large terminals a six-stage task flow and persistent rails — 0.4.1 and 0.4.2 tightened package verification. Version 0.5.0 moved upstream: workflows gained declared inputs with labels, types, required flags, and RE2 validation, rendered by the TUI and enforced by the daemon.
It also shipped the vincent-workflows authoring skill — guidance that prefers deterministic commands, native control flow, explicit gates, and bounded cost. The fix was not another example. It was reusable judgment.
Recovery as a feature
Version 0.6.0 made stopped work easier to continue. Completed tasks accept follow-ups — blocked tasks can run a recorded repair agent in the same worktree, and retry_backoff paces failing dependencies. The create-workflow built-in uses the authoring skill to produce another workflow.
Operations hardened too: vincent daemon backup writes a consistent archive instead of copying live SQLite, restore validates before replacement, and vincent doctor reports database size, rows, and history span. Agent quota windows stay visible — observed resets and estimates are marked differently.
A wider control plane
Version 0.7.0 completed the CLI surface. Tasks can start idempotently or from a GitHub issue, read fields from JSON or stdin, publish vincent status, notify on state changes, and stop at max_cost_usd. Logs, transcripts, repair, approval, retry, archive, and answers — none require the TUI.
The TUI still earned serious work. Opening a task now enters a dedicated workspace with Steps & Attempts, Task Details, Output, and Diff tabs:

Workflow tooling gained init, render, origin tracking, and update-workflows. Adapter health reports tested versions and platform restrictions — the API refuses a restricted step when it cannot enforce one. And the project is MIT-licensed again.

Vincent builds Vincent
A control plane earns trust by carrying its own change.
Today all of vincent’s development runs through vincent. .vincent/workflows/github-create-issue.yaml produces an approved issue; github-resolve-issue.yaml carries planning, implementation, documentation, cross-platform checks, two human gates, and a commit-pinned merge; prepare-release.yaml audits the release.
That is the vision in working form: a local, vendor-independent layer owns durable state and verification while Claude Code, Codex, or Cursor does the inference. It does not make native agents safe — worktrees isolate collisions, not credentials, network access, or user privileges. Untrusted work still needs an OS sandbox or VM.
The tradeoff, named plainly: vincent is pre-1.0, so its workflow and API surfaces can move. In return I get one inspectable path from request to verified change. The documentation and GitHub project carry the full detail.
Feedback is welcome at lezli01@gmail.com, and contributions are welcome through the contributing guide. The rest of what I build lives at lezli01.is-a.dev.