Live demo
A real shell recording. 5 September 2026. One laptop. A fresh copy of
demo/orders. Daily model: Ollama llama3.1:8b. Only ask called
it. The two writes are harness demos — a unique typo and a template
add, no model. They stay on the recording because they are the same
every time. Daily run is 8B: write, run the suite, send a failing
traceback back once.

Recorded with asciinema. The GIF loops; the log below is the same session, static. Replay the cast:
asciinema play docs/media/live-demo.cast
Re-record it (needs Ollama llama3.1:8b):
PYTHONPATH=src python scripts/measure/record_live.py
The same jobs from Tasks: Run Task are on
VS Code
(docs/media/vscode-demo.gif).
From Cursor chat or Tasks: Cursor
(docs/media/cursor-demo.gif).
Type the same thing after Start:
source .venv/bin/activate
cd demo/orders
python-vibe brief
python-vibe layout
python-vibe ask "what does compute_total return?"
python-vibe run "find the NameError and fix it"
python-vibe run "add a function total_lines and a test"
If the shell says command not found: python-vibe, the venv is not
active. Activate it in every new terminal.
A second recording, same day, is a daily run: an 8B write on a
logic bug, then the suite. That is not a harness demo.

$ python-vibe run "fix compute_total in src/app.py so it sums the rows"
Action: patch Path: src/app.py Find: return 0 Replace: return sum(rows)
Action: done
I fixed the compute_total function in src/app.py to return the sum of
the rows instead of always returning 0.
Replay: asciinema play docs/media/daily-run.cast.
Re-record: PYTHONPATH=src python scripts/measure/record_daily.py.
The eleven-case table, including misses, is still on Demo.
Size the folder
No model. 0.2 s.
$ python-vibe brief
10 Python and Markdown files, 2.9 KB in total.
Small enough that python-vibe can read all of it, so you can ask about any part.
Files:
README.md 685 B
src/__init__.py 68 B
src/orders.py 467 B
src/orders_controller.py 568 B
src/orders_service.py 285 B
src/render.py 193 B
src/report.py 155 B
src/util.py 67 B
tests/__init__.py 0 B
tests/test_orders.py 511 B
python-vibe has 23 skills it can apply. It picks them from the wording of
your task; you do not choose them.
What is tangled
No model. 0.1 s.
$ python-vibe layout
layout: 1 finding(s), worst first.
[cycle] src/render.py and src/report.py import each other
Next move (do only this one): Move what they share into a new module both
import.
Ask a question
llama3.1:8b. The first draft was only "int". The harness sent that
back. The second draft named what the function computes.
$ python-vibe ask "what does compute_total return?"
ollama:llama3.1:8b project /tmp/orders mode small
--- step 1 ---
Action: done
Summary: "int"
too thin. Action: done Summary: quote int and say in a sentence what it
computes, from the code you read.
--- step 2 ---
Action: done
Summary: "int", which computes the sum of the line prices of one order.
"int", which computes the sum of the line prices of one order.
Nothing was written.
Fix the NameError
Harness demo. No model. 0.2 s. src/orders.py had subtotl on the tax
line. A unique in-scope name is bound without calling weights. That is
not daily work.
$ python-vibe run "find the NameError and fix it"
bound unique NameError typo (subtotl → subtotal) in src/orders.py. Tests passed.
After:
def total_with_tax(prices: list[int]) -> float:
"""Order total including tax."""
subtotal = compute_total(prices)
return subtotal + (subtotal * TAX_RATE)
A .bak of the file sits next to it.
Add a function
Harness demo. No model. 0.2 s. A template wrote total_lines next to
prices. Daily add-a-function goes through the 8B and the suite.
$ python-vibe run "add a function total_lines and a test"
added def total_lines(prices) in src/orders.py. Tests passed.
What landed:
def total_lines(prices: list[int]) -> int:
return len(prices)
def test_total_lines_returns_the_expected_result(self) -> None:
prices = [10, 20]
got = total_lines(prices)
self.assertEqual(got, 2)
The suite stayed green. ask is the slow step because it is the one
that talks to weights. The two writes are harness demos, which is why
they look instant on Start. Daily
run is write, then the suite, then one repair.
Daily run
5 September 2026. Ollama llama3.1:8b. A fresh copy of
eval/fixtures/daily_logic: compute_total returned 0, the test
wanted the sum. Not a unique typo.
$ python-vibe run "fix compute_total in src/app.py so it sums the rows"
ollama:llama3.1:8b project /tmp/daily mode small
--- step 1 ---
Action: patch
Path: src/app.py
Find: return 0
Replace: return sum(rows)
--- step 2 ---
Action: done
Summary: I fixed the compute_total function in src/app.py to return the
sum of the rows instead of always returning 0.
The harness ran the suite after the write. The suite was green, so the
next turn was done. That is the daily loop.