cd /news/ai-tools/aterminal-build-with-ai-on-the-go-a-… Β· home β€Ί topics β€Ί ai-tools β€Ί article
[ARTICLE Β· art-14404] src=dev.to pub= topic=ai-tools verified=true sentiment=Β· neutral

ATerminal: Build with AI on the Go - A Self-Hosted Browser Terminal for Your Home Machine (Tailscale + PWA + ntfy)

A developer built ATerminal, a self-hosted browser terminal that provides full shell access from an iPhone via Tailscale, eliminating the need for cloud services or app store dependencies. The project uses xterm.js for the frontend, Socket.IO for PTY streaming, and Node.js for shell process management, with ntfy push notifications for session exits. The terminal runs as a Progressive Web App (PWA) on iOS, though it currently has limitations with keyboard behavior and copy/paste functionality.

read1 min publishedMay 26, 2026

I built a terminal server that runs on my home machine and lets me open a full shell from my iPhone. No cloud, no relay, no App Store. Here's how it works and why I made some of the choices I did.

Brief walkthrough of why ttyd, tmate, and raw SSH from mobile all have meaningful tradeoffs for the "check your home machine from anywhere" use case.

Explains the decision to use tailscale serve specifically β€” how it provides HTTPS, a stable URL, and tailnet-only access without any router config or cert management. Why this was the right tradeoff versus self-hosting a reverse proxy or using tailscale funnel.

Short technical explanation of how the browser terminal works β€” xterm.js renders the frontend, Socket.IO streams the PTY output, Node.js spawns the shell process. What the latency characteristics look like in practice over Tailscale.

Honest assessment of the PWA terminal experience on iOS. What works well (add to home screen, full-screen mode), what's still rough (keyboard behavior, copy/paste quirks), and what I'd change.

How the ntfy push notification setup works β€” fires when a session exits. Why this is useful for long builds or monitoring agent processes. How to configure it with a self-hosted ntfy instance.

One-command setup walkthrough. Prerequisites (Node.js, Tailscale), what npm run setup:tailscale actually does, and how to verify it's working.

Honest list of rough edges: session persistence across reloads, multi-machine dashboard maturity, mobile keyboard quirks. What I'm actively working on.

Link to GitHub, invitation for feedback, note on AGPL-3.0 licensing.

── more in #ai-tools 4 stories Β· sorted by recency
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/aterminal-build-with…] indexed:0 read:1min 2026-05-26 Β· β€”