How I work with AI

Updated

I'm a designer, and for the past year I've been vibe coding a lot. I don't write code myself. I know basic HTML and CSS, and beyond that I describe what I want and go through a few rounds of edits.

Right now I have several projects, each with several Claude Code sessions open, so 4 to 12 windows at once. At that scale everything gets in the way. The windows look the same, I can't tell which session is waiting for me, decisions from chats and calls never reach Claude, and Claude itself starts from zero every morning.

My setup grew piece by piece: something got in the way, and I took it to Claude. Here's the short version.

Working with my cat

Seeing every session

Colored windows

Every project has its own VS Code window, and every window has its own color. I find the project I need by color in a second.

In Mission Control, projects are told apart by color

Notifications on my phone and watch

When Claude finishes, asks a question or needs permission, a Telegram bot pings me with what it needs, which project and branch, and the start of the reply. The bot stays quiet if the project window is already open, waits two minutes in case Claude keeps going on its own, and drops duplicates. Before this, a session once sat for half an hour waiting for me to let it write a single file.

The bot says what Claude needs, the project and the branch

Aikon

A notification tells me a session is done, but I still have to find the window. I spent two weeks patching someone else's menu bar app, then deleted it and built my own. Aikon shows every session in one of four states: needs permission, waiting for an answer, done, working. One click opens the right window. Claude Code doesn't report what it's doing anywhere, so Aikon checks two sources: small notes left by hooks, and the last line of the conversation. It's open source: github.com/blinbirka/aikon.

Every session in one of four states. One click opens its window

Getting context to Claude

Chats

My friends and I discuss side projects in Telegram, one topic per project. I set up a second account, connected it to Claude, and it saves the conversation into the project folder. Now I can write "Vanya asked to recolor the button", and Claude finds the message, makes the fix and reports back to the group.

Calls

Granola (a popular AI meeting recorder) only gave me a summary, and full transcripts and export to my notes were paid features. So a friend and I built our own Meeting Recorder: he wrote the code, I did the design. It notices a call in Zoom, Teams, Slack or Discord, records my voice and the other side separately, and the transcript lands in the right knowledge base with a summary: what we discussed, what we decided, who does what. In the first month it filed about twenty calls for roughly four dollars, by Claude's own counter. The code is on GitHub: github.com/mmaximov97/meeting-recorder.

The recorder notices the call and offers to record it
The transcript lands in the right knowledge base with a summary

Knowledge bases

All of this lives in Obsidian: a personal vault, one per work project next to the code, and a shared vault for side projects in a private repo. Each has an index of every note at its root. Claude opens the index first and finds the right note on the first try. The index rebuilds itself at the start of every session.

The index at the vault root helps Claude find the right note on the first try

Claude remembers how to work with me

Claude doesn't remember the last session. Every morning I used to explain again that I'm a designer, that we review UI on a running site and not in screenshots, and that nothing gets committed without my yes.

Rules

Now that's written down in seven files Claude reads at the start of every session. A new rule appears whenever it gets something wrong again. Only specific rules work: it ignores "write clearly" but follows "don't send me a list of changed files".

Skills

Instructions for specific tasks: UI animation, call prep, reviewing my own sessions. Some are for the whole team, and I write those for everyone on the project.

Decision log

After I say yes, Claude writes one line: what we decided and why. A new session starts by reading the latest entries, so I can close the old one without losing anything.

Away from the laptop

Claude in Telegram

Ideas come at any moment, so Claude answers me in Telegram. I send the bot a project name and it switches to that project. What it may do without asking is set in advance.

I send a project name, and Claude switches to it

Scheduled checks

My Mac starts Claude on a schedule, and it only writes when there's something to say. In the evening it goes through the day's chats and updates project statuses. Every hour it backs up my work files. It also searches for flights when my friends and I travel from different cities, so that everyone lands at the same time. There are more than ten of these checks now.

What it costs

When Claude searches a project, it reads dozens of files, and everything it reads stays in the session until the end. I counted: in my six heaviest sessions, 44% of commands were reading and searching. Now search goes to a helper on a cheaper model that reads on its own side and returns a short answer. Claude also suggests how hard to think: sketches and small fixes go fast, a bug across several files or text for other people gets full effort.

The whole setup in one diagram

What I take from it

Once I spilled water on my Mac, and while it was being repaired I worked on another laptop. It was awful! That's when I understood the value of my setup. I also learned to keep a copy of all my rules in the cloud.

The setup changes every week: something breaks, new needs show up, models get updated. In six months the specific tools here will probably be outdated. So I care more about how I get to them: something gets in the way, and I take it to Claude.