← Writing

Six weeks with OpenClaw

In early February I started setting up OpenClaw, an AI agent framework that runs persistently on your machine and can be connected to tools, scheduled jobs, and messaging channels. The pitch is that you can configure an agent that does useful autonomous work: monitoring things, drafting things, running pipelines.

I had a specific use case. I publish The Daily Mine, a daily newsletter covering energy infrastructure, data centers, and power grid politics. I also run a database of 78 data center and transmission projects, scored by opposition risk. The research side of both is tedious: scanning 60-plus RSS feeds, monitoring regulatory filings, flagging stories that matter, adjusting risk scores. It was taking 90 minutes a day. I wanted to automate it.

Six weeks later, the pipeline runs at 5:30 AM without me touching it. Last week it flagged a Frederick County, Maryland referendum story and automatically bumped the project to HIGH opposition risk before I saw the news. That was the right call. I would have caught it manually, but later.

Getting there was not smooth. It was a series of small failures that each taught me something specific about the gap between what AI tools say they do and what building with them actually requires.

What I expected

I expected configuration. Set up the agent, point it at some feeds, tell it what to look for, done. I had used Claude through the API enough to know it could read and classify text reliably. The logic seemed straightforward.

What I underestimated was the infrastructure layer. OpenClaw is not a simple wrapper. It is a persistent process with its own scheduling system, session management, authentication, and a gateway that handles communication between the agent and external tools. Getting that infrastructure right, before you write a single prompt, takes longer than the documentation suggests.

The first three weeks

The first thing that broke was iCloud Drive. I had set up an Obsidian vault synced through iCloud to keep notes across devices. The OpenClaw process runs as the same user on the same machine, so in theory it should have access to those files. In practice, every filesystem call to the iCloud path would hang indefinitely. Not error out. Just hang. I spent more time on this than I want to admit before realizing the iCloud daemon itself had gotten into a state where it was blocking all access. The fix was a reboot. The lesson was that cloud-synced paths are not reliable for anything that needs to run unattended.

The second thing that broke was token management. OpenClaw authenticates with a gateway token. There is also an operator token for certain tools. And if you use Claude Code as a subagent, that has its own OAuth token. I learned the difference between these three tokens by having each one fail at a different moment. The browser extension I was using expected the relay port (18792), not the gateway port (18789). I spent 45 minutes on that one.

None of this is a criticism of OpenClaw specifically. It is a criticism of my assumption that setup would be fast. Any tool with real capability has a real surface area. The complexity is the price of the power.

What actually works

Once the infrastructure was stable, the research pipeline came together quickly. The agent runs on a cron schedule, pulls from about 60 RSS feeds including some Google News topic aggregations I set up for local opposition stories, does several targeted web searches, deduplicates against the last five newsletters, and writes a structured research file with story candidates grouped by category.

The classification quality is good. I gave it specific guidance on what I care about: US-only stories, opposition and moratorium actions at the county level, FERC and state PUC filings, data center announcements. It applies that filter reliably. The stories it surfaces are the stories I would have found manually. It occasionally misses something, but so did I.

The more interesting result was the opposition tracking. I run a separate database of 78 scored data center and transmission projects. The agent monitors daily news, classifies signal strength for each story, and adjusts project risk scores automatically. The system has been running long enough now that I trust its judgment on what matters.

What I am still figuring out

Context management. When an agent session runs for weeks, the conversation history grows. Claude has a context window limit, and when you hit compaction, where old context gets summarized to make room, things can go wrong if the history contains content types that do not survive the process. I learned this when a session with extended-thinking blocks got compacted and the API rejected the modified history on the next call. The fix was a fresh session. The lesson was to watch context growth actively and not let sessions run too long without pruning.

The other thing I am still figuring out is the right level of autonomy. The agent has access to a lot of tools: file system, web search, the ability to run shell commands, send messages. That is appropriate for an automated pipeline where I have defined the task carefully. It is less appropriate for open-ended work where the agent might decide to do something I did not anticipate. I have gotten better at scoping tasks tightly and reviewing outputs before they go anywhere external.

The honest summary

The pipeline works. Research that took 90 minutes now takes me 15. I review the draft, make edits, and send. The time I saved in six weeks is already worth the time I spent building it.

But the value did not come from the AI doing something magical. It came from me knowing exactly what I needed, having enough domain knowledge to write good classification prompts, and being willing to debug the infrastructure until it was stable. A generalist picking up the same tools without that context would have a harder time getting to the same place.

That gap between what AI tools can do and what most people can actually get them to do reliably is real. It is not a permanent gap. But right now it is where the advantage is, and it belongs to whoever is willing to do the infrastructure work.


I publish The Daily Mine, a daily newsletter on energy infrastructure, data centers, and power grid politics. The opposition tracker mentioned above is live at thedailymine.co/opposition-tracker.