Skip to content

Status of M1

The first milestone (M1) is “see and reach my computer from my phone”. On two real computers, the phone connects, browses the computer’s shared folders, sends a file both ways, runs a command in a terminal and gets a “job finished” notification, over the local network and through a relay. The earlier aim, “shut down my computer when the render finishes”, is built too; its shutdown and sleep part waits for the power helper, which moved to the next milestone.

Version 0.3.0 adds two things on top: a computer on your device list can control your other computers as the phone does (Control your other computers from a computer), and AI apps on a computer can read your other computers through MCP, without changing anything (Use Tealhand from your AI app).

Part What it does today
tealhand-actions The one action list: 33 actions, with risk levels, card text, palette search and the JSON schema the planner may use. The phone and the Host run the status, rule, power, device, files, download, terminal and saved command actions
tealhand-proto Message types, the framed envelope, protocol names (pair/1, ctl/1, files/1, ssh/1) and the capability version (9)
tealhand-identity Key types, the signed and hash-chained device list (roster), signed commands from a phone or from one of your computers and their verifier, connecting a phone
tealhand-mesh The iroh network endpoint, the roster gate, the connection door, rate limits, and the pinned relay certificate
tealhand-host and tealhand-sysinfo Tealhand Host: status, task list, the rules engine, the 60-second notice, connecting a phone, the activity journal, a saved UDP port, commands from your other computers (reported to your phone), the read-only MCP endpoint for AI apps on 127.0.0.1, and the commands run, connect, unpair, remote off, share (with a default for downloads), downloads, ssh, commands and mcp, with a sample systemd unit
tealhand-files Shared folders, the path jail, the files/1 server (browse, range reads, uploads), the downloader with its address rule, and the phone’s file client
tealhand-relay Tealhand Relay: an iroh relay that only serves devices on your roster, the device list upload, and tealhand-relay fingerprint for a self-signed certificate
tealhand-planner Tealhand Planner: one sentence in, at most three proposed actions out, with a local Ollama model
tealhand-core and tealhand-ffi The phone’s logic: connecting, cards, signing requests, status, roster duties, files, uploads, downloads, the playback proxy on 127.0.0.1, the relay fingerprint, the planner client, and the bridge to Flutter. The same core, in computer mode, is a computer’s own client for your other computers
apps/mobile The phone app for Android: Home (Chat like a messenger, with chat commands, or Classic, with the computer picker in the top row of both), the Inbox with your computers’ notices, Devices, confirmation cards with the fingerprint, connecting by QR code or pasted code, Power and rules, Files (shared folders, downloads with a folder the phone picks, viewing and copying files), the share sheet, SSH access with saved commands you can add and remove, and Settings (network with your own relay, its fingerprint and your owner key, privacy, security)
apps/desktop Tealhand on a computer (Tauri 2): status, devices and connecting a phone, your other computers’ pages (Status, Power, Files, Terminal), activity, the 60-second notice, the Ctrl+K palette for this computer, and Settings (network, remote control, shared folders and the default for downloads, SSH access, saved commands, AI apps with one-click setup). Built from source; no installer yet
tealhand-e2e Tests that run the real phone core against the real Host: connecting, rules, device list pushes, files, the terminal, one computer controlling another, and an AI app reading through MCP

Nothing is listed here right now. The phone’s Files and Downloads screens, the Android share sheet entry, and the terminal with saved commands (SSH access) are built; see the table above. What is left for M1 is under “Planned for M1”.

  • Installers and downloads: Tealhand.apk, Tealhand-Desktop-Setup-x64.exe, tealhand-desktop_amd64.deb, a headless tealhand-host, and tealhand-relay as a binary or Docker image. None of these exists yet.

tealhand-power, the small helper that does only sleep, shut down and “is another user signed in?”. Until it exists, a release build of Tealhand Host won’t start (use a debug build), and requests and rules that shut down or sleep are refused. Also next: the palette acting on your other computers, apps on the computer through the phone, torrents, Windows on Arm, large resumable sends and moving files between folders.

  • Connecting a phone works with the phone and the computer on the same network. Once connected, control also works over a relay.
  • Phone notifications (a rule fired, a notice started) arrive only while the app is running.
  • No sign-in. “Sign in with Teal”, Teal’s hosted relays and the hosted planner come later. The planner has no authentication yet, so only run it for yourself (see Self-host the planner).
  • Platforms: Windows 11 x64 and Linux for computers, Android 10 or newer for the phone.
  • A computer controls your other computers only from the Tealhand app; tealhand-host alone has no commands for that. The device list stays the phone’s: a computer can’t add or remove devices.
  • AI apps only read. They can’t change anything on another computer.
  • Files: browsing, reading, uploads, rename and delete to the trash. Not in M1: moving files between folders, deleting past the trash, torrents, a terminal session that survives a disconnect.

M1 is done when, on two real computers, over the local network and over a relay, the phone connects, browses the computer, sends a file both ways (the share sheet included), runs a command in the terminal and gets a “job finished” notification, the threat model rows for these features have their defence and tests, and every CI check passes.