Devlog · The story
Three months,
one desktop app.
Late April 2026, this started as a single sentence — "swapping AI accounts between projects is annoying."
Three months later it became AgentManager. This page is the story of what changed in between —
the decisions, the mistakes, and the moments where the direction shifted.
3 months
2026-04-27 → 2026-07-23
solo · a little every day
day 12026-04-27
Just make it run
The goal was to have something working by the end of the day.
A project list, a chat window, AI responses streaming into the screen — three things, that's it.
A "barely usable first version" was live by evening, and everything after that was adding one thing at a time on top of it.
week 1early May
Making it look right
Early responses came out as one long block of raw text. No bold, no code blocks, no tables.
Added proper markdown rendering, syntax coloring, auto-scroll.
Search, keyboard shortcuts (Ctrl+K to jump anywhere), a way to revisit past conversations —
most of the "feels like a real chat app" polish happened during this stretch.
the switchMay
From web app to desktop app
Running it in a browser tab wasn't terrible, but two things nagged:
first, using any file from my own computer meant uploading it every time.
Second, there was no safe place to keep login credentials.
Moving to a desktop app fixed both in one shot — and let me store multiple accounts and swap between them with one click.
late May2026-05
Maybe someone else could use this
File previews (docs, spreadsheets, slides), a way to see what changes the AI made,
a dashboard, and — the one that flipped the switch —
a way to open a link that lets me continue the desktop session on my phone.
Around here I started thinking "this might not just be my tool."
early June2026-06
Living with it every day
Branching a conversation into experiments, snapshotting each state so I could roll back,
saving frequently-used prompts as templates,
reviewing every file edit the AI suggested and accepting or rejecting them one at a time.
All of this came from actually using the app every day and fixing the thing that annoyed me most that hour.
This stretch had the fastest "hit friction → fix it now" cycle.
renamed2026-06-19
Claude Project Manager → AgentManager
The original app only handled one AI (Claude). When a second one (Codex) got added,
the old name stopped fitting. Two or more AIs, one workspace — AgentManager made more sense.
The tricky part was that each AI has subtly different command-line conventions,
and hiding those differences behind a clean interface took real work.
late June ~ early July2026-06 ~ 07
The invisible things that decide whether it feels stable
Knowing precisely when the AI finished responding, when it's still going, when it silently stalled.
A "check on it" button that appears if nothing happens for 30 seconds.
Detecting when usage limits are hit, backing off automatically, and showing a banner explaining what's happening.
None of this is visible on the surface, but if any of it is wrong the app feels frustrating to use.
Commit messages during this stretch were mostly "fix."
Persistent mode2026-07-21
Keeping the AI running makes it fast
Default behavior is to start the AI fresh for every message and shut it down when the response is done.
So the AI re-reads the project context every time.
Measured on a real workflow: after about 30 exchanges, the same work is 6.6× slower that way.
So I added a mode that keeps the AI alive — project context is read exactly once and kept warm.
A button at the top of the chat lets you switch back and forth mid-conversation.
Trade-off: each active project holds 200–500 MB of memory in the background.
A huge win if you're using the project a lot, not worth it for a single quick question. That's why it's a user choice.
v1.8.02026-07-22
Going public
Up to this point it had been a "just me" tool. Before showing it to anyone else, three things had to be in place:
- Safety levels — how much freedom the AI has inside a project, set per project.
New/unknown projects → read only. Your own projects → anything goes.
- Korean and English UI — so anyone can use it regardless of language.
- First-run guide — a friendly 5-step wizard that asks the questions everyone needs to answer once.
The day all three were done, I hit "release" for the first time.
hours later2026-07-22 (same day)
The worst mistake — the safety levels weren't actually doing anything
Discovered hours after release. The option I'd used to build the safety system turned out to be
not a safety mechanism. It was a different option that just happened to sound similar.
Result: projects set to "Safe," "Standard," "Trusted"
were all behaving identically to "Full."
Already pushed to users via auto-update.
Verified the actual behavior with my own eyes this time, switched to the real safety option,
and pushed a hotfix within hours.
Lesson: Never assume how a security-relevant option behaves — verify it yourself.
Shipping the wrong state to users is the worst possible outcome.
v1.8.22026-07-22
Dark background, black text
Real user report: "the first-run wizard text is invisible."
Turned out I'd forgotten to set the base text color on the page.
Most of the app worked because each screen set its own color, but a few pop-up windows didn't —
they inherited the browser default, which is black.
Dark background + black text = invisible.
A single line fixed the whole class of problems across the app.
While I was in there, I also cleaned up a few spots where light-mode contrast was too low.
taking away2026-07-22
Removing what isn't used
After the public release, real use surfaced "I don't actually use this" moments.
Removed project tags. Removed per-project instruction storage.
Also fixed a bug where the "Add project" screen couldn't scroll on smaller windows, meaning users couldn't reach the Save button.
The old saying that removing is harder than adding — I felt it firsthand here.
v1.8.6 – v1.8.72026-07-22
Changing safety level with one click
Because the safety level lived only inside the project-edit screen,
people were confused — "can I not change this per project?"
Added a small color-coded badge at the top of the chat — mint = Safe/Standard, amber = Trusted, red = Full (dangerous) —
click to change it right there.
Same round, I also cleaned up the header layout so the session name sits in the middle.
v1.8.8 – v1.8.92026-07-22
Removing the third-party integration
An integration with another app I'd added a few days earlier turned out to be unnecessary inside AgentManager itself.
Cleaned it out entirely and moved the mention to a "companion tool" section on this website instead.
that evening2026-07-22 (same day)
Getting a second pair of eyes — from another AI
After hitting two serious bugs in one day, I stopped trusting my own review pass.
Sent everything to a different AI (a different company's) for review,
and simultaneously asked another instance of the same AI to review it from a deliberately skeptical angle.
The other AI said "looks fine." The skeptical review caught two real bugs:
- Changing the safety level was silently wiping stored settings on other projects as a side effect. Purely accidental interaction between two pieces of code.
- The success message after changing safety level was showing weird internal codes instead of the real name (e.g. "safe" instead of "Safe").
Lesson: When you review your own work, you have blind spots.
A completely independent perspective catches things the first review can't.
now2026-07-22 → 2026-07-23
This page
The page you're reading was the last piece.
A simple website plus the custom domain, all done in one day.
It automatically checks for new versions in the background, so every future release just shows up here —
no need to update this page manually.