Use Bwat
Instructions and memory
Give Bwat the repository knowledge that should survive every new session, and know which parts are shared with your team.
On this page
Two kinds of durable context
| Source | Who writes it | Best for |
|---|---|---|
BWAT.md | You or your team | Commands, architecture, conventions, and rules everyone should share |
BWAT.local.md | You | Personal instructions for this checkout that should stay out of version control |
| Project memory | Bwat | Small facts learned while working with you on this project |
Bwat loads BWAT.md and BWAT.local.md from the workspace root at the beginning of every run. These files are the reliable place for instructions that must survive a new conversation.
Create BWAT.md with /init
Run /init in the VS Code extension or CLI. Bwat reads the project, checks existing developer guidance such as AGENTS.md, CLAUDE.md, or a README, and proposes a BWAT.md tailored to the repository.
/init
Review the proposed file like any other change. Keep it concise and specific. A good instruction changes what Bwat would otherwise do; a generic instruction such as “write clean code” adds little.
What belongs in BWAT.md
- Commands: the correct build, test, lint, and release checks, including the directory each runs from.
- Architecture: boundaries or shared modules that are easy to miss from a single file.
- Conventions: repository-specific rules that differ from normal language defaults.
- Safety rules: production systems that are read-only, generated files that must not be edited, or actions that require explicit confirmation.
- Known traps: setup details or failure modes that repeatedly waste time.
# BWAT.md ## Commands - Run `npm test` for unit tests. - Run `npm run build` before reporting a code change complete. ## Architecture - Put shared request logic in `lib/handlers/`; route files stay thin. ## Safety - Production data is read-only unless the task explicitly requests a write.
Use BWAT.local.md for personal rules
Put instructions that apply only to your machine or working style in BWAT.local.md. Bwat loads it alongside the shared file. Add it to your .gitignore so a personal preference or local path does not become a team rule.
How project memory differs
Bwat also keeps a private notebook for each workspace on the current machine. It can remember durable facts such as a useful project command, a correction you made, or where an important subsystem lives. The notebook is stored under ~/.bwat/projects/ and never enters the repository.
Use BWAT.md for team truth and explicit rules. Let project memory handle small working facts that help Bwat pick up where it left off. If a remembered fact becomes important enough that every teammate needs it, move it into BWAT.md.
Do not put passwords, API keys, or other secrets in project instructions. Treat BWAT.md like any other tracked repository file.

