Skip to content
AI AGENT CONSOLE · PHONE & PAD

Stay with your agents. From anywhere.

Agent Inbox first. A real SSH/Mosh terminal whenever you need full control.

DuckTerm for iPhone approving a Claude Code request, replying in Chat, and opening tmux Live Preview
PAD · ADAPTIVE WORKSPACE

Inbox, chat, and terminal. Side by side.

On wide Apple and Android tablets, DuckTerm keeps the full workspace rail and Inbox list visible while an expandable terminal Live Preview sits above the native chat thread.

Full workspace navigationInbox list + native chatExpandable terminal Live Preview
9:41●●● 100%
Inbox (19)♙ Agent
All Hosts⌄2883 messages
Live WSS+Bridge

Claude Code15tclaude-review

Alert> Reviewing the release diff…

Codex4tcodex-release

Mixed> 8 tests passing. No blocking findings.

Pitpi-apns-v12

MixedAPNs smoke run completed.

OpenCodetglm-term-review

DoneReply delivered to tmux.

Antigravitytagy-term-review

DoneCross-review request.

Grok Buildtgrok-term-review

MixedCompletion received.

Codex☆ •••
CodexStudio Mac t codex-release ⌑ DuckTerm2
Live preview218×57 · 7.6KB · 0B/s · 0fps · LAN ping▣ ↗ ⌃
› Review the release diff and run the tests. ● Ran test suite — all checks passed. $ tmux attach -t release-review✓ Connected to Studio Mac> Reviewing the release diff… Codex xhigh · Context 69% used · DuckTerm 1 background terminal running · /ps to view
✓ Codex [codex-release]

Done: review complete.

  • > 8 tests passing. No blocking findings.
  • ✓ Ready for your next command.
  • Reply delivered to the active tmux session.
Reply or send a terminal command…
⌕ ▱
duckterm-hookd setup --qr zsh

$ duckterm-hookd setup --qr

[ok] Hookd installed with local Web UI

[ok] Background service is running

Open DuckTerm → Settings → Agent notifications

One-time pairing QR Waiting for your phone to confirm Expires in 5 minutes

waiting for confirmation

Pair Hookd
Scan the QR shown in your terminal
Camera access stays on this device
iPhone Pad Android Phone Android Pad
hookd — the push daemon

One app on your phone, one tiny daemon next to your agents.

Runs beside your agents on macOS, native Windows, or Linux. One platform command installs it with a local Web UI, displays a pairing QR, wires the hooks, and starts the service. Windows uses a checksum-verified PowerShell installer; WSL remains a separate Linux target.

Run one command and scan its QR These are complete commands. The installer carries a local Web UI and displays the pairing QR without putting a mobile credential in your shell history. Setup guide

macOS / Linux

macOS zsh
brew install ducksee/tap/duckterm-hookd && \ "$(brew --prefix duckterm-hookd)/bin/duckterm-hookd" setup --qr
Linux bash
curl -fsSL https://raw.githubusercontent.com/ducksee/duckterm-hookd-releases/main/install.sh \ | DUCKTERM_PAIR_QR=1 sh

Windows

Windows PowerShell PowerShell
irm https://raw.githubusercontent.com/ducksee/duckterm-hookd-releases/main/install.ps1 | iex
Windows CMD CMD
curl.exe -fsSL https://raw.githubusercontent.com/ducksee/duckterm-hookd-releases/main/install.cmd -o install.cmd && install.cmd
Windows WSL WSL
curl -fsSL https://raw.githubusercontent.com/ducksee/duckterm-hookd-releases/main/install.sh \ | DUCKTERM_PAIR_QR=1 sh

Verified Agent integrations

14 tested workflows, one Agent Inbox

14 Status and session coverage across all 14
13 13 integrations are encoded in contract v1
10 Wired phone decision paths

1 more are verified compatibility workflows

DATA PATHS · NO HAND-WAVING

Direct terminal traffic. Explicit cloud paths.

DuckTerm keeps the terminal data plane separate from optional Agent, sync, and voice services. These are the paths the current apps actually use.

Direct terminal

Phone / Pad ↔ your host

SSH, Mosh, and SFTP connect directly to your host; only a proxy or bastion you configure is in that path.

Show details

SSH, Mosh, and SFTP connect directly to your host; only a proxy or bastion you configure is in that path.

Agent relay

interactive: hookd ↔ relay ↔ app · notifications: relay → APNs / FCM → app

Events, approvals, replies, and Live Preview fallback can pass through DuckTerm’s relay; notifications then use APNs or FCM. Preview and image bytes prefer LAN/P2P when available; P2P may use TURN.

