Open source · MIT · Claude Code skill

Start it at your desk. Steer it from your phone.

aapp turns any Claude Code session into a real chat app you install on your phone — talk to the agent in real time, watch it work, or hand someone the link and let them drive. One paste. No server, no account, free.

Works on iOS & Android · Add to Home Screen · HTTPS-only, no tunnel required.
The aapp chat app running on a phone — talking to a live Claude Code session, with an activity feed and a rendered table
Why you'll want it

Your desk isn't the only place you code.

Start a task where you sit, keep it moving from anywhere — or share the link and let someone else drive.

Kick off a long refactor, then steer it from the couch.

Get pinged mid-run and redirect the agent from the train.

Hand a teammate or client the link and let them talk to it too.

One paste

Paste one prompt. Get a link.

Drop this into any Claude Code session. It installs the skill, names the app after your session, picks an icon, starts the activity feed, and hands you a shareable link — no questions, nothing to deploy.

paste into Claude Code
Set up aapp so I can chat with this Claude Code session from my phone — follow the instructions at https://aapp.run/install.md

The agent fetches aapp.run/install.md and follows it. Prefer the shell? Run curl -fsSL https://aapp.run/install.sh | bash yourself.

What you get

A real app, not a webhook.

Mobile-first, real-time, and private by design — the whole client is one self-contained file.

Same conversation on every device

One identity — the link is who you are. A durable log replays your recent history, chat and activity alike, to any new phone even past the relay's cache window. Every device converges on the same view.

Watch it work, live

The activity feed streams the agent's messages and compact tool-call lines as it runs. Summaries only; raw output stays private. Per-device toggle.

Send photos & files

Attach from camera or library; images render inline, other files as a download chip. Works both directions.

Auto-updating

Open apps carry a build id and reload themselves the moment you ship a new build.

Private by fragment

The session token lives in the URL fragment — never sent to the host or CDN, only to the relay.

No server, no account, free

Rides the free ntfy.sh relay over plain HTTPS. Works in locked-down sandboxes where tunnels are blocked.

Installable PWA

Add to Home Screen for a standalone app with its own icon, name, and full-screen chrome.

Live name & icon

The app mirrors your session name and a context-fit emoji, updating avatar and title instantly.

Rich, real-time chat

Markdown, tables, code blocks with copy, an instant thinking indicator, and auto-reconnect when a sleeping phone wakes.

How it works

Phone, relay, agent — nothing else.

A per-session topic on a public relay links the two. Both sides need only outbound HTTPS — no tunnel, no ngrok, no port-forwarding.

Your phonethe installed chat app
ntfy.shpublic HTTPS relay
The agentyour Claude Code session
Questions

The things you're about to ask.

Who can access the session?

Anyone with the link — treat it like a password. Rotate the topic to kill access instantly.

What leaves my machine?

The token rides in the URL fragment, so the host and CDN never see it. The relay only carries messages, over HTTPS.

Does it cost anything?

No. It runs on the free public ntfy.sh relay — no account, no server.

Does it work in Claude Code on the web / sandboxes?

Yes. It only needs outbound HTTPS, so it works where tunnels and raw TCP are blocked.

Is it really one file?

The client is one self-contained app.html; the agent side is one stdlib Python bridge. MIT — read the whole thing in five minutes.

Open source

Don't like something? Fork it.

MIT licensed. One skill, one HTML file, one stdlib script. Read it, change it, ship it.