What Yado sells is a way to reach a coding agent that keeps running on a machine you don't carry. For one person that is a small web app: a terminal in the browser over tmux, a login, and a push when Claude Code finishes, on a small server you rent yourself. An agent builds that in one sitting. What you give up is the native app, the chat view, and a machine that appears in seconds without any server chores. Anthropic's Remote Control and cloud sessions, included with Claude plans, already cover part of this, so check them before building.
Before you buildYado has no free plan, but Claude's Remote Control and cloud sessions come with a Claude plan; if your laptop can stay on, they may be all you need.
Build me a self-hosted, phone-friendly terminal for running Claude Code, to replace Yado. Requirements: - Node.js 22 + TypeScript on a Linux box I already have: a Fastify server with `@fastify/websocket`, `node-pty` and an `xterm.js` front end built with Vite. `npm start` serves http://127.0.0.1:4980. - Sessions: each one is a named tmux session (`tmux new -d -s <name> -c <dir>`) that runs `claude` in a repo directory picked from ./repos.json. The page lists sessions and lets me create, attach to and kill them. Closing the browser must not stop a session. - Phone UI: an installable PWA (manifest and service worker) with a row of keys phones lack (Esc, Tab, Ctrl, arrows, Ctrl-C), font-size buttons and paste. Check the layout at 390x844. - Access: bind to 127.0.0.1 only and reach it through `tailscale serve` or a Cloudflare Tunnel, as the README explains. One passphrase in .env (argon2 hash), a signed cookie and 5 attempts a minute. - Notifications: a script `notify.sh` that I register as a Claude Code Stop hook and Notification hook. It writes the session state (finished or waiting) to ./data/state/<session>.json and posts to an ntfy topic (NTFY_URL, NTFY_TOPIC in .env) with the session name and the last 200 characters. - Preview: `/preview/<port>` reverse-proxies to a dev server on that local port behind the same login. - Storage: sessions come from `tmux ls`; settings in ./data/config.json. No accounts beyond the one passphrase, no telemetry. Outbound calls: the ntfy server only. - Out of scope: a native app, a chat view, a managed cloud machine, Codex support, several users. - README: install tmux and Claude Code on the box, run `claude` once to log in, and warn that anyone who passes the login gets a shell, so the port is never exposed directly.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Yado.
Add a chat view to the terminal app in this folder. Requirements: - Run Claude Code in its headless streaming-JSON mode (check `claude --help` for the output and input format flags) in a second kind of session, and render messages, tool calls and diffs as cards. - A text box to send the next message, buttons for the permission prompts, and a stop button. - Keep the terminal view as the fallback for each session. - Update the README.
Add Codex support to the terminal app in this folder. Requirements: - A per-repo setting in ./repos.json for the agent command, `claude` or `codex`. - The same notify script contract for both: finished and waiting states, with the session name. - Show the agent name next to each session in the list. - Update the README with how to log in to Codex on the box.
Add git actions to the terminal app in this folder. Requirements: - For a session's repo, show branch, status and a diff stat; buttons for stage all, commit with a message, push, and open a pull request with the GitHub CLI. - Each action asks for a confirmation, shows the command it will run and its output, and never force-pushes. - Update the README with the `gh auth login` step.
Add idle shutdown to the terminal app in this folder. Requirements: - Track the last request and the last tmux activity per session; after IDLE_HOURS (default 72) of none, power the server off through your provider's API, using a token in .env. - A wake script I can run from a laptop or a phone shortcut, and a status page that says when the shutdown will happen. - Warn by ntfy 30 minutes before shutting down. - README: how to create the API token with the least access, and which provider the code targets.
Yado's own pitch is 19 seconds from opening the app to a working session: no server to rent, no tunnel to configure, no raw terminal on a phone keyboard. People pay so that checking on a coding agent away from the desk takes no setup and fits in a pocket.
Estimate · Free on a machine you already run; a small VPS is about $5 to $6 a month. You still pay for the Claude plan, as you would with Yado. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Yado | $19 | $9.50 | Native terminal and chat, live preview on the phone, a push notification when a task finishes, 2 parallel agents, one cloud container per GitHub account. |
Yes. An AI coding agent such as Claude Code, Codex or Cursor can build a usable personal version in one session with the prompt on this page, running on your own machine.
About $19 a month on the Yado plan, $228 a year (checked 2026-10-19).
A native iOS and Android app with a chat view next to the terminal; A cloud machine that is ready in seconds and shuts itself down; Codex support and a connected-tools screen for CLIs and MCP servers; Someone else keeping the setup working. If any of those matter to you, keep paying.
Yes: Happy (open source), CloudCLI (Claude Code UI) (open source), VibeTunnel (open source).