--- title: A local tool for one Python folder description: A command-line tool for one Python project. Ask a question, write a test, fix a bug, or add a small function. Files stay in the folder you name. date: 2026-09-06 ---

A local tool for one Python folder

python-vibe is a command-line tool. You point it at one Python project. It can answer a question, write a unit test, fix a failing test, or add a small function. It only reads and writes files in that folder.

Install See a demo

## Commands

brief

Lists the files in the folder. No model needed.

ask

Answers a question. Does not change files.

run

Changes files, then runs the tests.

## Try it `demo/orders` is the sample project. Activate the virtualenv first (`source .venv/bin/activate`). If the shell says `command not found`, the virtualenv is not active. ```bash source .venv/bin/activate cd demo/orders python-vibe brief python-vibe ask "what does compute_total return?" python-vibe run "write tests for apply_discount" python-vibe run "find the NameError and fix it" python-vibe run "add a function total_lines and a test" ``` Do not run `brief` on the python-vibe repository root. That scans hundreds of files. Another project: `python-vibe ask ~/app "what does add return?"`. On a large project add `--scope src`. Full install steps: [Start]({{ '/start/' | relative_url }}). ## This site | Page | What is on it | | --- | --- | | [Start]({{ '/start/' | relative_url }}) | Install, then the four commands | | [Commands]({{ '/api/' | relative_url }}) | Every flag, the Python API, and the local HTTP server | | [Live]({{ '/live/' | relative_url }}) | A recorded session | | [Demo]({{ '/demo/' | relative_url }}) | Eleven sample tasks and what happened | | [Folders]({{ '/tree/' | relative_url }}) | What each directory in this repository is | | [Editors]({{ '/editor-demos/' | relative_url }}) | VS Code and Cursor | | [Results]({{ '/investigations/' | relative_url }}) | Measured scores | | [References]({{ '/references/' | relative_url }}) | Papers the design sits on | | [Architecture]({{ '/architecture/' | relative_url }}) | How `src/harness/` is layered | ## Limits It does not browse the web or run arbitrary shell commands. `run` keeps a `.bak` of each file it edits. The NameError and `total_lines` samples on `demo/orders` are built into the tool; they do not call a model.