I’ve been running a personal AI agent named Sun on my personal MacBook for several weeks. It manages my morning news briefing, auto-categorises my Notion inbox, tracks my portfolio across four markets, and every evening at 7:30 PM — without fail — plays Hanuman Chalisa on the Sonos in my living room so my daughter Anaya grows up hearing it. This is what that actually looks like.

telegram cloud photo size 5 6125307196363968331 y

The Morning That Made This Click

It was a Tuesday. I woke up, made coffee, and opened Telegram. Waiting for me: a fresh Naval quote on leverage, a summary of the top three Hacker News threads, and a curated briefing from smol.ai’s overnight digest — all formatted cleanly, no noise. I hadn’t written a single line of code the night before. Sun had run at 8:30 AM while I was on my daily stand-up. That’s when the setup stopped feeling like a project and started feeling like infrastructure.

I’ve been tinkering with this for weeks. It started with one cron job and expanded into eight scheduled automations that collectively handle things I used to either do manually or just not do at all. The tool running all of this is OpenClaw, a local AI agent runtime that my agent “Sun” lives inside. The interface is mostly Telegram. The server here is my personal mac, although i did bite the bullet and succumbed to macmini, which was a separate project for my NAS which nicely coincided as an openclaw agent for my wife.

Morning Briefing: Curating What Goes Into My Head

The daily-naval-news job runs at 8:30 AM without fail. It pulls a Naval Ravikant quote, scrapes the smol.ai morning briefing, grabs the top Hacker News links, and packages it into a Telegram message. The interesting engineering challenge here was the curation layer — I didn’t want every HN story, just ones relevant to infrastructure, AI, and capital allocation. Getting the prompt right so Sun filters with taste rather than ranking purely by upvotes took a few iterations.

The deeper reason I built this is a philosophy thing. What you read every morning sets the frame for how you think all day. I used to start with email, then Twitter. Both are optimized for engagement, not signal. A Naval quote plus three curated tech stories is a deliberate bet on a different mental diet. It costs me zero willpower now.

Notion Inbox: Knowledge Management at Scale

I save URLs obsessively — articles, research papers, tweets, product pages. The problem was always the second step: categorizing them. My Notion database had an inbox that grew to hundreds of uncategorized links. The notion-daily-categorization job runs at 11:30 AM and solves this.

The tricky part wasn’t the categorization itself — it was handling ambiguous URLs. A Bloomberg piece could be finance, macro, tech, or geopolitics depending on the content. Sun has to actually fetch and read the page, then route it. The failure mode when this was half-built was almost funny: every article about GPU supply chains got filed under “Shopping.” Getting the taxonomy right and testing it against edge cases was genuinely tedious work. Now it just runs.

The Memory Layer: Teaching an AI to Actually Know You

This is the most experimental part of the stack, and I’ll be honest — it’s still a work in progress.

OpenClaw ships with a built-in memory system: a MEMORY.md file and daily logs that Sun reads at the start of every session. That’s the structured layer — facts and preferences I’ve explicitly written down. But I wanted something more fluid, so I layered mem0 on top. Two midnight cron jobs handle this. The mem0-housekeeping job verifies that the Node.js scripts connecting to the mem0 store are healthy. The midnight-context-memory job does the actual work: it reads the last 24 hours of Telegram conversation, extracts insights and decisions, and writes them back to mem0 as semantic memories.

The goal is an agent that doesn’t just know what I asked — but knows why. If I ask Sun about ETF rebalancing in February, and I asked a similar question in November, and I mentioned risk tolerance in passing in December, I want those three signals to compose into a coherent answer. We’re not fully there yet. The recall is good; the inference across distant memories still needs work. But the architecture feels right.

Citibank Statements: The Finance Automation Nobody Talks About

On the 13th of every month at 9 AM, the citibank-statement-checker job wakes up, looks for a new Citibank email in Gmail, downloads the PDF statement, parses transactions, and runs them through an AI categorization layer across ten expense categories — Subscriptions, Taxi/Transport, Travel, Restaurants, Groceries, Shopping, Healthcare, Entertainment, Utilities, Misc — then syncs everything to Notion with merchant names attached.

The interesting challenge was PDF parsing. Citibank’s statement format isn’t designed for machine consumption. The line item extraction required building a custom parser that handles multi-line descriptions, foreign currency conversion rows, and payment credits without double-counting. Once the parser was solid, the rest was straightforward. I now spend zero time manually entering expenses. I look at the Notion view once a month, spend five minutes reviewing, and done.

The Sonos Ritual: Automating Something Sacred

Every evening at 7:30 PM, my living room Sonos speaker plays Hanuman Chalisa at volume 25. This is my favorite automation in the entire stack — not for technical reasons, but for what it represents.