Show details

Events, approvals, replies, and Live Preview fallback can pass through DuckTerm’s relay; notifications then use APNs or FCM. Preview and image bytes prefer LAN/P2P when available; P2P may use TURN.

iOS sync

CloudKit · Keychain · KVS

The app sync switch controls CloudKit server metadata and workspaces. Credential sync follows the system iCloud Keychain setting instead, outside that switch; the pairing bearer also uses Keychain + iCloud KVS independently.

Show details

The app sync switch controls CloudKit server metadata and workspaces. Credential sync follows the system iCloud Keychain setting instead, outside that switch; the pairing bearer also uses Keychain + iCloud KVS independently.

Android sync

Drive appDataFolder · Keystore

When Drive sync is enabled, it stores the full vault in private appDataFolder. Credential-field encryption is optional and off by default; other vault data remains plaintext inside the file, while Google protects transport and storage.

Show details

When Drive sync is enabled, it stores the full vault in private appDataFolder. Credential-field encryption is optional and off by default; other vault data remains plaintext inside the file, while Google protects transport and storage.

Different data, different retention

Notification event content: scheduled for deletion about 60–65 minutes after relay receipt, with cleanup also run at service startup. Live Activity content: cleared about one minute after unfollow; state removed about 24 hours after the last event. Routing and delivery metadata follow separate retention.

Voice is conditional

System recognition may use the platform vendor’s network. Experimental ChatGPT voice sends a temporary clip through the relay and paired daemon to OpenAI.

Different data, different retention
Show details

Notification event content: scheduled for deletion about 60–65 minutes after relay receipt, with cleanup also run at service startup. Live Activity content: cleared about one minute after unfollow; state removed about 24 hours after the last event. Routing and delivery metadata follow separate retention.

Voice is conditional
Show details

System recognition may use the platform vendor’s network. Experimental ChatGPT voice sends a temporary clip through the relay and paired daemon to OpenAI.

iCloud and Google Drive do not sync with each other. More storage, encryption, deletion, and third-party processing details are in the Privacy Policy.

How it works

Three steps to your first push.

Run one platform command where your agents live, then scan its pairing QR code in DuckTerm — there is no separate hookd signup or cloud dashboard.

1

Copy from the app

Open Settings → Agent notifications in DuckTerm so the QR scanner is ready.

2

Paste once on your Agent machine

Run the platform command once. It installs hookd with its local Web UI, displays a pairing QR, wires supported Agent notifications, and starts the service after pairing.

3

Verify and go

Check duckterm-hookd status, then use the app’s local and platform-push tests. Future upgrades and service restarts keep the pairing.

What you get

Built for AI multi-agent operators.

Mapped Agent lifecycle events, direct tmux/psmux/Herdr session entry, and SSH/Mosh that holds up on weak networks. Free is genuinely useful; Pro unlocks the long-haul terminal tools.

Multi-agent Inbox

Status and session events from 14 tested Agent workflows — plus approval where supported — in one feed with full markdown body.

Free: 30-day retention Unlimited

Persistent session runtimes

Enter long-running tmux, Windows psmux, and Herdr work directly from your phone, with full ANSI color, mouse, and scrollback.

Free: 2 tabs Unlimited + attach

Mosh roaming

UDP transport + predictive echo. Switch Wi-Fi → 5G → subway → coffee shop without losing the agent session.

Free: — Pro

Multi-host SSH

Password + private key (.pem) + ProxyJump bastion + HTTP/SOCKS5 proxy. Hop into any production host.

Free: 2 servers Unlimited + bastion

Full SFTP

Browse, preview, and write files. No detour into a separate file-transfer app.

Free: — Pro

Voice + themes + platform sync

Voice input, custom themes, iCloud sync on iOS, and private Google Drive appDataFolder sync on Android.

Free: — Pro

PROJECT WORKBENCH

Files and Git stay beside the agent conversation.

Open the trusted project attached to an Inbox session instead of leaving DuckTerm for a separate code or Git client.

  • Browse the tree and preview text, images, and documents.
  • Review status, diffs, history, and individual commits.
  • Stage, unstage, discard, fetch, pull, and push with explicit actions.

Shown only when hookd provides trusted project and session context. Mutating actions are never inferred from chat text.

DuckTerm/src

DIRECT-FIRST NETWORKING

Use the shortest trusted path. Keep relay as the safety net.

