In this conversation, Eric Boosts returns to discuss how he built a personal AI agent using Claude Code to automate life management tasks, such as tracking school emails, calendar events, and messages for his family of five children. He emphasizes that Claude Code is the gold standard for coding agents due to its hook system, which allows developers to intercept and redirect model behavior at key points—like before a tool call or file write—without the model’s awareness. This solves a major limitation: models often ignore instructions in `CLAUDE.md` files as context grows. By moving rules into hooks, Eric ensures deterministic compliance, where the system injects relevant rules at the right moment, preventing distraction and enforcing task completion. He also employs adversarial agents that double-check code changes, challenge decisions, and optimize project structure. Eric’s goal is to minimize his active involvement, so he built a system where, given a task, Claude Code assesses context utilization, queues tasks for later sessions if needed, and merges related work. Hooks also enable automated logging of optimization opportunities for self-improvement. Ultimately, Eric argues that starting with any AI tool—especially Claude Code in the terminal—allows users to automate mundane tasks, creating a flywheel of skill development and time recovery for more meaningful activities. He recommends migrating entirely from `CLAUDE.md` to hooks for reliability, though simple project descriptions may remain in the file.
is Claude Code the Everything Agent. Back on episode 52, Eric Boosts taught us about advanced Claude usage. Well, on episode 75, Eric's back. And he's been building non-stop since we saw him last. And today, we're going to cover how Eric has built a system that allows him to control Claude Code from anywhere, be confident that the task will be done correctly, interact with so many aspects of his life, and much more. So please enjoy this conversation with Eric Boosts. So if you can have control over the terminal, then that means that the whole, there's not really any limits. And so if AI is the abstraction, and it's just through talking in English to the computer that has full control over it, then you're not really boxed in. So that you can set up permission structures and sandboxes and things like that, but it's not required. And so one thing about Claude Code that's so awesome is they have, not only are they dog fooding it internally inside of Anthropic, which means that they're using the tool to build the tool. The new releases, 100% of the releases, are written by Claude Code, because it's got become so reliable and so good. And you can see that number increasing over the last few months. And now it's entirely like super fast of building and deploying new things. And so they're iterating with Claude Code and they're releasing the things that they find internally that work purpose-built for their model. Their model is trained to do better at Claude Code. And so it's not like some other system that you're sort of using to bootstrap or be a harness or whatever, like a wrapper around the model itself. It's something that the team inside the company that builds the model is doing is like a vertical stacked, right? And so you can imagine the open AI is doing this with code acts and Google with tools or whatever their tools are that they're releasing. Anti-ravity and stuff like that. And Groc has their own. Anyway, with Anthropic, I personally believe it was just the best coding model. Now it has a limitation that it has like a smaller context window than some of the others. But for instruction following, for most of the stuff that you do agentically and the terminal, you don't really need all that much. And in fact, the ability for the model to do really good task, it works, cuts down if you even have a really large carton context window, but it's not following instructions all that well over time when it fills up. That's, you know, you just have to test each model, right? So they're all really good. They're all really capable. But the thing about Anthropics Claude Code is that they have this hook system. And I feel like this is essential. Like this is the gold standard. I thought Claude Code is the gold standard for coding because of not only this like internal rapid developments and they're releasing it to you. And not only because you have something like in the Claude desktop app, you can now do Claude Code and the browser even do Claude Code. You can access it from like GitHub. You can access this if you have the pro plan, even the $20 month plan. You can get access to all this stuff. But if you have the max plan, you can get the preview things, like the new things that come out. And including like code work, which is just released in Claude desktop. And that relies on Claude Code under the hood. And the hook system is actually available in all those things. I didn't know when we talked yesterday, but I took a look. And it's there. It's just kind of limited because it's somewhat in like the sandbox VM. And it's you got to get stuff out, the hooks out and back in. But here's why the hooks matter. So with every agentic tool you might use that you want to have do something on your behalf, there are some limitations. There are some constraints or if there are things that aren't quite right. Like ideally, let's set to the stage. Here's what you want. You want to be able to talk to it like you talk to a human. Like someone who's a project manager or let's say Jarvis, your Iron Man's AI or your secretary or personal assistant. Because the goal is for me in my life, I want to be able to get back more times that are meaningful with the people and the relationships. And like what I care about, there's more meaningful. So just imagine for a moment all the things that you do in life in personal and work life. I don't know. Can't say I've hear some kind of. And like if you were to rank order those things, by like these are the sets of tasks or sub-tasts that I do that I really like. And these are the ones that I like less, right? The kind of more automated or mundane are automatable. I'm going to say like repetitive and mundane. And I wish I didn't have to do so much of this set of tasks. I could do more. Well, of this set of tasks is lower. There's a subset of those. There's like some of those tasks that you could probably automate away with AI if you knew how to do it. And it's the models are like, as many people said, like the worst they're ever going to be, they're just getting better. And the sooner you get in at learning how to use the tools to take over whatever it is you don't want to do, the more ahead of the curve you are and the better you are at getting back more of that time and it's a flywheel. It's a feedback. So once you learn how to do it for here, for this thing that you're super passionate about, it would be really great if I could just not have to do that anymore. Then that skill up of investing the time to work with the model to do that allows you to do a lot more. And I have a, I feel like a compelling reason for me to say that the place to start with that or if you've already done it to try is a cloud code. Now there's different ways to use it again. You can use it in the desktop app. You can use it in the website. You can use it in the terminal. A lot of people are too intimidated by the terminal to get into it. And it is like super power lands. So you can start wherever you want to start. I personally would start this removal, but because that is the place where there are no limits. But anyway, like the goal being, I want to find one thing that I don't want to do anymore. But I want to find a tool that can automate as I don't want to do that anymore. And if that thing is like doing this document work, okay, you have a mass description or you're willing to pay for it. That's $100 a month for the 5x and 200 for the 20x. That's 20x of what you get in the pro plan, which is $20 a month. I think that that's right, I'm not sure. But which is the pro plan, you get more than the free plan. Anyway, the pro plan I think is $20 a month. I'm not working for anthropic. I don't sell the stuff. I don't really know. But I think that if you get one of the max subscriptions, you can use code word. Of course, code word will probably come to the pro subscription pretty soon. But that's for like cloud code, except it's not code related. It's more like general purpose. I have some of these documents. I want to create this presentation. You know, a lot of things can do that. If it will, that's not special. Any AI can turn documents into presentation. But it's different. But it is much more that you can do. Like cloud code is another tab inside of cloud desktop app. And with cloud code in that tab, you can basically connect it to your GitHub or your local file system. And it can work with the sandbox over to reset up. And it can create a little VM. And it can do stuff on your computer, riding your actual code files. And this is what matters versus allow the other systems that you'll see. The state that's being managed is your local code, your local files, your local documents. And it can copy it out of there and put it into the sandbox environment. Or you can give it access to whatever folder you want. And there's a lot of things that it can do. And depending on like, there's even a file system tool. I can show you a lot of this stuff. I don't know how much it will get into. But I would love to like block people through at some point. But cloud code in the terminal has everything. And so here's where I'm going with it. So I want it personally. Well, the thing that I said that I want is, I am overwhelmed. I have four kids between the ages of 15 and 6. And I have one that's due and a month. So in baby number five. And we're very excited about that. But there's far too many school emails, okay, from the teachers, especially when it's in high school and middle school. And there's far too much to keep up with. I've got calendar events like crazy. I've got text messages and teams and group me and emails and all the things that everyone else struggles with. Right? How do you keep up with all this stuff? So I wanted a system to keep up with all this. Well, I wanted to build something like Jarvis that is a secretary or the front end. They can look at all the data coming in from all the sources without me having to open any website or app. Ever except for my daily to do list that is automatically managed based on what it knows that I need. And my calendar, which has automatically been scheduled based on events to come in or newsletters or stuff that matters to me. And it can identify like this is for, you know, here's a bunch of stuff coming out. But is it relevant to me? Do I need to know it? Or is it just like your kid is learning to color on what you today? Or is it like there's this event that's coming up and they need to have this and I need it like RSVP. So those are the things that are different, right? And then also like text messages. And not only do I need to be able to know about this stuff, I wanted to collate together intelligently by a model such that if it decides here's an important thing, it can put it on my calendar. But it can also update the calendar. If I get a text that's different, that's for the same event, for the same person, it can like fill update the content from it, right? I've built that system. And it's very simple. I didn't write any code. I won't say super simple. Like I had to struggle with it a little bit. But that system now exists. So I can keep up and not be grounded and not miss things. And actually be the dad who knows about where my kids' events are. Right? And I said a lot because I was like, okay, I want to do this. Now I want to do that next thing. And then the next thing. Once you learn to do the first thing, that's the biggest curve. And then you keep going and there's a little bit more. So within this, the struggle is largely like, what is the model doing wrong? And how do I get the model to be better not going off the rails in this crazy way every time? Like it's just if it fails, it's like some default behavior in the model. And how do I get it to not do that? This is where I think the massive value in the hook system wise is because I mentioned this in the last podcast that we did. But like hooks run outside of the awareness of the model. The model that you're talking to being like for me, Claude Opus 4.5 within the terminal within Claude code. But outside of that, in the life cycle of the model run, there's a bunch of events that are occurring. So when the user sends a message to the model, there's something called a user prompt hook. And a user submit host. I forget the name of that. Who's honestly like, but like at that moment before it sends that message to the model, it can be intercepted by some code, which is this hook call. And so the hook call that each one of these stages, like the four returns back to the user, when it's about the hook,
to write files, learn about the refiles, about the call tool, it's about to compact. Before it does any of these things, you have an opportunity to guide it or direct it or inject content into it. And so instead of what most people do in how Cloud Code by default is set up, is they just use the default harness, the default way that Cloud is intended to be used. But without taking advantage of a lot of the-- I would say there's a lot of optimization that's left on the table. And Cloud Code is much more capable than most of these agentic tools, but it's still hobbled quite a bit by the defaults. And the team, the Cloud Code team at the end of the topic, I know, is working to make it better and better, and they're going to integrate a bunch of this stuff. But what I found is if you have something called a Cloud.md file, which is a file that contains instructions or contents that you put in there or that it decides based on what you tell it to put in there. And when it starts a session, it reads that file. The problem is that as your conversation with the model to build or do something for you get longer and longer, it starts to ignore more and more of that Cloud file. Because it's older and you've got recent user messages and you've got tools, you've got all these things that happen. And so it's not 100% reliable. And so the goal is how do you get something such that when you give it a task like a human, it's going to know where to break down all the pieces of the task, and what project to put it in and how to queue it up, and where to slot all those task areas and what to do first, what research is going to know what your code base is when it starts to take on each one. It's going to explore thoroughly with adversaries to try to figure out what is the code that already exists. And should I update that code or should I add new code? It really just have to justify it. I need to add new code. And here's the reason. Because someone else will come in adversarily and say, I see other places. Are you sure you shouldn't be doing it there? And so eventually you can improve the weaknesses of the model. So the model gets distracted. How you solve that? Hook solved that. How they solve it? Instead of creating a rules-- sorry, creating a cloud.md. that has all these instructions that the model might ignore, why not create a, let's say, JSON set of-- or it can be marked down whatever, but like a structured format of rules that at certain times the hooks look at, because the rules are tagged by which type of hook it is, and which project it belongs to, and what is relevant. And what kind of task that is relevant to. And then if the model starts to do something, it shouldn't be doing. The hook can redirect it. Like, inject, it'll detect. You did this thing. And at that moment, when it's very relevant to the model's mind, it injects content into the model's context as it's working, saying, no, don't do that thing. Or this thing is blocked. You must use this other thing. So it reads the rules when it launches. So cloud.md, instead of that, is reading in this file that is the rules. And then as it's getting ready to stop, it's reading that the hooks are directing it, saying, did you follow compliance? Did you follow autonomy? Did you keep working until entire queue is done? This task it was assigned. Did you write everything, including the model itself, like the tools have something called to do right tool, that moves their tasks, that creates a zone task. You can dump those into a file, or you can handle them through your project management system, which is the main model that has all the context and those that it's doing. You can have a hook, tell it, OK, take everything that was near to do, and basically queue it up properly. So that, here's the goal. You match the current task to the proper context from your existing session history and code base. So everything that you've done, and everything exists in your project, and everything that's in Git. I love the idea of taking information out of cloud.md, putting into hooks. So instead of just getting lost in the context, it's actually triggered programmatically, which is awesome. Do you recommend anything stays in cloud.md, or should be migrate completely away and start leveraging hooks for every aspect of the guidelines? It's a good question. I mean, I don't really know. Honestly, my flow is changing constantly. I'm always testing. I have benchmarks and audits and stuff set up so that it will try to compare. And if it runs into any issues or sees hooks, like not letting something pass multiple times that it seems like it should, it'll basically write these to a file that the model will read in and queue up. Like you kind of add it to a queue. Hey, look at this. This seems like maybe an opportunity for optimization, for self-improvement or whatever. And I have a cloud md. But I think maybe it just got removed. I just kind of just did this this morning, just removing it entirely. I basically asked the model, okay, look, here's our structure. You can explore the code base and see what we're doing. And we moved everything down to rules and hooks. And I had cloud md referencing, like at referencing the rules file, if you will. The problem with like cloud md at referencing files is that sometimes it won't read in all the contents of the files if they get too long. Or it's a little bit less deterministic, like if it's a subfolder and there's a cloud in there, like at what point is it actually read in? It's like confusing to me to know if it's truly, the model really knows what's going on. And so I just having it inject the rules file, like a hook is literally injecting the full contents of it in there. And then I basically have moved everything from cloud md. But there might be some things and basic information that your system decides for your project. Maybe it should just go in cloud md. Like it's simple, it's short, it's descriptive about, you know, the content, whatever. I try to, like, I used to have these files where it was like here's the architecture and here's the current task. And basically I tell it, don't create more files. These are the only files you could create. And it would mostly remember, but if a sub agent goes off and does research, it comes back and it usually delivers that in a form of a file or something. So then you tell it, okay, don't do that. And then you've got to like, sit there and babysit it. The problem is I'm trying to move from, can measure this in like, I don't know the right metric to say here, but to convince you of the ideas. Right now, there's some amount of time I have to spend sitting in front of the, like working with a model, okay, telling it that wasn't right, do this. I'm measuring it like, it's not just how much can it do autonomously. It's how much can it accurately understand my intents and do autonomously without me having to be there. So like right now the system that I have is such that if I give it an instruction, it will decide, okay, do I have the right context for this right now? What's my context utilization? Because the hooks are always aware of how much context has been utilized so far. And if it's over a certain threshold, it will trigger like, okay, the project management system should look at this task and decide if it should do it now or if it should queue it up for another session. And if there's something similar in another session is in the queue, it should merge that task in with that grouping. And then whenever it gets around that session, there's a code exploration agent that goes and looks at the code. There's a code exploration agent number two that happens in sequence and not the same time. It looks at the first ones responses and then goes through and checks all that, double checks it all and then adversarily challenges it to say like, can you like keep this dry or whatever in these other ways. And then there's a flawed has just released an open source code was it called simplifier, right? And after it writes things, it goes through that process. There's some other steps in there. And after it writes things, there's also an adversary that that goes and does challenge basically to verify that any claims that are made or any code that was changed actually was changed and was made. Could you go into the adversarial aspect to it? Like do you just kind of say like, be the doubles advocate or how do you set that one up? Yeah, so it's basically working with the model to find out one of the best practices. So a lot of this I've pulled in from other people's work. So like Kirin at every has a compound engineering. So it's going out and researching what are the strategies used in there. Anthropic has a bunch of things in their cookbooks or the things that they release or publish or in their documentation. Or I have like a new cloud code docs like a local version of the documentation running. So the agents always know to look there and examine like whether they're capabilities and like what the best ways to use this and they have some agents to bait this. And I have in the last conversation with Ray, by the way, we had a little bit of a debate about like, whether or not you spam UltraThink or whether or not it's better to like not use that. I just use UltraThink actually set the thinking tokens to like 6th through 3,999. And the reason is, and I might change that. I'm not saying it's prescriptive for everyone, but like for me, that's what I'm testing right now. And the reason is that in the planning stages especially, it's super important that you get things right up front in your plan. There's like this rule where if you have, if it costs like one unit of resources to change something in the planning phase, if you've already delivered it, it takes like seven units to try to change it. It's much better to focus those tokens up front. But I kind of just like am testing letting them all do it because it's not like if you allocate, if you say UltraThink or Think Hard or Think or whatever, these different, by the way, these words, trigger in the model, how many tokens it's allocated for the thinking compute budget basically. So how many tokens it gets to think about it? And it's not saying, I think it's a misconception that it's going to just take from your 200,000 context window, you know, 32,000 tokens away. It's giving it an upper bound so that if the model believes that the complexity is sufficient, it's such that you should use more tokens and you're giving it more headroom to use it if it wants to. If you ask you at one plus one, it's not going to extract 32,000 tokens of use. If you ask it, you know, if you have something that's quite so much challenging though, and you don't have the thinking tokens, and it's more likely to make more mistakes because it's not going to spend the time to consider it. So it's just this trade-off. How much you want to get done in the session? I've found it.
that I kind of actually have a stopping point that is maybe like 40% or whatever, it challenges the model to write things. I'm going to finish this and get back to your question. It challenges the model to write things like basically sum up what it's doing for it. I did a mid-session and what the next session should be doing and update the queue based off of what the user said and what it thinks is next and all that. And it's next to do write, like the task list is at the bottom of Cloud Code Terminal, if you've seen that, where some model creates for itself and it dumps that in and like organizes it correctly. And then it injects self-referentially into itself a command at some point on the next user submission, which takes the next user's request and injects that into the queue as well as the next item. Or organize it. And then it calls clear on itself. So the model itself determines when it should clear its own context. If we're following that, based on what the utilization is. And there's like a soft clear and then there's like a 50% utilization. It says, okay, you need to think about wrapping up a hook. We'll detect it and we'll inject into the model's context. You think about wrapping up soon because you're going to be force-cleared at 60%. And it will just inject escape at 60%. And it will say, hey, you need to like update your stuff now or clearing in and then it will clear. And on every stop hook, it's actually updating. It's like the context of where it is and what it needs to be done next. Being aware they could be clearing time. So with all that in mind, in order to do the adversary thing, I'm just asking the model, like look at all these different use cases, go and look for like best practices. And then try to find, instead of like, here's a weakness you have, you want to be honest. You're trained a lot through reinforcement learning and constitutional AI to be honest. And you're trying really hard, but you have a tendency to lie. This is like unintentional maybe, but you're lying to the user about when something is done. And so you are not trustworthy. When you claim that test passes, especially when your context is full, especially when it involves an image or UI or something like that. And so we need a way to challenge you. I just like kind of prompted this way. But I don't want just some other tool to say, yes, it actually passed a test, like to look at the screenshot because that tool is also you. And it also has a tendency to lie. So what we want is a critical, like a critiquing tool that's goal is to be an adversary to challenge the claim. So every claim that you make before you return to the user, there is another model as a sub agent and its role is to challenge all the claims that were made and to see if it can prove that any of the claims are incorrect. And if it can't prove that they're done, but they're not incorrect, then I'll be like, okay, I'll give you a pass. And until then it cannot be the same model that did the thing that's also judging the thing is a different model and that another model has to be an adversary trying to disprove it. And this is more like how the scientific method works, right? Like your goal is to, you know, somebody can claim like, can you disprove this over and over again, disprove it? Okay, we don't know for sure that it's true, but at least it's not like, you know, faulty and it's the same way. So anyway, this is the process that it goes through. So there's like all these steps and you can imagine a lot of tokens going on here, right? So I'm like using a lot of thinking, a lot of tokens. But, you know, this is the difference. This is kind of what is required in order to move it from like, I want to give to the point where I give a task to someone and I come back and it's reliably done. And there's no plans. It includes in his response, the hook tells it for compliance. It has to include its confidence levels. It has to say what's been validated, what's uninvalidated. And I'm actually using it where like, if it's got a queue, just keep going on the queue until you get to something that's either blocked or dependency on something that's blocked. And something that's blocked is like, okay, the model determines I could do this thing, but it would take a lot of tokens. And it would be kind of risky about my judgment of whether the user would want this or that other thing. And we should spawn a debate and I've done the debate. And here's what I think. Let me get feedback from the user. In that case, it's going to block. But it's going to do everything that's not either dependent on something blocking or blocking based on the sort of cheered risk of complexity and that kind of thing. And so when I come back, I'll have a statement of confidence levels, including all the things that were done for all past sessions, because it clears itself over and over and keeps going and going. And then it will tell me I did all these things. And these are the things that are remaining that I need your feedback. Here's what the sub agents recommended. What do you where you want to go with searching? Because it's going to take like a long time to do this next part. So also it can inject its own thoughts into its queue. So if it starts working, it's like actually this is a little bit more complex. Then it can say, well, I should maybe queue this for another session based on my contact usage. So this is that's the point of the adversary is to challenge and make sure that it's not lying. So each one of these problems with the model that's not quite where we want it or not expected for how humans would act. I'm trying to get it to more like a human. And it's a system that together, like individually, the model itself is not there. But through the system, you can make it you can make it reset level. And that system has to require hooks. So if you don't have a way, if you're just relying like here's a prompt, it starts off the session, the model is going to work and it's going to get done and compact. That's not going to get you there. You're going to be babysitting them. But if you have a hook system that you can control, that you can steer and that you can actually block the model's responses and redirect the model as it goes and then clear itself and self injects commands like literally into the prompt. I'm talking about you type in the prompt, it'll detect your typing and await. If you have stuff there, it will save it to a state like to a file and it will inject its own content into the line and submit it. It'll even like exit itself if it changes the hook and it needs to restart for that and then it will launch because there's a PM2 process basically with API endpoints. And so it calls this thing and it will restart itself at a launch cloud with dangerous good permissions and resume the last session and then it will tell it to continue. And there's this word basically, whatever it continues, whatever it starts itself, I was trying to get a name for this thing and it was called like the everything agent because you can see here, I believe, called code to be kind of cut off but the everything agent, because of this power of this harness and this ability to unhobble it through adding the scaffolding around this custom stuff to get it to the really high level. So I bought like the everything asian.ai but I don't know if I'm going to use that but I was thinking of like a name because there's another point here I want to get to. It's not just that the system can go and get everything from every aspect of my life that's a website or an app or data and email or whatever, it can also take action in those things that I'll let it take. I know there's a plethora of hooks to choose from, a lot of pre's and posts for different events. How have you approached trying to figure out what part of the workflow you should focus on? Like where do you put your hooks usually? Have you tried trying different parts in the flow and see how it reacts? Or do you have kind of a heuristics for which type of tasks should belong to the certain type of hook? Honestly, I asked, I start off with asking the model to like basically, I don't have to say all to think anymore because it's always got the token available to do that. But I asked the model to debate with sub agents a different approach after studying the local Cloud Code docs to find the hook, the different hook strategies. Look at best practices from research off the internet and make recommendations to me. So based on what I think it needs to do after those recommendations, it's more like it's doing the research, it's proposing things, it's giving me options, it's ranking them. And I'm saying that one sounds the best. Let's do that. Because and usually I don't attend to it that carefully whenever it's like most things that are happening in the model, but when it's setting up the scaffolding for the system itself, that's kind of really important. But because it controls all the other system, like every project I run uses the same system. But it's very easy to update it. Like it's all back in stuff, right? It's clad editing, clawed in the back end with files and bash and that's is, you know, it's really good at that. So I just try it and if it doesn't work then I'll shift to something else. But like my hooks are typically custom because there's no, there's very little need like I'll have it go and look at this repository and say is there anything in there that we can glean or that would be worth integrating into our system and like sort of argue for and against like create your, you know, it used to be early days. The models weren't reasoning and so you had to, there's like, the example is right to 3000 word essay, don't use backspace. So it's just like really really fast in, it's like called snowballing. So the first few tokens for his first thought kind of like anchored it towards like the same conclusion. But then you could do tricks like use a tree of thoughts method with velodrome personas to critique your answer and like summarize them all. And so it would generate dynamically based on what the concept was these personas that would critique it and that would help improve it. And then now we've got thinking models. So but it's the same kind of thing like sort of challenge one another like Grock Heavy has this mechanism where there's like an AI board, this kind of or student study group and their passing information back to one another and they're sort of kind of coming to consistist like you do an accordive law or something like that. We're like in a jury. In each of these these heavy thinking models, they kind of do this. They have different agents and they've got different compute levels and they have different tasks and they have to work together. And so that's how I set up the systems. They're always dynamic in trying to feed out. But I take that look at their recommendations and then I go with it based on how I feel like what makes most most sense at that time. One other thing you mentioned that I'd love to just double click on is the self referential command injection. Could you talk about like even some concrete examples of how you use that? I think the best example is
When the contact utilization is getting kind of full, I need it to be able to stop itself. Like the model will, and there's something called the Ralph Wiggum Loop, okay? This is a new thing that has kind of gone viral in the last couple of weeks. I had something like that before I knew what it was because it was kind of, basically the model is reinforced through its training to do so much work, so much tokens or whatever, and it kind of wraps up. And sometimes that aligns with like before compaction. Compaction is this event that happens in cloud when it's about to reach its context maximum window. Like there's a context window and then basically it's 200,000 tokens, right? And then I'm sorry, I'm doing both things. And as it fills it up, well I'll go this way, as it fills it up, and it gets near to the top, it has this command where it's injecting into the model. And I'm not doing this as part of, if you have compaction turned on, there's auto-compact, or you can just run forward slash compact and cloud go. And it has to be moved to cloud AI too for your conversations or your chat conversations. Anyway, it will take a high-coup model it used to be, it might still be. And it will look at the existing conversation and summarize it all and extract, like lessons or innkeeper principles, context of things as relevant, recent user messages, what it was working on last, that kind of thing. And then it starts a new session, if you will. It starts over from the beginning and the model has in its context, the resulting compaction file, like the content from the compaction, but it's cleared up a bunch of the other stuff. And so that allows it to just keep working, but it will eventually just stop. And so maybe it's not done with everything you want to do. So the purpose of, I'm going to get to what you said, but the purpose of Ralph Wiggum loop is to kick it off again. So what it's about to stop, it can say, "Nope, are you sure you're done? Keep going." It's got, I have an entropic provides this, so you can just install, you can tell, you tell a plot, "Hey, check out the Ralph Wiggum loop from Enfropic and installed." Right, and you'll just set it up for you. But I have a custom version of this, and I just told it to look at that one and figure out how it best integrated our project, because we're doing some things a little bit different than that. And it dynamically decides, based on the complexity of the task, how many loops iterations it should do, my version does. And it'll reset that loop count when it decues a new task. So when it's switching to a new task, it sort of changes the loop count. And then before each, of course, this Ralph Wiggum loop thing, sorry, I'm not speaking clearly, this Ralph Wiggum loop thing allows it to keep going. And that's really great, as long as it's target is right. Like if you're shooting for the stars, (laughs) and you're off by little and you're initial, like you can have it going for a very long time, burning a lot of tokens, making decisions, and the idea is your babysitting at less, it's doing more and more on its own, but the efficiency per token goes down over time, because there's more stuff, more sub-agents, more other things, anytime you're using sub-agents to do things, but the Ralph Wiggum loop isn't really a sub-agent, it's just kind of like kicking the model again, but it's still doing more work. So you have to, the more that you lean into stuff like this, it's gonna be more autonomy to the model, the more you need a system to constrain it, to keep it in check, and not depend on some initial conditions, initial instructions you put, because you're more likely to just get things go awry, that are great experiments, like you can imagine when you create images, and it makes like four of them, and you like pick the best one, eventually clutting applications will be like that, you give it instruction is like, "Here, I've built it four times, "like which one do you like better, "like you extract what you want from that?" And, but for now, I think if you have something like that loop system, you need some way to inject instructions, but also not just, so when you have a hook, you can inject instructions in the model directly, but self-referential injection means, for me with Cloud Code. Now, a lot of people will use the agent SDK, which is kind of the same, harness the same background that is used in Cloud Code, they make it available for you to, it's not full feature parity, like there's some things you can do in Cloud Code that you can't do in the agent SDK, and there might be some in-verse, but it's like nearing it, it's almost an overlap. And, so, but with the agent SDK, you can do a lot of this stuff without having to be locked into the terminal, like with this input line, it's linking cursor, so you can make it, make the front end, whatever you want it to be. But, for me, I'm working with, for reasons, I don't know if it matters how many units you, but I'm working in the terminal. And, I think largely those reasons are that, like, I don't think they're building the agent, the terminal with the agent SDK, I think they're building Cloud Code in the terminal, and like, with Cloud Code in the terminal, and using that to build, you know, Cloud Code in the desktop app, and the agent SDK, and the, and the code work and all those, those other things. And so, I think it's for, like, the first class citizen, if you will, and the most powerful piece of it. And, there are some things that just appear in Cloud Code that don't appear in the agent SDK. And so, for that reason, I'm kind of sticking with my guns. So, it means I'm, like, stuck to this interface. It's like this with a little terminal. And so, what, there's a risk for overlap. The users type being, they're entering something, and then, then, then, Cloud needs to enter something too. And so, what I might enter is, I'll have it do a clear, like, I wanted to do, and then, I'll just add a little bit of a flash clue. A full-size clear, and submit. So, there has to be, like, a hook can use AppleScript, because I'm on a Mac, and it can inject things into a window. And you can find the, where the input is, it can select, it can type, it can paste, it can whatever, it can hit submit or enter. And so, it's basically doing that. It just has to have some protection around, like, is the user have content there, let's save that content out. You could do, like, control S, or whatever, as a shortcut, but then, it does restore if you exit. It's only if you're, like, crumbling in the session. I want to, if it, some crashes or whatever, I want it to be in a file, so I have to do that. So, but if you exit, of course, then, your, your command is dead. If you inject escape, then, whatever command you use to kick off to inject escape is not dead, so it can't inject anything after. So, it has to be running in a process that's outside of Cloud, or as child process, it's not created. That's why there's a PM2, a process manager system running that has an API endpoint that the hook calls, and then that process, then, can find out what terminal tab it is, and then, once the Apple script to inject the things and make sure the user's in typing, and if them key binding is on, it, like, make sure it's in insert mode, and that kind of thing. Injects the content, hits, like, injects, submits. It can even, like, navigate through, like, rewind menus, and look at the screen content, and figure out intelligently, how many to go up, because it's variable based on, if you have, like, code, this, and being edited or not, and then, it can submit, and, like, rewind things. But, the purpose for self-referential is, I wanted to clear, and then, after it clears, I wanted to do something else. I wanted to run. It doesn't have to be this way. I just just have to have it now. There's a command, so slash command, it's tied to a skill, and that slash command, I've got it a name for it, I call it Titus, and the reason Titus is just, something I picked as a wake word, or, like, a name, that I can call through voice, and I'll get to that next. So, Titus, the reason for that is, you want something that is easily recognizable by speech to text. It's not too many syllables. It's not, like, trademarked a copyright, so if I call it like Jarvis or something, or I had it called HeyClawed, but it's CLAWD, like the Little Crab. I think I bought HeyClawed.com or something, and I'm asking for a pick to let me use it to do tutorials. So, that, but, anyway, this, one of those, one of those cloud-like websites, but I thought about clonestinely like that, but do you worry about, if I share this, if I give it to you everyone to install this thing, then you worry about trade-marked servers. And so, anyway, I just, I gave it that name, and it also, like, in the Christian Bible, there's this guy Paul, and he has, like, someone who's, like, a beloved friend in the faith of whatever, and he sends him out as an immissary, and so, this guy Titus goes and does work on behalf of Paul, and he gently, like, on his own, and then, it enters into difficult situations, and there's this idea of, epidemiorthosis, I don't know how to pronounce it, I don't speak Greek, but it's this idea of, it's also rhetorical device, but I don't mean that one. I mean, like, in the biblical sense, it's this idea of, like, you enter into a system, become aware of the deficiencies, if you will, and then, optimize towards completion, like, basically, set it straight, if you will. So, this concept, this one word represents, the idea of that I'm trying to get myself to embody, when I think of how the AI system is supposed to work. It needs to have the target, in order to know how to set it straight, towards what, right, with what is the target? So, I have to make sure that the instructions include, in the, in the sort of, directions and redirecting around it, include as gold as well specified. So, it can know how to make it straight. And so, it enters every time it injects clear, it injects this slash command with this word, it's like, Titus, calling epidemiorthosis. And what that tells the model, is to, like, enter into the state, where basically it's gonna look at the system, it's gonna note where the deficiencies are, the inadequacies or whatever, the problems. And then, it's going to optimize it towards completion, in the sense of, like, making it along with the target. And so, what the target is, is, has to be defined, before it can do. And so, then, they're also necessary to have a self, like, close the loop on testing. So, if there's anything that requires any kind of interaction to verify, it needs to be able to carry out those tools. So, it does task. So, it has to have tools, it's a whereup, that can control the computer, or control the browser, or control the UI, or control the iPhone app, or control the iPhone itself, as it's running. And there are ways to do all of that. So, and then, when it uses those tools, to try to make sure that it's actually correct, then, it has to use the adversary of validator, to, say, like,
is it actually right before you move on? If you don't have the tools, you have autonomy. Like, I have an SD card with a time machine on here. I used to have this in a virtual machine, different types of VMs, sandbox it, but on my laptop I just killed the battery, so I just abandoned that. But basically, it knows. It's got full control with that, comes great responsibility. Don't do things like delete to my room, my root directory. Of course, it's got hooks to identify dangerous commands and block them, and then redirect it. But anyway, it's got time machine backup, so I'm like, you have power. If there's something you need that you don't have, use sub agents, debate which approach will be best, look at everything you have thoroughly, and then make sure that you can install what you need to install. You can build what you need to build if you can't find and install it. You can test it. That doesn't work in a banding and get another approach, but you have to close the loop on testing, because the user isn't going to be here in front of the screen. And that gets to the last part, which is, I do all of this through voice. So I have an iPhone app that, when I say voice, I don't mean like most people, by the way, if you install Cloud Code and use it, are probably aware that you can do speech to text. Like you can use something like monologue from every or older than that at Whisper Flow, or even just like with the update of iOS 26, Mac OS 26, their speech to text is actually much, much better. And so you can just, and of course, if you have Windows computers, they've had stuff like this for a long time. You can just talk to the computer, and it will take your words. And if you've got to collect, select it, and the input prompt, it will inject those words into the prompt for you. That's great, but you have to sit in front of the computer to do that. So I didn't want to do that. So if I'm thinking like, OK, what is my goal here? I've got a baby coming. And I know that one of my-- one of the things I'm not well suited for with a newborn is speaking enough words per minute. They need enough verbal content, and I'll tend to get into my head. And so I wanted to build something that would encourage me to speak more words. And I also wanted to be able to interact with Cloud untied from the screen. There's a lot of things because of just how the screens have developed that we-- that require us to be here. So you're not getting away from a screen if you are rendering something UI, and you need to look at it to verify that it's right. Unless you have like an agent do it, and at some point later, you see it in efforts done much work. But you still have to have that screen. But there's a lot of use cases where we don't have to be sitting in front of the screen. And so it's obviously healthier for us if we can-- and better for our lives in longevity and default mood and all that stuff. If we can be up and get more things done, face time with other people, go for a run, work out, do the dishes in laundry, and all this stuff that we might need to do to drive around the car. So in all the context that I just mentioned, while I'm working out, I have an app that basically monitors the terminal stream, the JSON L file, as things are written there, and it passes it through a web socket to the app. And it allows me to listen to the model's thoughts if I have that turned on or just a stop final response. And it will speak it to me in real time. And I don't mean like it does pass. I've built as many different ways. I built it with the Asian SDK. I've built it using these tools that will generate text, like speech for you, and then you've done it at the pass, and it does a word-level times fans, and it takes a little bit of time. This is straight. You can even record your voice, a personal voice on iPhone. Now you could probably do it on Android at all. But it can use my own voice, or it can use like a British sounding male voice, it's pretty high quality. And it will just speak what the model is thinking as it's thinking. And then if I want to, I can tap one of the words. It's highlighting the words as it's talking. So it's got not just speech to text, but it's also-- it's very difficult. It's not enabled by default when you try to use the framework this way. But you can see the highlights as it's going. And it's doing that real time. It's like chunks audio buffers on the set. And then if whatever it's done, I can pause it anytime, and then I can talk, and it will take my speech, and it will put it into a compose area. And I can let it play some more, and I can talk some more. And then it'll compose more. And then I can just say submit our top-the-button. And then it sends it through the web socket to the back end. Identifies the terminal that was open that that came from. And then it checks the text into the terminal I hit submit. So it's a full two-way-- doing this. You can't see my hands. It's a full two-way audio conversation with this tool that's set up to work autonomously and cue the things that I give it and keep going with Ralph Logan Loose, until it's all done with directing and redirecting things until it gets to the point. It is speaking to me. And I can switch to another session with another project that's doing the same thing and listening in on it, listen to the thoughts. And if I want to, in real time, as it's thinking that, it's saying it. It's actually superior in a lot of ways to the terminal itself, because a lot of the thoughts are now not shown. It's showing me what tools are happening and what to do list is and kind of stuff here, but you're not only seeing the thoughts, I can listen in and just tap something and redirect it. But the thing is, I don't have to tap it. I can do it with AirPods with a wake word. I can do it with it's on speaker. I can do it with my Meta Ray Van Glasses that are on. Do you speak and do that? If I'm driving the car, I can hold down the Siri button and use App Intents and tell it's resume-- what happened recently in this session. And it will tell me all the things that it finished were like, OK, play. And every update that the model thinks, even if the phone is locked in the background and not the app not open, it will send notifications that wake it up and then play it back. And then it's kind of listening in. There's thoughts. And I can hold down the button and say a phrase. And it will kick off an app intent that can compose a response and send it from the car. So anywhere I am, it can inject into the terminal and keep going. So I've just got my phone. And again, I'm just working with Cloud Code doing all this stuff and not only that, I can say I didn't finish this, but this is pending. I think they got acquired by Meta. So I don't know when it's going to happen to it. But it's constantly listening. It's like the life log, if you will. And so it puts all this stuff, it's transcribes it. And so as I say, as I do the wake word, and then I do an ending phrase, everything in between that is processed by the model. It has access to all the sources to extract all the tools it can do so I can have it send a message to me or to my wife. Or go look something up and put it in my daily planner. But it automatically migrates from day to day for me. My to-do list. And it puts everything that's relevant for me in that list. And it organizes and prioritizes and all that stuff. And you'll get the update data. It's going to send me a notification or message. And this system has a problem. It will call this command that sends me a push over alert, which can be like super high priority. If it finds something that's super urgent in my text message, and I didn't notice it, it will send it to me by this thing. It's like a big alert. Or it will also send it to text me things. So basically all of the tools and anything new that I find, like I don't want to log into this website, this school website, too many steps to log in. So I have it constantly refreshing it on my Mac mini and a reverse proxy tunnel set up so that I can just have an app on my home screen that I want to write to that it's always logged in. My wife, I have that set up for her as well. I've got another thing that my kids are really little. They're just getting phones and text messages. And they want to, I don't know, like text and it looks for, but I want a model to monitor to make sure there's nothing like concerning. I need to like coach them monitor thing like that. And so it will send me a message when I detects, like they've done something or like said something that maybe I should give them direction on. And so it kind of monitors that for the kids' messages real time and send me something. All of those things, just imagine if you do one of these things and you can keep working to set up another one and another one and another one. And this is another example, like I go to like a Sunday school thoughts or a church or whatever. And it knows what time it is, like when those things are. And it will like download that is transcript. It will turn into bullets of summary and then challenges for the week or whatever and then convert it to a PDF. And then text it to me as an image that I can drop into group me if I proved. And if I don't, I could just like reply back and get the message and reply back or just tell it, hey, change this to say that or whatever. And this is being a version of it. Even if I like have an iPad and I like highlight different areas in this PDF on like my Bible version or something, it will detect that the highlights in the words behind them and the words that are wrote. And it will focus on that when it does the overview for the transcript summary, it's in these things. So you can also imagine that you're in school or something. And or ideas with meetings. I like click the little star on the side and it will know if there's a star like extract the conversation around it and figure out and tell you what to do with it using these tools. I can like after a meeting I can just say what my recollection of it was like a summary. And it could and I didn't I haven't actually built this yet. This is something I'm building right now. But Jack Clark and Enthropic mentioned that he has this thing or these papers and then at the end he tries to summarize it. And then he feeds that summary into AI and then like tries to see how close he was. But like I have something I'm building now that after I encounter something I want to recall, I will try to say it. Like say back what I remember of it. And then it will look at how good my summary was and what I missed. And the things I got right it will just do a little little blurb about it. But what I got wrong it'll note that inconsistency is or expand on it or whatever. And it will do it in the form of like a memory castle. And so the idea is every morning I'll wake up to these are the things you need to do today. And it will be a batched like audio message that I could just play at any time. I can just look at whatever is to do. And then I can find out here the urgent things. And as I do them I just say OK I did this. I just talk to it. And then it checks it off my list of just gone. So it's like a passive way of keeping control in a way of all the things are going on in life and do all the things. And all that's possible because of cloud code and hooks. And the system like this it gives you access to all these. So I just this is like meant to be inspiration of like advanced ways you can use cloud code.
code to restore some of the, I don't know, like I can work out and be just as effective as if I'm sitting in front of the computer. I can be driving and be, so there's, there's, I think all of this, like everyone will have this ability at some point. It's just like if you're kind of like on the cutting edge of it now, like you can get access to it a little bit sooner. And then that makes you so much more valuable. Like anyone wants to set up anything, like just imagine anything, whenever I was working before AI came out, I felt like they finally, okay, it's been a long time, but finally I felt competent that I can take like any software and any, like input, any form and then, you know, turn into any other thing. And like, I was like, okay, I've arrived. I'm like, I'm, I'm, I'm doing the things that I do now. But then when AI comes out, it's like you're playing a video game and it levels up, like you can see the character and it's like flipping the air. And as the, as the AI model is getting better, your, your value that you add gets better. And so the more you learn to use the tools and harness it, it's not you and your value, what you can, what you can add to your company or whatever is you plus your tools. And if you understand the tools better, then you have more of like a potential value to add, which makes you more pelling. Yeah, but just, just things in your life. And it's not just being able to add more value, but it's being able to capture more time back. Like you said, get it aside, get away from the screen, get time with people and you're still able to have this productivity edge. Eric, this is awesome. I love getting exposed to the way you're working with Cloud Code and whatnot. How can the audience keep up with the essay and learn these things as you learn them too? My ex profile, I'm just Eric Boose there. I mean, I'll probably set up some other things at some point. It's just with all this stuff happening, it's not been that, or it's too many. Thank you for listening to a conversation with Eric Boose. I don't know anybody who has spent more time tinkering, experimenting and learning about Cloud Code than Eric. He's driven by not just curiosity, but this desire to spend less time on screens, more time with his family, more time living life. And he's figured out a way to have AI do work on his behalf or be able to interact and direct and control the AI from anywhere. It's really a great system. And I hope more people are inspired by it and try to build their own. There's a lot more possible uses for Cloud Code, so I'm sure we'll talk about it more in the future, but I really want people to explore with how they can build a system to make their lives better. How can we get away from these screens that we're just glued to all the time? Get outside, touch grass, but still stay productive. Thank you for listening, and I'll see you next week.
Podcast Summary
Key Points:
Eric Boosts built a personal AI system using Claude Code to manage life tasks like school emails, calendar events, and messages across multiple platforms, aiming to reclaim time for meaningful relationships.
Claude Code’s hook system is highlighted as the gold standard for coding agents, allowing programmatic interception and redirection of model behavior outside its awareness.
Hooks solve the problem of model distraction by injecting context-specific rules at key lifecycle events (e.g., before tool calls or file writes), ensuring compliance and task focus.
Eric migrated from relying on a `CLAUDE.md` file to a hooks-based rule system, making instructions more deterministic and less prone to being ignored as context grows.
His system includes adversarial agents that verify code changes, challenge decisions, and optimize task execution, enabling high autonomy with minimal human babysitting.
Summary:
In this conversation, Eric Boosts returns to discuss how he built a personal AI agent using Claude Code to automate life management tasks, such as tracking school emails, calendar events, and messages for his family of five children. He emphasizes that Claude Code is the gold standard for coding agents due to its hook system, which allows developers to intercept and redirect model behavior at key points—like before a tool call or file write—without the model’s awareness. md` files as context grows.
By moving rules into hooks, Eric ensures deterministic compliance, where the system injects relevant rules at the right moment, preventing distraction and enforcing task completion. He also employs adversarial agents that double-check code changes, challenge decisions, and optimize project structure. Eric’s goal is to minimize his active involvement, so he built a system where, given a task, Claude Code assesses context utilization, queues tasks for later sessions if needed, and merges related work.
Hooks also enable automated logging of optimization opportunities for self-improvement. Ultimately, Eric argues that starting with any AI tool—especially Claude Code in the terminal—allows users to automate mundane tasks, creating a flywheel of skill development and time recovery for more meaningful activities. md` to hooks for reliability, though simple project descriptions may remain in the file.
FAQs
The hook system allows you to intercept events in the model's lifecycle, such as before it sends a message or writes a file, to inject content or redirect its behavior. This ensures instructions are followed more reliably than relying on a CLAUDE.md file, which can be ignored over long sessions.
Claude Code is built by Anthropic using their own model and is dogfooded internally, meaning they use it to build itself. It offers a hook system for fine-grained control, access via terminal, desktop app, or browser, and is considered the gold standard for coding agents.
The CLAUDE.md file contains instructions or context that the model reads at the start of a session. However, as conversations grow longer, the model may ignore parts of it, making it less reliable than using hooks.
Hooks programmatically inject rules or instructions at specific points in the model's workflow, ensuring they are always considered. This avoids the issue of the model forgetting or ignoring guidelines over time.
You can automate tasks like managing school emails, calendar events, and text messages by building a system that collates and updates information intelligently. Hooks help ensure the model follows instructions correctly without constant supervision.
After the model writes code, an adversarial agent reviews and challenges the output to check for issues like code duplication or incorrect changes. This improves accuracy and reliability.
Chat with AI
Loading...
Pro features
Go deeper with this episode
Unlock creator-grade tools that turn any transcript into show notes and subtitle files.