29 Oct 2026article + repoTR · EN · NLClaude Code · Agents · Tokens · Security

I shut down my agent company and built sleeping agents instead

You loved my agent company. Now I have a confession: I shut it down. In the office I built to replace it, the agents sleep until I call them, and while idle they spend zero tokens.

A few months ago I showed you an agent company. It had fourteen teams, each waking up on its own schedule and writing its own report. The video got 200 thousand views. In this post I explain why I shut that company down, what I built instead, and how you can try it on your own computer.

Why the old company did not work

On paper it was great. But I looked at the files. Every team had a timer; the agent woke up because its time had come, whether there was work or not. When it woke up it reread all the rules from scratch, looked around, found no work, wrote a report and shut down.

Between 10 and 15 September the company ran 103 times. 36 of those runs closed with "no change". The sponsorship team wrote the same two items for eleven runs. Worst of all: I did not even open those reports for two days. The company was writing reports about itself, for itself. On 17 September I stopped all of it.

The real problem was not the number of agents, it was the mess

I stopped the company, but the work did not stop; this time I started working by hand. One day I counted my open Claude windows: seventeen. I tell one "edit the new reels", switch to another, then to another tab. I don't remember which terminal I typed what into, or what we last talked about. The revisions I give in CapCut pile up somewhere too, and they are hard to track.

So the problem was not having many agents. The problem was not being able to see any of them in one place.

The new idea: no work, nobody wakes up

The new system has one rule: if there is no work, nobody wakes up. No timer-triggered teams, no loop running in the background. Agents only start working when I type something into a terminal or give them a job from the office.

My only point of contact is a CEO. I tell it what I need, and it hands the work to the right agent. If I want, I can click an agent directly and give it a job. The commands I used to type into the terminal every day are now preset task buttons.

I built it as a 3D office, and every agent is a cat sitting at a desk. While idle they curl up and sleep. While working, their screens show what they are doing, which file they are reading, how many tokens they spend and which model they run on. Jobs I give from the office buttons run on Sonnet; my own terminals run Opus 5.5, and the office shows the two separately.

Office tour

I set up the rooms around my own daily work:

  • YouTube content: one agent only deals with YouTube topics, the other prepares the video.
  • Video edit: YouTube editing and reels editing share one room. My CapCut revisions now live in this agent's memory file.
  • Reels machine: script, kit and caption.
  • Production: game, GitHub repo, website. All the skill files live here.
  • Sponsorship and Gmail: it only opens when I say "check my mail". It does not send mail, it only writes drafts.
  • End of day: one run in the evening, on the smallest model. It tells me whether any content went out today or whether the day was empty.
  • Drive and disk: the material I produce for a video, especially motion graphics, takes up a lot of space. This agent handles moving my work to the cloud.

Then there are my terminals. The sessions I open by hand in the reels machine also show up in the office; in the video I showed seven terminals working in that room at the same time. I can now see who is doing what in which window without hopping from tab to tab.

The data room and the Guard: everything from outside is data

This room matters most to me. Web research and data collection happen here. So does the agent go out and fetch the data itself? No. I don't let the agent wander the internet blindfolded. A web scraping tool collects the data (Apify) and the agent only reads it. That way the agent sees the content as data coming from outside, not as instructions. Because writing "forget your previous instructions" inside a page is very easy.

The room I added last is where the Guard (Bekçi) sits. Its job is to check every file I download before I open it.

What the token counter shows

One day I saw 74.5 million tokens on the reels agent's counter. I know that looks very high. But it is the total of every conversation running under that agent since midnight that day. The office counter shows four things separately: input, output, cache writes and cache reads. Cache-read tokens are context reread on every turn (CLAUDE.md, earlier messages); they are not new work and are billed much cheaper, but they are the biggest number in the total.

The lesson I took from this: it is not the agent that eats tokens, it is the conversation left open for a long time. A sleeping agent eats none.

Then there is memory. Every agent has a memory file. When an agent finishes a job, it writes what it newly learned into its own file. Once I state a rule for editing, I don't have to say it again. Fewer revisions, fewer tokens.

Architecture: the CEO folder and the project folders

The main idea is simple. The CEO is a folder and my project folders sit under it. Each agent works in its own project folder, which has its own rules file, skill files and instructions. The reels machine, for example, holds my style and the GitHub repos I use. The CEO reads the request and returns a plan saying which job goes to which agent; the server validates that plan, and if it is broken, no run starts.

This did not happen in one night; I worked on it for two weeks. And let me be honest: a nice interface to watch your agents is only part of the job. The real thing is how much you develop each agent.

Try your own office

I put the interface and the server on GitHub. The repo only contains the interface and the skeleton; the agent files, prompts and skills are yours, you connect your own agents. To try it without connecting anything, there is a demo mode:

cd on-yuz && python3 -m http.server 8000
# in the browser: http://127.0.0.1:8000/?demo=1

To connect your own agents, follow the steps in the README: copy ajanlar.example.json to ajanlar.json, fill in each agent's folder and preset tasks, then start the server:

cp ajanlar.example.json ajanlar.json
python3 sunucu.py   # http://127.0.0.1:8796

The server only runs on 127.0.0.1; don't expose it to the network. The license is PolyForm Noncommercial: you can download it, use it yourself and change the design however you like; selling it and commercial use are not allowed. The interface text is in Turkish.

My first company did a lot, but it added nothing for me. This office does less, but everything it does, it does because I asked. And when the work is done, it sleeps. If you want a second episode that opens up the architecture in detail, say so under the video: https://youtu.be/QWFHDcvX7y8

Writing

Every build, written down

22 posts on agents, memory, Claude Code and security — each in Turkish, English and Dutch.

All posts →
Next post

Kling vs Seedance: I Gave the Same Prompt to 8 Video Models

I had eight AI video models on Higgsfield make the trailer for my game with the same prompt, the same five images and the same 10 seconds. First how these models work, then what each one made.

Read →
Contact

Let’s build something

selmakocabiyik@selmaai.dev
© 2026 Selma Kocabıyıkselma.codes