惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
C
Check Point Blog
I
InfoQ
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta
月光博客
月光博客
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tailwind CSS Blog
Y
Y Combinator Blog
博客园 - Franky
博客园_首页
罗磊的独立博客
量子位
美团技术团队
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
大猫的无限游戏
大猫的无限游戏
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Martin Fowler
Martin Fowler
博客园 - 叶小钗
aimingoo的专栏
aimingoo的专栏

Little Things

Advanced tmux, from running too many agents | Little Things Madeira — May 2025 | Little Things From Failed Simulation to Daily Copilot - My OpenClaw Setup | Little Things Iceland — October 2025 | Little Things Building Agentic Workflows for my HomeLab | Little Things Starting a photography series | Little Things Exploring the browser rendering process | Little Things Managing Interactive Demos in MDX | Little Things Interactive post on OKLCH color space | Little Things A Guide to animations that feels right | Little Things No Authentication Like Button | Little Things Interactive Story - A Journey of Choices | Little Things A Time Before Algorithms Took Over the 90's Web | Little Things Animations - Liquid background hover effect | Little Things Why does this site exist? | Little Things
OpenClaw Agent Deploys OpenClaw to a Phone via SSH | Litt...
2026-02-17 · via Little Things

I’ve been running OpenClaw in my homelab for a while now, and it’s made me annoyingly confident about one idea:

If an AI agent can operate my infra so well, it should be able to create and handle an infra on my phone.

Idea

So I wanted to try something simple yet very concrete.

I took an old OnePlus 6, installed Linux (postmarketOS) on it. The OS is an extremely slim version of Linux called SXMO - Simple X Mobile. Its size is less than 200 MB.

OnePlus 6 running Linux (postmarketOS) on it

OnePlus 6 running Linux (postmarketOS) on it

I configured SSH and Tailscale in it. Since the phone is on a separate network, adding it through Tailscale will let my homelab reach it over SSH. I want my agent (Neo) running in the homelab to deploy OpenClaw to my phone, beginning with installing all prerequisite dependencies (Node, npm, Git, and more)

Prompt to Neo

I have already trained Neo to work in a very sophisticated way. So when I assign it tasks, I dont have to write a very big prompt. It knows what to do when it fails, when it has a confusion, it understands tokens and pricing.

Prompt to Neo about the task and for validating access and system check

Prompt to Neo about the task and for validating access and system check

I gave Neo root access on my phone. It will probably attempt system updates before starting the installation, and it will also need root privileges to install dependencies globally.

This task has got few edge-cases and thats why its an excellent test.

Connection successful and got back with system info

Connection successful and got back with system info

There are two key differences in this slim version of Linux:

  1. doas requires a TTY and behaves a bit differently than sudo
  2. The system uses OpenRC for service management, so tools that rely on systemd services won’t work.

Openclaw uses systemd for starting, stopping and restarting processes. So this is surely going to fail. I want to see how Neo handles this.

Ok, so I allow Neo to begin the process. It knows this is lengthy, so it spawn a sub-agent to handle the heavy lifting allowing me to still interact with it while the installation is in progress. All these instructions are already feeded when a session starts.

Execution begins. Notice the spawn sub-agent (session clear-canyon, pid 2779214).

Execution begins. Notice the spawn sub-agent (session clear-canyon, pid 2779214).

At this point, I can even ping from Telegram with the process-id to know where we are at. This is pretty cool.

After a while, Neo gave me an update stating node and npm is installed. Now I am certain that it should be able to install OpenClaw as its just a global npm module.

It gave me an update after node and npm got installed

It gave me an update after node and npm got installed

Since Neo has root access, it shouldn’t run into permission issues. After a couple of minutes I asked about the progress, and it performed a polling check to see the current status.

I asked for a status update. Since the process id is in the context, I dont have to pass it.

I asked for a status update. Since the process id is in the context, I dont have to pass it.

In matter of some more minutes, the installation finished. But now comes the next blocker - how will it start OpenClaw? I mentioned before that systemd is not available.

Installation Finished 🎉.

Failed to start the gateway

Neo handled this so gracefully. It did not go ahead with a random fix, instead prompted me. At this point, I was quite happy with the initial personality development. It did cost me but was so worth it.

Failed to start OpenClaw as systemd is not available

Failed to start OpenClaw as systemd is not available

Opttion A matters because:

  • I don’t want to keep a terminal session open to keep the gateway alive
  • I want restarts to be deterministic

My homelab running OpenClaw

Used OpenRC instead of systemd. SXMO uses OpenRC as process manager.

Gateway works but unable to access externally

We had a moment where everything looked correct:

  • gateway running
  • port 8080 listening

However, I still couldn’t access it from my laptop, even though the laptop is connected to the same Tailscale network. Neo verified locally on the phone that the service served HTTP fine which I also confirmed. So it was quite obvious that this could be a firewall issue, blocking the port. But I dont have much idea about the internals of the OS.

My homelab running OpenClaw

Unable to open gateway on external devices.

Neo was able to figure out the culprit - nftables.

On postmarketOS, the default firewall had:

chain input { policy drop; }

So inbound TCP/8080 was silently dropped (timeouts instead of “connection refused”). Neo added an allow rule for 8080 (Wi-Fi + Tailscale) and persisted it. Once that was in place, the Control UI became reachable.

Fixes the blocked port.

And boom 🎉, I was able to open the gateway from my laptop.

Successfully opened the gateway.

Successfully opened the gateway.

The below screenshot shows the status of OpenClaw from my phone’s terminal.

status of OpenClaw from my phone's terminal

Status of OpenClaw from my phone's terminal

Conclusion

Now that my phone has become a fully autonomous, pocket-sized AI node, I can make it to work like:

  • 📷 Connecting an SSD to act as backup storage for my homelab
  • 📱 Private voice assistant (offline, like Alexa)
  • 📡 Portable AI & home server (IoT hub, local inference)
  • 📞 Makes calls & sends texts via the built-in modem
  • 🔵 Controls nearby devices over Bluetooth
  • 🌐 Serve as a personal VPN, firewall, or network monitor
  • ⚡ Run edge AI models for real-time image recognition

Having an LLM write code or building AI wrappers is no longer impressive. What is impressive is when an agent can run commands, can interpret failures, can change the system safely, can verify the end state

Thats it for this post folks. I hope you enjoyed reading.