DuckTerm selects one data path at a time and prefers local or peer connectivity before a public endpoint or the shared relay.

  1. 01
    LAN DirectFastest on the same LAN or a trusted VPN/private overlay.
  2. 02
    Authenticated P2PA direct peer path when LAN discovery cannot reach the host.
  3. 03
    Public DirectYour HTTPS/WSS endpoint through Cloudflare Tunnel, frp, rathole, or a reverse proxy.
  4. 04
    Secure RelayThe managed fallback when no direct route is available.

Recommended setupPrefer LAN, or make remote machines part of a trusted LAN through a VPN/private overlay. If you operate infrastructure, Public Direct can use Cloudflare Tunnel, frp/rathole, Tailscale Funnel, or an HTTPS reverse proxy.

Public Direct boundaryProxy only hookd loopback port 11435. Never expose LAN port 11434 or local management port 20080 to the Internet.

Full comparison table

Connectivity

Free Pro
  • SSH servers ≤ 2 Unlimited
  • SSH login methods Password Password + private key (.pem)
  • Concurrent tabs ≤ 2 Unlimited
  • tmux / psmux / Herdr direct session entry Yes
  • Mosh (UDP roaming + predictive echo) Yes
  • HTTP CONNECT / SOCKS5 proxy Yes
  • ProxyJump bastion hosts Yes
  • LAN → P2P → Public → Relay selection Yes Yes

Files & Terminal

Free Pro
  • SFTP file browser + preview Yes
  • Project files + Git workbench Yes Yes
  • Snippets ≤ 3 Unlimited
  • Custom shortcuts ≤ 3 Unlimited
  • Workspaces 1 Unlimited
  • Inbox retention 30 days Unlimited

Advanced & Automation

Free Pro
  • Trigger rules Yes (default off)
  • Agent pairing + Inbox Yes Yes
  • Platform push delivery Trial + daily allowance Unlimited
  • Voice input (Mic / Wispr) Yes

Appearance & Sync

Free Pro
  • Custom themes Yes
  • iCloud (iOS) / Google Drive (Android) sync Yes
Pricing

Free to start. Pro when it pays for itself.

No account, no ads. One small subscription — or a single lifetime purchase — unlocks everything.

Free

$0 forever

A genuinely useful daily driver.

  • 2 SSH servers (password auth)
  • 2 concurrent tabs
  • Multi-agent inbox · 30-day retention
  • tmux · psmux · Herdr session snapshots
Download
MOST POPULAR

Pro

$0.99 /month · or $9.99/year

Everything, unlimited.

  • Unlimited servers + private key (.pem)
  • tmux · psmux · Herdr entry · Mosh · SFTP
  • HTTP/SOCKS5 proxy + ProxyJump bastion
  • Voice · themes · iCloud / Google Drive sync
Download

Lifetime

$14.99 one-time

All of Pro, forever.

  • Every Pro feature
  • All future updates
  • No subscription to manage
  • Restores across devices
Download

Prices in USD, billed by the store you buy from (App Store on iOS; Google Play on Android). Subscriptions can be canceled anytime in your store's subscription settings; the lifetime purchase is a one-time payment — nothing to cancel. Purchases restore on devices of the same store account.

Built to stay online

Useful infrastructure has a real bill.

DuckTerm keeps a genuinely useful Free tier. Pro purchases and infrastructure sponsors help cover the shared relay, mobile distribution, and release tooling behind it.

What we keep running

A plain-language cost snapshot — not a fundraising target.

Public relay + bandwidth Regional ingress, egress, TLS, storage, and abuse protection.
Ongoing
Apple Developer Program Required to ship and maintain iPhone and Pad releases.
$99 / year Official pricing
Google Play Console Required to publish Android releases.
$25 once Official pricing
Development + AI subscriptions Review, diagnostics, translation, and implementation tools.
≈ $200 / month
Expo / EAS Published Starter and Production plans; actual usage varies.
$19–$199 / month + usage Official pricing

USD, before tax. Vendor prices checked in August 2026; relay and internal subscription figures are operating estimates and change with usage.

Cloud sponsorship

Have credits or capacity that should be doing useful work?

We welcome cloud credits, regional bandwidth, or relay capacity that can reduce the cost of keeping the shared path available.

  • Keep relay regions available instead of turning infrastructure into a paywall.
  • Fund builds, delivery, and reliability work — never access to user data.
  • Receive an operating-cost acknowledgment if you want one, with no product-control strings attached.
Offer cloud sponsorship

Sponsorship never includes access to terminal traffic, SSH credentials, user data, or private operations.

Ready when you are.

Keep every agent, approval, and terminal within reach.