My daughter Anaya is young. I want her to grow up with that mantra as ambient background to the evening, the way some kids grow up with particular songs woven into the fabric of their house. I don’t want to remember to play it every night. I don’t want it to depend on my mood or whether I’m home at 7:30. I want it to just happen, reliably, like a clock.

The engineering challenge was getting Sonos CLI talking to Spotify correctly. Sonos’s API for third-party integrations is finicky about authentication tokens, and the first few versions would silently fail — the cron would run, return no error, and nothing would play. Debugging a silent failure in a speaker system is a particular kind of infuriating. The fix was adding an explicit health check after the play command: Sun calls the Sonos status endpoint 10 seconds later and alerts me on Telegram if the track isn’t actually running. It’s been solid for months.

OpenClaw Cron Dashboard — 8 automations running daily
The 8 automations running daily on Sun, my OpenClaw agent

The Portfolio Report: Curiosity, Not Anxiety

Every Friday at 4 PM, Sun sends me a full portfolio update: spread across three markets and multiple instruments — all in one Telegram message with week-over-week deltas.

I want to be clear about the philosophy here, because I think it matters. I’m not a trader. I don’t believe in obsessive tracking. When I buy an ETF or a mutual fund, I’ve done my research, I trust the index or the fund manager, and I’m not going to second-guess it every day. The weekly report exists out of curiosity, not anxiety. I want to know roughly where things stand. I don’t want to be refreshing a portfolio app at 11 PM.

The interesting technical challenge was aggregating across multiple asset classes in three different markets with four different data sources. SGD debt instrument prices, Indian mutual fund NAVs, and US equity prices weren’t designed to talk to each other. Getting currency conversion and normalisation right so the numbers are actually comparable took some work. The output is clean and takes me 90 seconds to read.

The Self-Healing Layer: Infrastructure That Maintains Itself

The daily-auto-updater runs at 4 AM and does something I genuinely love: it updates all of Sun’s installed skills via the clawhub registry, runs a health check on the OpenClaw gateway, and messages me on Telegram with a summary of what changed overnight. If a skill update broke something, I know before I wake up.

This is the compounding value of treating personal tooling like production infrastructure. A system that audits itself and reports its own health is a system you can actually trust. I don’t lie awake wondering if something silently broke.

What This Actually Unlocks

Here’s the thing nobody talks about when they write about personal productivity automation: the value isn’t in the individual time savings. Saving five minutes here, ten minutes there — that’s not the point. The point is that each automation removes a decision. And decisions are expensive, not because they take time, but because they occupy mental real estate.

When my morning briefing just appears, I’m not deciding whether to read news or how to filter it. When Anaya’s mantra plays, I’m not remembering to start it. When my expense categories sync to Notion, I’m not carrying a low-grade guilt about the financial admin I haven’t done. The cumulative effect of eight automations running reliably in the background is a quieter head. More space for work that actually matters — thinking about GPU infrastructure, talking to customers, being present with my family.

What’s Next

The memory architecture is the open frontier. I want Sun to build a genuine model of who I am over months and years — not just facts, but patterns. The kind of understanding that means when I ask a vague question, Sun knows which version of the answer I actually want based on what I’ve asked before and what I’ve ignored.

Beyond that, I’m experimenting with proactive reach-outs. Right now, Sun responds to me. The next version surfaces things I didn’t know to ask about — an article I’d find interesting, a portfolio shift worth noting, a reminder that I said I’d do something three weeks ago and haven’t. Less assistant, more collaborator.

The infrastructure is in place. The interesting work is teaching it to think.

I have numerous workflows and skills which I have build with Sun, one of which is buslah, derived from colloquial Singlish. Buslah tells me when the next bus is arriving from the nearest bus stop to the destination that I ask for. I just tell Sun – “I am at Alexandra road, going to Holland Village bus” this triggers buslah to give the waiting time for bus 970 from Queenstown MRT bus stop.

I think this is the beginning of agents disrupting the user experience of how humans interact with gadgets, screen will be a nice-to-have, and no longer a must-have

Agents will address friction points for individuals, such as tapping their phones multiple times to achieve the final goal. Grabs and Ubers will have to reinvent their game as the goal of getting a burger or a cab has to be fuss-free, focusing on giving individuals their favourite burger, which they have been ordering.

Abhay: Sun get me three mcd burgers, the usual ( uses whisperflow or STT voice function and does not bother to type)
Sun: Got it, here is your order, just confirm before I proceed with payment
Sun: 1 buttermilk chicken medium meal with coke, 1 just buttermilk burger, 1 just McChicken spicy. Confirm?
Abhay: Yes
Sun: Payment done. Will let you know as the order is processed and delivery is approaching.

This is an interesting space to watch out for….