I didn't want to rent another assistant. Every "personal AI" I'd tried lived on someone else's server and learned me on someone else's terms, and I could never quite see what it was doing with any of it. I wanted the opposite. Something on my own laptop, that I could actually look inside. It reaches me where I already am, so there's no new app to open. I built one over an evening, and most of that evening went on three things nobody mentions, so I'll get those out of the way first.
The tool underneath is OpenClaw. It's a small background service that runs on your Mac and connects an AI agent to whatever messaging app you already use. You don't open a new app or learn a new interface; you just text it, the same as you'd text anyone. I use Telegram for it. The agent thinks through the Claude CLI on my existing subscription instead of running up an API bill, so if you already pay for Claude it costs nothing extra to run.
That's most of it. The rest is setup.
The three things that ate the evening
Node first. OpenClaw wants a recent version and I was sitting just under the line. Quick to fix once you know, but the error doesn't tell you that's what's wrong. Bump it with whatever version manager you use, and leave your system default alone if other projects depend on it.
Then the keyring. The first time the thing goes to save a credential, macOS throws up a Keychain permission box. Fine while you're sat there to click it. No use at all to a background service that needs to do the same thing at three in the morning with nobody around. You switch it to a file-based keyring with a password the service holds itself, and the unattended case sorts itself out. Took me a while to even work out that this was the problem.
The third one properly stumped me. With token auth turned on, the command-line tool registers as a device that needs admin rights, and granting admin rights needs a device that already has them. Round in circles. The fix is to do that first grant through the proper onboarding rather than the back way I tried. Set it up right once and it doesn't come back.
None of these are hard. They're just not signposted anywhere, so you lose an hour to each assuming you've broken something.
The bit that actually matters
Most of the setup is preference. This part isn't. The thing runs on your machine with real access to your life, so the question worth caring about is what it's allowed to touch. Which folders it can read and write to, and whether it can run commands at all. I keep that list short and only widen it on purpose. Mine started able to do almost nothing. Read a couple of things, reply, and stop there. It can do more now, but only because I handed it each piece deliberately, not because it asked.
The gateway only listens on the machine itself, so nothing out on the internet can reach it in the first place. And the chat's locked to me. Anyone else who messages the bot gets a pairing prompt and nothing else.
What it does once it's running
It texts me a brief in the morning and nudges me toward bed at a reasonable hour. It tells me what my day looks like when I ask, and checks whether there's anything in my email worth bothering with. All of that stays on the laptop. The only thing that leaves is the message to my phone.
It's not hosted, so the laptop has to stay on for any of it to work, which is a real limitation until I move it onto something always-up. Fine trade for now. It's mine and it runs for nothing. The whole thing sits behind a bot only I can message.
Getting started
None of this is bespoke. OpenClaw is open source: github.com/openclaw/openclaw, docs at docs.openclaw.ai. The shape of it:
- Get a current Node on your machine. That's the first trap above.
- Install OpenClaw and run the onboarding it ships with, rather than wiring token auth up by hand. That's the third trap.
- Point it at the Claude CLI you already pay for, so nothing runs up an API bill.
- Connect the messaging app you actually live in. I use Telegram. You text the bot, it pairs to you, and everyone else gets a wall.
- Move the keyring to a file before you leave it running unattended. Second trap.
Start it able to do almost nothing, and widen that by hand, one thing at a time.