A local folder is a better AI workspace than another chat
Keep Claude Code, Codex, and your project in one ordinary folder. The canvas maps it, connections live in the files, and the work compounds.
We kept opening new chats for the same repository. One for a failing test, one for a design note, one for “just ask about this function”. Each thread started cold. We pasted paths, pasted snippets, then lost the trail when the tab closed.
The work itself never lived in those threads. It lived in a folder on disk: source files, notes, a README, a git history. The chat was a temporary window onto that folder. We decided the folder should be the workspace, and the agent should walk into it.
That is what BaseHalf is for. Open a normal project folder on a Mac with Apple Silicon, and it becomes a canvas. Files and subfolders show up as cards. The Agent Area on the right runs Claude Code, Codex, or a terminal. Layout metadata sits in .bh/, out of git. Your files stay ordinary files.

Chat threads forget. Folders remember.
A chat is good for a single pass. Ask a question, get an answer, move on. Compound work needs something else: the decision you made last week, the note that explains why a test is flaky, the draft that already knows which three sources it came from.
| Chat workspace | Folder workspace | |
|---|---|---|
| Source of truth | The thread, until it scrolls away | The files on disk |
| What agents read | What you paste into the prompt | The same files you see |
| Continuity | Start over or dig through history | Git, search, and the canvas map |
| What “this” means | You name the file again | Selection is recorded for agents |
We stopped treating the prompt box as the place work accumulates. The folder already did that job. BaseHalf just makes the folder legible as a map, and puts agents beside it.
Connections the agents can read
On the canvas, a line from one card into another is not decoration. BaseHalf writes it into the target file as a plain-text upstream list. Git sees the change. Claude Code and Codex see the same list when they open the file. Nothing special has to be injected into the prompt for that link to exist.
We care about that detail because agents are better at reading files than at remembering what we said three messages ago. If the relationship is in the file, the next session starts with it already there.
Selection works the same way. Select a card or a passage, ask about “this”, and BaseHalf records what you meant where the skill tells agents to look. We never dump the whole workspace into a prompt. Agents open what they need.
One place for people and agents
The Agent Area is not a second product bolted on. It is the right side of the same window: Claude Code or Codex as a CLI or a curated extension, plus ordinary terminals. You rearrange cards while a session runs. You commit when the files look right. The canvas and the agent share one folder, so there is no export step between “thinking” and “shipping”.
A disposable chat asks you to rebuild context every morning. A local folder keeps the context in the same place your tools already know: Finder, git, search, and now a canvas your agents can read. That is the local-first AI workspace we wanted for ourselves, and the one BaseHalf opens when you open a folder.