Skip to content

AgentDeck Android v2.1.0

Choose a tag to compare

@github-actions github-actions released this 05 Nov 21:12
· 41 commits to master since this release
285a57d

AgentDeck Android v2.1.0

2.1 highlights

Dictation reaches Claude Code in any terminal. A dictated prompt now goes to
an observed Claude Code session through its private peer inbox instead of
depending on a per-terminal scripting path, so Ghostty, WezTerm, kitty, SSH and
editor terminals work like iTerm2, Terminal.app, tmux and cmux. The selected
VOICE tile reports whether the prompt was delivered, held or refused by the
receiving session; a write alone is never reported as delivered. AgentDeck no
longer asks for Automation access to a terminal app that does not own the
session. Requires the Node daemon (npm) and a Claude Code version that
exposes the peer inbox; other agents and older versions keep the terminal
path. Standalone macOS app peer inbox delivery is not included. Run
agentdeck daemon install (or npx @agentdeck/setup) once after upgrading:
it refreshes the Claude hooks that advertise the inbox, which a plain claude
session does not do on its own. The delivered/held/refused wording on the
VOICE tile comes from the deck plugin, so update the Stream Deck or Ulanzi
plugin to 2.1 as well.

  • Live cmux names. Same-project sessions show their cmux workspace and surface titles and follow renames and moves.
  • Reconnect after changing daemons. Apple and Android clients retry the selected host after retries run out, keep authentication backoff, and respect an explicit Disconnect. Devices whose approval was retired can request pairing again instead of disappearing from the approval list.
  • Pairing token renewal. agentdeck token rotate and the macOS app's Pairing settings renew the active daemon's token. Retired approvals still need explicit approval; offline or older daemons that never observed the renewal are not retired by it.
  • Local ownership and devices. Uncertain renewal results recover without renewing twice; Swift custody hands over to the active daemon once. macOS USB registry discovery is bounded, BLE requirements are repaired before readiness is reported, and the installed Mac app launches independently of test copies.
  • Firmware trust and recovery. Each board keeps its endpoint and credential bound across reboot, refuses ambiguous discovery and confirmed authentication failures, and repaints USB re-pair guidance. Setup portals keep the paired-daemon firmware update path and apply bounded request parsing and authentication.
  • Ulanzi keys never sit blank. A key with no session to show now displays an OPEN SLOT card instead of a near-black tile that looked like a missing icon. Japanese session and cmux titles render instead of empty boxes, and a shortened workspace / surface cmux label keeps the surface name that tells tabs apart. The Studio bridge reconnects to the endpoint Studio launched it with instead of the SDK default port, and a failed key-image raster is retried and repainted (#730).
  • Calendar feeds. ICS subscriptions from Outlook and Google keep events that used Windows time-zone names, a week starting on Sunday or monthly "nth weekday" rules; skipped events are reported, and webcal:// links are fetched over HTTPS (Node and macOS app, #672).
  • ESP32 serial discovery on macOS. A timed-out ioreg lookup no longer leaves processes stacking at full CPU (#677).
  • Network defaults (Node daemon). The legacy UDP discovery beacon is off by default; mDNS remains the discovery path, and a client that still needs the beacon can opt in with "udpDiscoveryEnabled": true in settings.json. ADB reverse mappings that another tool already owns are preserved, and device settings follow AGENTDECK_DATA_DIR. ESP32 boards advertise a per-board mDNS name, agentdeck-display-<board id>, and stop retrying a token the daemon has rejected (HTTP 401 / WebSocket 4001), showing USB re-pair guidance instead.
  • Pixoo64. The bottom usage HUD is preserved, the ordinary scene uses its habitat renderer, and the preview follows the configured panel scene.
  • Security maintenance. Runtime input and transport boundaries, credential handling (Keychain storage for optional evaluation API keys, Android credential-backup exclusion, Android OkHttp 4.12.1 compromised-certificate blocking) and retained inbox resources are hardened, and reviewed dependencies are updated. Details under coordinated disclosure remain private.

After updating, refresh enabled integrations (agentdeck daemon install or the
app's setup), and approve any companion that asks to pair again.

E-ink dashboard app for monitoring coding agent sessions.

Install

From Google Play (recommended) —
AgentDeck on Google Play.
The same dashboard, with updates managed by Google Play.

From the APK below — for devices without Play services (many e-ink readers)
or when you prefer to install and update directly:

  1. Download the agentdeck-v*.apk below
  2. Transfer to your Android device
  3. Open the APK to install (enable "Install from unknown sources" if prompted)

From version 1.4.1, direct-install builds offer App updates in settings.
Check for updates over Wi-Fi, download the verified APK, then confirm installation
in Android. An older installation needs this APK installed once first.

Then launch AgentDeck and pair — over USB, by scanning the daemon's QR code, or
with a pairing code on a reader that has no camera. AgentDeck for Android is a
companion dashboard: keep the daemon running on a Mac, Windows, or Linux machine
on the same network.

Full changelog: https://github.com/puritysb/AgentDeck/blob/android-v2.1.0/CHANGELOG.md