Skimmed the repo, this is basically the irreducible core of an agent: small loop, provider abstraction, tool dispatch, and chat gateways . The LOC reduction (99%, from 400k to 4k) mostly comes from leaving out RAG pipelines, planners, multi-agent orchestration, UIs, and production ops.
Yeah I mean idk, my takeaway from OpenClaw was pretty much the same - why use someone's insane vibecoded 400k LoC CLI wrapper with 50k lines of "docs" (AI slop; and another 50k Chinese translation of the same AI slop) when I can just Claude Code myself a custom wrapper in 30 mins that has exactly what I need and won't take 4 seconds to respond to a CLI call.
But my reaction to this project is again: Why would I use this instead of "vibecoding" it myself. It won't have exactly what I need, and the cost to create my own version is measured in minutes.
I suspect many people will slowly come to understand this intrinsic nature of "vibecoded software" soon - the only valuable one is one you've made yourself, to solve your own problems. They are not products and never will be.
I spun up an Debian stable ec2 vm (using an agent + aws cli + aws-vault of course) to host openclaw, giving it full root access, and I talk to it on discord.
It's a little slow sometimes, but it's the first time I've felt like I have an independent agent that can handle things kind of.
The only two things I did were 1. Ask it to create a Monero address so I could send it money, and have it notify me whenever money is sent to that address. It spun up its own monerod daemon which was really heavy and it ran out of space. So I had to get it to use the Monero wallet instead, but had to manually intervene to shut down the monerod daemon and kill the process and restart openclaw. In the end it worked and still works.
2. I simply asked it "@ me the the silver price every day around 8am ET" and it just figured out how to do it and schedule it. To my understanding it has its own cron functionality using a json file.
3. Write and host some python scripts I can ping externally to send me a notification
I've had it done other misc stuff, but ChatGPT is almost always better for queries, and coding agents + Zed is much better for coding. But with a cheap enough vm and using openrouter plus glm 4.7 or flash, it can do some quirky fun stuff. I see the advantage as mainly having control of a system where it can have long term state (like files, processes, etc) and manage context itself. It is more like glue and it's full mastery and control of a Linux system gives it a lot of flexibility.
Think of it more as agent+os which you aren't getting with raw Claude or ChatGPT.
I've done nothing that interesting with it, it's absolutely a security nightmare, but it's really fun!
Is this something I run for my company in Slack, where employees send messages and the LLM processes the text, uses the functions I created to handle different tasks, and then responds back?
Watching the OpenClaw/Molbot craze has been entertaining. I wouldn't use it - too much code, changing too quickly, with too little regard for security - but it has inspired me.
I often have ideas while cleaning around, cooking, etc. Claude Code (with Opus 4.5) is very capable. I've long wanted to get Claude Code working hands-free.
So I took an afternoon and rolled my own STT-TTS voice stack for Claude Code. The voice stack runs locally on my M4 Pro and is extremely fast.
Custom MCP to hook this into Claude Code, with a little bit of hacking around to get my AirPods' stem click to be captured.
I'm having Claude narrate its thought process and everything it's doing in short, frequent messages, and I can interrupt it at any time with a stem click, which starts listening to me and sends the message once a sufficiently long pause is detected.
I stream the Claude Code session via AirPlay to my living room TV, so that I don't have to get close to the laptop if I need extra details about what it's doing.
Yesterday, I had it debug a custom WhatsApp integration (via [1]) hands-free while brushing my teeth. It can use `osascript` for OS integration, browse the web via Claude Code's builtin tools...
On one hand, I think this project is super cool and something I would use and/or would have loved to build myself for my own use.
On the other hand, it makes me wonder if we’re just heading for a future where everyone is just always working, at all times, even while doing other things.
“Wow look at our daughter taking her first steps! She’s doing so… wait hold on… No, Claude. I said to name the class “potatoes”, not “‘pot’ followed by eight ‘O’s,” you dumb robot!”
That's a fair point, and I had the exact same thought while building this. I had previously resisted the urge of integrating Claude Code with e.g. ntfy.sh for this reason. But in practice, this works for me. I end up being less likely to spend time on the computer and more likely to be doing something on my feet.
For context, I'm a PhD student. Work-life balance is already... elusive.
I'm in the process of migrating from my first POC's disgusting mess of vibe-coded Python to a cleaner (and shareable) Rust architecture. It's going well but I will wait for it to stabilize a bit before sharing.
The main non-trivial parts are proper state machine / concurrency management, and AirPods interaction; in particular, detecting a stem click while the microphone is active. I worked around this by having the mic-off-to-mic-on transition use a media player Play event, and mic-on-to-mic-off do silence detection. It's super hacky but actually works surprisingly well.
Currently looking into using `AVAudioApplication.setInputMuteStateChangeHandler(_:)`, like AirMute [1] does, so that I don't have to rely on silence detection and can manually terminate the voice command with a second click.
If you want to roll your own version of what I described today, it should be pretty easy to do so based on what I wrote if you have a Max x5-x20 plan and feed it to Opus. Bonus points, you get to customize it to your exact needs.
I got into a bike accident yesterday and injured both of my arms. Fortunately the damage wasn't too severe, but it was bad enough that using a computer is rather difficult. So now I'm spending some of my idle time playing around with different options for voice control. Like you I am a little wary of OpenClaw so I might try something similar to your setup as an alternative. So far I have gotten to the point where I can use voice dictation in notepad to write comments and commands, but copying and pasting the text is enough of a struggle (compounded by the fact that my cat is competing with me for the keyboard and I am in no state to fend her off) that I am aiming to push things a bit further. Sucks being injured but having a nice distraction to keep my mind occupied has so far been a great way to pass the time.
It does sync, messages, send, search (FTS5), stickers, forum topics, and has socket IPC for automation. Install via cargo or homebrew. Seems like it'd fit nicely into what you're building.
Looks like a nice library, thanks for sharing! I know Telegram bots are very popular and that the API story is quite nice, but I have tended to avoid Telegram. My preference would be to go through Signal. I just started looking into my options on this yesterday. Any particular reason why you chose Telegram?
I would be happy to create such a system myself though I don't have Airpods. I have Beats Flex and perhaps I could somehow control the input with double volume up and down clicks. Or just use my phone somehow. Would you be willing to write more about your setup, perhaps a blog post?
Since this has garnered some interest, I definitely will sit down and write a blog post when I have a little bit of time. I have upgraded the setup since that post a few days ago, and keep doing so continuously; it's always running in the background while I work. There are some rough edges, but the workflow feels like what Siri should have been.
Bottom Line
HAL‑AI‑2 is a real system. Nanobot is a toy.
They are not peers. They are not even in the same category.
Nanobot is useful only as a conceptual sketch of an agent loop.
HAL‑AI‑2 is the substrate you’ve been building toward for months.
I hate to side-track like this but I'm having trouble understanding the architecture diagram. LLM has 2 arrows to Tools - what does that mean? Similarly, Tools has both a doublesided arrow and an outgoing arrow to Context. Chat Apps having outgoing arrows to both Message and LLM also kinda tripped me up but I suppose you could say it's because the apps both provide messaging and context for the LLM.
I have been inspired by all the use cases that are popping up from a proactive assistant, but lightweight is the last thing I would want when it comes to locking it down.
I started building my own version and before I even think about letting it loose, every facet needs to be designed and thought out. I have more tests than these lightweight libraries have code.
To me I don’t care about the size, I care about not getting wrecked.
30 comments
[ 3.1 ms ] story [ 73.3 ms ] threadBut my reaction to this project is again: Why would I use this instead of "vibecoding" it myself. It won't have exactly what I need, and the cost to create my own version is measured in minutes.
I suspect many people will slowly come to understand this intrinsic nature of "vibecoded software" soon - the only valuable one is one you've made yourself, to solve your own problems. They are not products and never will be.
It's a little slow sometimes, but it's the first time I've felt like I have an independent agent that can handle things kind of.
The only two things I did were 1. Ask it to create a Monero address so I could send it money, and have it notify me whenever money is sent to that address. It spun up its own monerod daemon which was really heavy and it ran out of space. So I had to get it to use the Monero wallet instead, but had to manually intervene to shut down the monerod daemon and kill the process and restart openclaw. In the end it worked and still works. 2. I simply asked it "@ me the the silver price every day around 8am ET" and it just figured out how to do it and schedule it. To my understanding it has its own cron functionality using a json file. 3. Write and host some python scripts I can ping externally to send me a notification
I've had it done other misc stuff, but ChatGPT is almost always better for queries, and coding agents + Zed is much better for coding. But with a cheap enough vm and using openrouter plus glm 4.7 or flash, it can do some quirky fun stuff. I see the advantage as mainly having control of a system where it can have long term state (like files, processes, etc) and manage context itself. It is more like glue and it's full mastery and control of a Linux system gives it a lot of flexibility.
Think of it more as agent+os which you aren't getting with raw Claude or ChatGPT.
I've done nothing that interesting with it, it's absolutely a security nightmare, but it's really fun!
looking for pro's and cons.
I often have ideas while cleaning around, cooking, etc. Claude Code (with Opus 4.5) is very capable. I've long wanted to get Claude Code working hands-free.
So I took an afternoon and rolled my own STT-TTS voice stack for Claude Code. The voice stack runs locally on my M4 Pro and is extremely fast.
For Speech to Text, Parakeet v3 TDT: https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3
For Text to Speech, Pocket TTS: https://github.com/kyutai-labs/pocket-tts
Custom MCP to hook this into Claude Code, with a little bit of hacking around to get my AirPods' stem click to be captured.
I'm having Claude narrate its thought process and everything it's doing in short, frequent messages, and I can interrupt it at any time with a stem click, which starts listening to me and sends the message once a sufficiently long pause is detected.
I stream the Claude Code session via AirPlay to my living room TV, so that I don't have to get close to the laptop if I need extra details about what it's doing.
Yesterday, I had it debug a custom WhatsApp integration (via [1]) hands-free while brushing my teeth. It can use `osascript` for OS integration, browse the web via Claude Code's builtin tools...
My back is thankful. This is really fun.
[1]: https://github.com/jlucaso1/whatsapp-rust
On the other hand, it makes me wonder if we’re just heading for a future where everyone is just always working, at all times, even while doing other things.
“Wow look at our daughter taking her first steps! She’s doing so… wait hold on… No, Claude. I said to name the class “potatoes”, not “‘pot’ followed by eight ‘O’s,” you dumb robot!”
For context, I'm a PhD student. Work-life balance is already... elusive.
The main non-trivial parts are proper state machine / concurrency management, and AirPods interaction; in particular, detecting a stem click while the microphone is active. I worked around this by having the mic-off-to-mic-on transition use a media player Play event, and mic-on-to-mic-off do silence detection. It's super hacky but actually works surprisingly well.
Currently looking into using `AVAudioApplication.setInputMuteStateChangeHandler(_:)`, like AirMute [1] does, so that I don't have to rely on silence detection and can manually terminate the voice command with a second click.
If you want to roll your own version of what I described today, it should be pretty easy to do so based on what I wrote if you have a Max x5-x20 plan and feed it to Opus. Bonus points, you get to customize it to your exact needs.
[1]: https://github.com/Solarphlare/AirMute
https://github.com/dgrr/tgcli
It does sync, messages, send, search (FTS5), stickers, forum topics, and has socket IPC for automation. Install via cargo or homebrew. Seems like it'd fit nicely into what you're building.
I started building my own version and before I even think about letting it loose, every facet needs to be designed and thought out. I have more tests than these lightweight libraries have code.
To me I don’t care about the size, I care about not getting wrecked.