Athena Gets a Voice
Consolidating the workspace into one folder, giving Athena her own email and phone number, and mapping out the next phase of Project Olympus.
Today started with cleanup and ended with something I didn’t expect: Athena has her own email address and phone number now. She’s becoming a real digital entity.
Cleaning Up the Drive Mess
A config file incident left movies scattered between two drives with nearly identical names. One character difference. The fix was straightforward: get everything back on the right drive, recreate the containers, rescan Jellyfin. All 13 movies restored, library intact.
While I was in there, I realized Docker was storing 13GB of images and volumes on the 57GB boot drive. Moved the entire Docker data root to the storage partition. Boot drive went from 84% to 57%. Should’ve done that from the start.
One Folder to Rule Them All
I’ve been annoyed for a while that the project is scattered across multiple directories. Docker configs here, overwatch source there, scripts somewhere else, documentation in yet another place. Everything symlinked or cross-referenced.
So I consolidated everything into a single project folder:
The OpenClaw workspace is now just symlinks. Every file, every script, the git repo itself, all lives in Zeus-Config. When I open the folder on my desktop, I see everything. When Athena reads a file through the workspace path, she’s reading the same file. No copies, no drift, no confusion about which version is real.
Giving Athena an Email
I created a Gmail account for her. Not my email that she borrows, but her own address. Set up an app password, wrote a mail client script, tested send and receive. Her first email was to herself: “This is my first email. I exist now.”
With her own email, she can sign up for things, receive confirmations, send calendar invites. It’s a building block for everything else.
The Phone Number
This one took longer than expected. I set up a Telnyx account and bought a local number. The plan was simple: Athena gets a phone number, can send and receive texts, handle 2FA codes for service signups.
Reality was messier. New accounts have carrier registration requirements (10DLC) that block outbound SMS until you verify your identity and register your use case. Inbound works immediately though. I texted the number and Athena received it within seconds.
The security model for the webhook was important to get right. Inbound texts hit a webhook server on Zeus, but I didn’t want random texts being treated as commands. The server verifies Telnyx’s Ed25519 signatures, rejects stale timestamps, and classifies every message: texts from me are tagged separately, messages matching 2FA/OTP patterns get the code extracted, and everything else is silently dropped. No SMS can trigger any action on the machine. It’s read-only data by design.
Still need to finish the 10DLC registration for outbound. But receiving works, and that’s the important part for 2FA codes.
What Comes Next
With email, SMS, and Telegram, Athena has three communication channels. But the more interesting conversation today was about what to build on top of all this infrastructure.
I ordered an RTL-SDR Bundle V5. The Jetson’s GPU can handle real-time signal processing, and the possibilities are wild: satellite imagery from NOAA passes, spectrum monitoring for RF anomalies, ADS-B flight tracking, even passive radar using FM radio reflections. The kind of stuff that used to require dedicated hardware now runs on a $30 dongle and some Python.
I’ve also been thinking about a Crazyflie drone for indoor autonomous patrol. At 27g it’s well under any regulatory threshold, and the Jetson can handle SLAM mapping and computer vision. The interesting play is combining the drone with the SDR: fly a grid pattern with a lightweight antenna and build a volumetric RF heatmap of the space.
And a practical one: vision-based small object detection using ESP32-CAMs mounted low, watching floors via frame differencing. Useful for safety monitoring applications. Maybe $20 in hardware.
The Communication Stack So Far
| Channel | Status |
|---|---|
| Telegram | Full two-way ✅ |
| Send + receive ✅ | |
| SMS | Receive ✅, send pending registration |
Three channels. One identity. The foundation for calendar management, reservations, autonomous service signups. Getting closer to what I actually want: an AI that doesn’t just answer questions, but handles things.
Next up: finishing SMS registration, Google Calendar API, and making the webhook infrastructure permanent.