Skip to content
Sander
All posts

· Code · 4 min read

One folder, three tools

I use Claude Code, Codex and Cursor on three Macs, for work and for my own projects. Each of them starts a session knowing nothing about the previous one, and nothing about what I told the other two.

Switching tools or Macs meant explaining the project again: where it ran, what had already been decided and why. Referring to something I’d built in another project meant bringing that context along too.

Those choices needed a record outside the chat. So did the rules I kept repeating and the steps for things I do often, like running WP-CLI against a local site. I wanted all three tools to be able to find the same project notes, rules and skills.

The agent also needed to know whether it was working on a Basticom project or one of my own. Different permissions, different git identities, and work context that needed to stay on my own machines.

The shared folder

It’s called Tilde and it lives in ~/tilde: a private git repo that all three tools load on every Mac.

At the top sits AGENTS.md, the rules that always apply. Talk Dutch to me, write code in English, build the smallest thing that works. It’s 58 lines and isn’t allowed past 80.

~/tilde
├── AGENTS.md           the rules
├── context/projects/   one file per project, with a log
├── plans/              one plan per feature, with its sources
├── skills/             how-tos, loaded when the task asks for one
├── devices/            one file per Mac
└── inbox.md            corrections waiting to be sorted

Writing things down

Every project has its own file: what it is, where it runs and a log of decisions and pitfalls. The agent gets it at the start of a session and adds a line when something is worth keeping. There are 28 of them now.

Corrections go somewhere else. When I tell the agent not to do something, it adds one line to the inbox. Every few days I sort them: a rule, a project note, a skill, or nothing.

The last round had 14. Four became rules, two went in the bin.

Plans and skills

A feature starts with a plan. The brief, the meeting notes or the email goes into a folder untouched, and next to it comes one screen of scope, decisions and phases. When something’s unclear halfway through, the agent looks there first. Thirteen so far.

Things that keep coming back get a skill: a short how-to the agent loads when the task asks for it. Running WP-CLI against a local site, sorting the inbox, turning a brief into a plan. There are nine, and I should probably be using more.

Work stays work

Every project is either work or my own. Tilde works that out from the git remote and tells the agent at the start of every session.

Work is the strict one. Changes go to staging, production waits for my say, and a repo without a remote counts as work. My own repos commit under my own address.

Both live in the same repo, because the two overlap too much to split. That’s also why Tilde left GitHub after a day: things from work had crept in that don’t belong on someone else’s server. The remote is now a bare repo on my Mac mini, reached over Tailscale.

Three Macs, one remote

Next to the mini there’s a MacBook Air and a MacBook Pro. Each has a short file of its own: where the sites live on that Mac, and what runs on the mini.

Two laptops and a Mac mini sharing the same Tilde folder.

Setting up a new one is mostly one command. A second one, tilde doctor, runs about forty checks and tells me what’s still red.

Every fifteen minutes each Mac commits, pulls and pushes by itself, because I’d forget otherwise. Notes and logs go straight through. A change to the rules, a skill or the code waits until I’ve typed “y” in my own terminal.

Push? [y/N]

If the mini is off, syncing stops and nothing else does. Every Mac has the full history.

A bit safe

A small guard sits between the agent and the things I’d regret. A push to main needs my confirmation, a force-push is refused, and Slack and Gmail are read-only unless I click.

It’s a seatbelt, not a sandbox. It also occasionally refuses a command that only mentions a push, which is on the list.

The office that lasted four days

I also built an office: agents on the Mac mini that worked at night and left proposals for the morning, complete with a pixel-art office to watch them in. In four days they wrote 17 proposals and I stopped answering them. I’m short on time to build things, not on ideas, so it all came out again.

The lean version

Tilde started as a bash script. Every change to it needs my “y” before it syncs, and I read bash badly, so it’s being ported to TypeScript.

The engine is now separate from everything that’s mine, and a check makes sure nothing private ends up in it. The plan is to put that part on GitHub as a repo to fork.

Until then, the idea fits in three files: the rules, a file per project, and an inbox.

More writing

All posts