Vibe Coding
Vibe Coding Setup
Open your chosen tool on a real folder, connect Git, and give the agent a short rules file.
What you need
Finish Tools first if you have not picked a stack. Cursor, VS Code + Copilot, Claude Code, Codex CLI, Continue, Windsurf, and similar agents all work. This page is the folder, Git, and rules — not a second product tour.
- The tool you chose: an editor or CLI agent that can read files and apply diffs.
- Git, so every working slice is a restore point.
- Python 3 on your PATH, plus a virtual environment for the project.
- A small, real folder. Agents work worse in empty chats with no files.
Create a practice project
mkdir vibe-lab
cd vibe-lab
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
# source .venv/bin/activate
pip install pytest
git init
git add .
git commit -m "Start vibe-lab"Open that folder as the project root in your editor, or cd into it before you start a CLI agent. The agent should see vibe-lab, not a random parent directory.
Give the agent a short rule file
Create AGENTS.md (most tools), or the file your stack already loads:CLAUDE.md for Claude Code, .github/copilot-instructions.md for Copilot. Keep it short. Long rules get ignored. Same text in any of those files is fine.
# vibe-lab
- Python 3.12, pytest for tests.
- Do not add new dependencies unless I ask.
- Prefer small diffs. Do not rewrite unrelated files.
- After a change, run: pytest -q
- Never commit secrets or .venv.Rules beat repeating yourself. If you always want type hints and tests, write that once in the project, not in every prompt.
How you work in the editor
Once the folder is open, this is the daily surface. You do not need every panel. You need these four — in Cursor, VS Code, Windsurf, or next to a CLI agent.
- File tree — confirm you are in
vibe-lab, not a parent of ten projects. - Agent chat — this is where goals, @files, and “do not write code yet” live.
- Diff view — after a generation, you read files here before you accept.
- Terminal — you type
pytest -qand the real CLI command. The chat is not the test runner.
In an editor, attach files with @ in the chat (for example @AGENTS.md the first time). In a CLI agent, name the paths in the prompt. Highlight a function when the change is local. Do not start a new chat for every typo — stay in the thread for one slice, then start a new chat when the goal changes.
Editor habits that matter
- Agent on a selection: highlight a function when the task is local.
- Chat with @files: attach two or three files, not twenty.
- Plan first: for anything larger than one function, ask for a plan before code.
- Terminal: you run tests. Do not assume the model ran them.
- New chat per slice: a leftover plan from this morning will pollute the next feature.
Checklist
| Ready? | Item |
|---|---|
| Yes / No | Chosen tool opened on the project root (not a parent folder) |
| Yes / No | Git repo with a first commit |
| Yes / No | Virtualenv active, pytest installed |
| Yes / No | Short AGENTS.md, CLAUDE.md, or Copilot instructions file |
| Yes / No | You can undo with git checkout / restore |
Try it yourself
Exercise: After you create vibe-lab, what is the first prompt you should send, and what should it not do?
Show solution
First prompt: “List the files here and summarize AGENTS.md. Do not edit anything.” It should not generate a full app. You want proof the agent can see the project before you let it write.
Key takeaways
- Vibe coding needs a real repo, not a blank chat.
- Pick the tool in Tools, then open it on this folder — not a parent of ten projects.
- Git is your undo. Commit before you let the agent roam.
- A 10-line rules file is more useful than a 400-line manifesto.
- You work in chat, the diff, and the terminal. The summary in chat is commentary.