手机应用(iOS 和 Android)
各版本的更新内容,与应用商店中显示的一致。
-
版本 1.11.0
发布于:
- 新功能:远程协助。用一次性协助码,从手机远程协助朋友的电脑。每次连接都由对方确认,连接期间对方屏幕上会一直显示提示条,全程端到端加密。提供协助需要用 Google 或 Apple 登录,每次会话免费 15 分钟(Pro:无时长限制)。
- 已配对的电脑会显示在你其他已登录的设备上。
- 远程桌面:Android 键盘的退格键现在可用,在手机上复制的文字可以粘贴到电脑上。
- 购买未能完成时,提示更清晰,并提供重试按钮。
-
版本 1.10.3
发布于:
- 稳定性:从最近使用的应用中关闭 RoamTerm 后,与电脑的连接现在会保持。
-
版本 1.10.2
- iPhone 新增 Claude Code 页面:Claude 需要你或完成工作时通知你,并提供电脑端一步设置命令。
-
版本 1.10.1
发布于:
- 更少权限:RoamTerm 不再请求访问你的照片、视频或音乐。
-
版本 1.10.0
发布于:
- 新增:Claude Code 需要你时推送通知,点按即可打开对应的终端会话。
- 快捷命令:运行或仅输入、高风险先确认、{{值}}、搜索、导入与导出。
- 新增:快捷设置图块,可开关 ADB 并打开电脑终端(Android)。
- 新增:“支持与反馈”中的“服务状态”可查看 RoamTerm 是否正常运行。
-
版本 1.9.2
发布于:
- 新功能:重启前保持 ADB 就绪(可选,在 ADB 页面)。之后没有 Wi-Fi 也能重新开启 ADB。
-
版本 1.9.1
发布于:
- 新增:设置中的“支持与反馈”。可报告问题、建议功能或提出疑问,我们会阅读每一条消息。
-
版本 1.9.0
发布于:
- 每次更新后显示新功能,完整更新记录位于“设置 > 关于”。
- 应用内更新提醒:在 Android 上无需前往应用商店,直接在应用内更新。
- 修复:隐私政策、使用条款和支持链接现在会打开对应语言的正确页面。
-
版本 1.8.3
发布于:
- 在 Wi-Fi 与移动数据之间切换以及服务繁忙时,连接更稳定。
- 配对链接不再打开相机,无效链接会给出明确提示。
- 应用数据损坏不再导致无法使用。
- 文件传输:取消更干净,存储空间不足时提示。
- 大字体和横屏下布局更好。
-
版本 1.8.2
发布于:
- 中继现在能识别每位订阅者的 Pro:直连且全速。
- 所有入口(配对链接、ADB 设置、文件传递)都会检查 Pro 功能。
- Pro 结束后,ADB、端口转发、远程桌面和 AI 访问会正常停止。
- 启动时不再向 Pro 用户短暂显示订阅页面。
-
版本 1.8.1
发布于:
- 开启 AI 访问后,“设备”页面上的设置卡片会自动消失。
- 配合电脑端 RoamTerm 0.11.1:修复了超过 10 秒、重启后以及并行的 AI 调用。更新:roamterm update
-
版本 1.8.0
发布于:
- 数据用量:按功能和电脑显示 RoamTerm 的移动数据与 Wi-Fi 用量。
- 电池:ADB 开启与空闲时的估算耗电、锁定时长和建议。
- 离线模式:1 小时、到明天或直到关闭期间不建立任何连接。
- 移动数据省流量。
- 新的 ADB 通知图标;电脑卡片上的绿色 ADB 圆点。
- 已暂停的电脑显示“已被用户暂停”。需要 RoamTerm 0.11.0
-
版本 1.7.0
发布于:
- ADB 连接更稳定:ADB 运行时保持 Wi-Fi 唤醒,电脑会自动重新连接 adb。
- 选择 ADB 连接路径:自动、优先直连或仅中继。在同一网络下会自动切回直连。
- ADB 卡片显示正在使用的路径及原因。
- 电脑需安装 RoamTerm 0.10.0:roamterm update
-
版本 1.6.2
发布于:
- 已修复:直连断开后 ADB 隧道可能卡住(电脑显示 ADB 已关闭)。现在约 10 秒内即可发现并切换到中继。
-
版本 1.6.1
发布于:
- 已修复:直连时 ADB 隧道频繁断开(“无网络,正在等待隧道”);直连路径上的数据现在始终按顺序发送。
- 若直连仍失败,RoamTerm 会立即切换到中继。
-
版本 1.6.0
发布于:
- ADB 设置:QR 步骤更清晰(摄像头在 Android 设置中打开,而不是在 RoamTerm 中),检查 Wi-Fi 和开发者选项,并配有各界面示意图。
- 远程桌面:若 Mac 尚未允许屏幕录制,Mac 会显示授权界面,应用会明确告诉你要打开什么。
- 电脑需安装 RoamTerm 0.8.0:roamterm update
-
版本 1.5.0
发布于:
- 文件:修复重新打开后文件夹显示为空的问题;新增“在此打开终端”。
- 远程桌面和 ADB 隧道在可能时使用直连(Pro),并显示直连/中继及延迟。
- 远程桌面:低延迟模式,经互联网更流畅。
- 电脑需安装 RoamTerm 0.7.0:roamterm update
-
版本 1.4.0
发布于:
- 远程桌面(Pro):用手机查看并控制电脑:触控板或触摸模式、所有显示器、画质档位、声音在手机播放。
- 系统:实时查看电脑 CPU、内存、磁盘和网络;进程管理与电源操作为 Pro 功能。
- 电脑需安装 RoamTerm 0.6.0:roamterm update
-
版本 1.3.1
发布于:
- 文件:点击文件夹立即进入并显示加载条,子文件夹在后台预加载,打开即刻完成。
- 电脑升级到 RoamTerm 0.5.1 后更快:roamterm update
-
版本 1.3.0
发布于:
- 更智能的终端:输入时即有建议,常用文件夹优先,输入 / 显示 Claude Code / Codex 命令。
- 在手机和电脑之间发送文本、同步剪贴板(同步为 Pro 功能)。
- 从任意应用将文本分享到电脑。
- 电脑需安装 RoamTerm 0.5.0:roamterm update
-
版本 1.2.3
发布于:
- 电脑现在可以看到这部手机的真实名称、型号和 Pro 套餐。
- 连接详情会显示连接已端到端加密。
- 建议在电脑上搭配 RoamTerm 桌面应用 0.4.0:roamterm update
-
版本 1.2.2
发布于:
- 移除了此手机的电脑现在会自动从列表中消失。
- 电脑需安装 RoamTerm 代理 0.3.2:roamterm update
-
版本 1.2.1
发布于:
- 电脑上的代理重启后,ADB 隧道会自动重新连接。
- ADB 页面新增“重启隧道”按钮。
- 建议配合 RoamTerm 代理 0.3.1:roamterm update
-
版本 1.2.0
发布于:
- 终端输入时的建议:cd 后的文件夹、文件、命令、git 分支和最近的命令。
- 命令历史:查找并重新运行手机和电脑上的最近命令。
- 命令编辑栏:轻松输入长命令后发送。
- 更易用的按键栏:常用键在前,按住方向键可连续输入。
- 补全需要电脑安装 RoamTerm 代理 0.3.0:roamterm update
-
版本 1.1.0
发布于:
- 无需输入即可 ADB 配对:扫描电脑上显示的二维码。
- 打开设置时也能在通知中输入配对码。
- 电脑的 adb 连接后会显示。
- 更清晰的电脑卡片和全新机器页面。
- 在手机和电脑之间发送文件。
- 轻松移除终端会话。
- 电脑需安装 RoamTerm 代理 0.2.0:roamterm update
-
版本 1.0.4
发布于:
- 无需 Wi-Fi 的远程 ADB:用 USB 线连接电脑设置一次即可。
- 配对步骤更清晰、更简短。
- 通过数据线设置需要电脑上安装 RoamTerm 代理 0.1.3。
-
版本 1.0.3
发布于:
- RoamTerm 团队赠送的 Pro 现在可以可靠开通。
- 登录后,这部手机会立即关联到你的账号。
- 稳定性改进。
-
版本 1.0.2
发布于:
- 赠送的 Pro:RoamTerm 团队授予的 Pro 现在可以解锁应用。
- 远程 ADB:没有 Wi-Fi 时,应用会立即提示无线调试需要短暂连接 Wi-Fi,连上后自动继续。
- 在电脑列表页一键进入设置。
- 更清晰的方案错误提示。
- 文件:修复新建文件夹 / 重命名。
- 无障碍与稳定性改进。
桌面代理(Mac、Windows、Linux)
桌面代理的更新日志以英文撰写。
-
版本 0.12.0
发布于:
- Control center: the Claude Code notifications card no longer shows a stray "null" next to the Install button; the remote desktop permission hint and a consent request are never on screen together (consent first, the hint returns after the answer).
- Keep awake: the computer no longer idle-sleeps while a phone is using it (terminal, files, ADB tunnel, AI session, remote desktop), so the phone does not lose it. New setting "Keep awake while a phone is connected" (Settings -> Keep awake, default on): "while a session is open" (default) or "while any phone is online", plus "also on battery" (default off: a laptop on battery is not kept awake unless you opt in). macOS holds a system-sleep assertion (the screen can still turn off), Windows
SetThreadExecutionState, Linux a logind inhibitor lock. Released within seconds when the last session ends, the phone goes offline, you pause the agent or change the setting, and always when the agent exits or crashes. Closing the lid still sleeps the computer. - Indicator "Keeping this Mac awake - <what>" on Overview, in Settings, in the menu bar panel and the tray menu (11 languages).
- SSH sessions now report what is running right now (
SessionInfo.Active), not only what the connection did so far. - Claude Code notifications:
roamterm notify(the hook command) androamterm claude-hooks install | uninstall | status. When Claude Code asks for permission, waits for input (Notification hook) or finishes a turn (Stop hook), the phone that owns that tmux session gets a push; a tap opens the terminal attached to that session. The push never contains the prompt, command, file names, directory or any Claude text (only "Claude needs you on <computer>"). Throttled per tmux session (waiting 1 per 2 min unless answered, done 1 per 5 min); no push while the phone is attached to that session. The installer merges into~/.claude/settings.jsonwithout touching your other settings or hooks (backup, atomic write, refuses invalid JSON, uninstall removes only RoamTerm's entries). Control center: new "Claude Code notifications" card on the AI / MCP tab. Needs a relay that announcespush_claude(older relays are never sent the new events). Seedocs/claude-hooks.md.
-
版本 0.11.4
发布于:
- Control center: new "Support & feedback" page (
#/support, sidebar entry "Support"). Pick a category (problem, feature idea, question, other), write the message (10-5000 characters), optionally leave an email for a reply, and tick "Include diagnostic info" (on by default) with a "What is sent" list. Nothing is sent until Send; a failed send keeps the draft (the agent holds it while the window is closed) and a retry of the same text reuses its ticket id, so a report is never duplicated. On success the page shows the ticket number. Rate limits show when to try again. Opens from About ("Report a problem / Send feedback"), the menu bar panel, the tray menu androamterm feedback(=roamterm open support). - The report goes over HTTPS straight to the RoamTerm backend (not through the relay), 15 s timeout,
docs/support/CONTRACT.mdv1. Diagnostics are counts and flags only (version, OS and OS version, architecture, language, relay online/offline, P2P on/off, paired phones, open sessions, ADB / tmux installed, update channel): never host or user names, paths, keys, tokens, phone names or terminal content.GET /api/support/diagnosticsreturns exactly that object. - No API key is needed or sent (the function is public,
VERIFY_JWT=false).ROAMTERM_SUPPORT_URLoverrides the endpoint for tests (https, or http to loopback only).
- Control center: new "Support & feedback" page (
-
版本 0.11.3
发布于:
- Control center and menu bar: a USB cable or Wireless debugging link between this computer and a phone is no longer shown as the RoamTerm ADB tunnel. The chips read "ADB tunnel 2 min" only while the tunnel is up, and "Wi-Fi debugging · 2 min" / "USB · 2 min" for the computer's own adb link (no duration when it was already there at start).
GET /api/devices/linksand the ADB status carry it as a separatelocal {kind, serial, since};adb.methodis now onlytunnel. - ADB tab: a "On this computer" box with the serial and a working
adb -s <serial> shell; the tunnel's address and commands show only while adb lists the tunnel as a device; screenshot / APK / scrcpy say why they are disabled. - A local adb link is credited to a paired phone only when unambiguous (model suffix match, never two phones of one model).
- A Pro period that ended while the phone was away shows "Pro ended" instead of "Pro"; an offline phone's model / app version are marked "reported <when>" and its last route is not shown as current. Devices "ADB" filter counts local links.
- Control center and menu bar: a USB cable or Wireless debugging link between this computer and a phone is no longer shown as the RoamTerm ADB tunnel. The chips read "ADB tunnel 2 min" only while the tunnel is up, and "Wi-Fi debugging · 2 min" / "USB · 2 min" for the computer's own adb link (no duration when it was already there at start).
-
版本 0.11.2 ·
- Relay busy (HTTP 503/429 with Retry-After, E_LIMIT, close 4429): the agent waits as told (at least 3 s, with jitter) instead of retrying at once; an old agent answered with E_VERSION now says "update required".
- After the computer sleeps, the dead relay link is noticed within seconds of waking (wall-clock jump) instead of up to 90 s later.
- Phone sessions whose link died silently (Wi-Fi switch, lid closed, phone out of range) are closed after ~90 s (SSH keepalive), so the control center no longer lists sessions that are gone.
- A phone removed while its approval dialog was open no longer gets a shell.
- A damaged devices.json or config.json (power loss, full disk) no longer stops the agent from starting: the file is moved aside (
*.corrupt-<time>), the agent starts with defaults and logs a warning. Settings files are now fsynced. - Starting RoamTerm a second time opens the running agent's control center instead of a second menu bar icon.
- Started from the login item or Finder, the agent now finds Homebrew/Android SDK tools (tmux, adb, git), and phone shells start in your home folder instead of
/. An invalid$SHELLfalls back to/bin/sh.
-
版本 0.11.1 ·
- MCP: tool calls that run longer than 10 seconds (
shellwith a longtimeout_s,install_apk, slowui_tree) no longer fail with "RoamTerm agent error: EOF"; the IPC reply deadline now starts when the answer is ready. - MCP: after the agent restarts (update, crash), an open MCP session opens a new AI session by itself and repeats the call once, instead of answering "unknown AI session; restart the MCP server" until the AI tool was restarted.
- MCP: two AI tools calling
ui_treeat the same time no longer kill each other'suiautomator dump; dumps are serialized. - Test hook
ROAMTERM_ADB_TUNNEL_TEST_PORT(17555-17559 only) so a test agent can run next to the user's own; docs/mcp.md updated (refusal wording,0= default, restart behaviour).
- MCP: tool calls that run longer than 10 seconds (
-
版本 0.11.0 ·
- Go offline: pause this computer for 1 hour, until tomorrow 08:00 or until you turn it back on (menu bar panel and menu, Settings -> General,
roamterm pause [--for 1h | --until 08:00],roamterm resume). Phones are told first (agent_paused), then the relay link, direct (P2P) peers, open sessions and the ADB tunnel are closed and no new connection is accepted; the control center keeps working. The pause survives restarts and ends by itself; the menu bar icon turns grey ("Offline") and every page shows a banner. Protocol: docs/PROTOCOL.md section 14.
- Go offline: pause this computer for 1 hour, until tomorrow 08:00 or until you turn it back on (menu bar panel and menu, Settings -> General,
-
版本 0.10.1 ·
- Fixed: the menu bar panel froze on the data of its first load (e.g. a phone shown "Offline" while the control center showed it online with ADB connected): every later refresh threw because it removed the loading skeleton a second time.
-
版本 0.10.0 ·
- ADB link watchdog: while a phone's tunnel is on, the agent keeps adb attached to 127.0.0.1:16555 (retries 1, 2, 4, 8 s, then every 15 s; checks every 10 s and repairs an offline / missing entry). Before, one failed auto-connect right after the tunnel came up ("connection refused") was never retried.
- ADB tab "ADB link" card: the path (Direct / Relay) with the reason in plain words, how long it has been up, the phone's path preference (Auto / Prefer direct / Relay only, sent to the phone) and Reconnect; the watchdog state. The menu bar panel and the Devices card show the reason too. Protocol:
adb_statepath / path_reason / pref / since; agent → phoneadb_path_pref,adb_reconnect(docs/PROTOCOL.md section 13). - Fixed: the Devices card's action buttons overlapped the paired date and Overview "Quick actions" labels were clipped (two components shared the CSS class
.qa). -
roamterm updateasks a running agent to restart into the new version (IPCagent.restart) and ends its progress line.
-
版本 0.9.1 ·
- Fixed: when the agent stopped on its own (Quit from the menu bar panel, Restart after an update or a permission grant) the menu bar loop kept the process alive with its icon and window, and the restarted agent ran next to it. Two agents, the window bound to the dead one: the device showed offline and ADB off while the menu bar said ADB. The tray now ends with the agent, and the restart helper ends an old agent that is still there after 20 s (TERM, then KILL) before it starts the new one.
-
版本 0.9.0 ·
- New look for the whole control center: a refreshed design system (motion, elevation, components: modal, toasts, progress, skeletons), a sidebar with a gliding active indicator and collapsible rail, page transitions, light and dark.
- Overview: animated connection diagram (phone, direct P2P or relay, this computer, with the round trip), count-up stat cards and a live "Connected devices" strip (online for, ADB for, method, path, sessions).
- Updates: "Update now" shows progress (download, signature check, install) and then asks "Restart now / Later"; a background install never restarts while you work, it asks the next time the window is focused.
GET /api/update/status,POST /api/update/restart. - Menu bar (macOS): a click opens a panel with every phone's card (online for, ADB connected for, method USB / Wi-Fi / tunnel direct or relay, turbo, sessions, quick actions) and "Connection methods" with tips for a faster connection; right click keeps the menu. Windows / Linux: per-phone submenus with the same info.
GET /api/devices/links. - Devices, device page and every tab, Settings (two columns, scroll-spy navigation, Connection methods card), Pair a phone (animated QR, live waiting state, success animation), ADB QR, About and the remote desktop dialogs restyled on the new design.
-
版本 0.8.2 ·
- Direct (P2P) path: ICE gives a quiet phone more time (disconnected 10 s, failed 30 s instead of 5 s / 10 s; phones on Wi-Fi power save went silent for a few seconds and the path was dropped), and every closed P2P connection is logged with its reason.
-
版本 0.8.1 ·
- After an update the agent now restarts in every mode (Terminal / Finder: a detached helper starts it again with the same arguments; LaunchAgent:
launchctl kickstart -k) and opens the control center on Settings again. Before, an agent started from a terminal kept running the old version and its window showed the old page. - "Restart RoamTerm" after a permission grant works under the LaunchAgent too (KeepAlive only covers crashes since 0.8.0).
- A debug log line for every ended SSH connection (alive time, first read/write error) to diagnose dropped links.
- After an update the agent now restarts in every mode (Terminal / Finder: a detached helper starts it again with the same arguments; LaunchAgent:
-
版本 0.8.0 ·
- ADB turbo is now an opt-in, experimental setting (off by default;
adb_turbo_exp). A phone running 0.7.0's turbo saw truncated screenshots ("invalid PNG: unexpected EOF") and an ended mirror ("video stream ended: EOF"). The proxy no longer drops the whole connection for one stream's anomaly (only that stream is closed), tolerates A_OKAY without a payload, returns the buffer budget of ended streams, never sends A_CLSE ahead of unacknowledged data, writes each leg from its own goroutine, and shows the last turbo issue in the ADB tab. docs/adb/turbo.md - Pairing approval dialog (macOS): like the remote desktop consent, only the Deny button counts as Deny; a dialog that cannot be shown keeps the request waiting for an answer from the control center.
- Control center ADB QR page: clearer steps (the scanner is Android's own, in Settings -> Wireless debugging), 11 languages.
- macOS: RoamTerm is now a real app. The pkg installs
/Applications/RoamTerm.app(icon, version, copyright, usage descriptions; the executable is the agent itself, so permissions belong to RoamTerm.app), opens it after the install, and the window starts on "Pair a phone" while no phone is paired. First launch registers start at login. Double click / Spotlight / Launchpad always opens the control center (also while the agent runs). Upgrades replace the oldRoamterm.app. The curl installer creates~/Applications/RoamTerm.apptoo (--no-appskips);roamterm uninstallandinstall --uninstallremove it. - macOS: the login item no longer restarts the agent after Quit from the menu bar (launchd KeepAlive only on a crash).
- Remote desktop, first use on a Mac: when Screen Recording was never granted, a start from the phone now asks macOS (system prompt, RoamTerm appears in the Screen Recording list), shows a notification and brings the control center forward on a "Remote desktop needs permission" card that names the app to switch on (RoamTerm, or Terminal / iTerm / ... when started from a shell), opens the Privacy pane and can restart RoamTerm. The phone gets a specific "waiting for permission" state instead of a bare "permission not given". Accessibility (mouse and keyboard) missing: the session starts view-only and the same card explains it.
- Remote desktop consent: only the Deny button (osascript -128) counts as Deny. When the native dialog cannot be shown (-1713, no GUI session, osascript blocked) the request keeps waiting and the control center shows an Allow once / Always allow / Deny card with a notification; the dialog now opens in front. Protocol:
info.permission_assist, extra fields onno_permission_screen(docs/PROTOCOL.md).
- ADB turbo is now an opt-in, experimental setting (off by default;
-
版本 0.7.0 ·
- ADB turbo: the agent now speaks ADB's delayed-ACK flow control with the phone over the tunnel and classic ADB with the local adb server (split proxy on 127.0.0.1:16555). Screen mirroring over the internet arrives evenly instead of in bursts once per round trip, and bulk ADB (install, pull, exec-out) is ~14x faster at 120 ms RTT (emulator: 0.8 -> 11.3 MB/s). On by default; turns itself off for 10 minutes for a phone whose adbd lacks the feature or on any protocol error (Settings -> ADB turbo). docs/adb/turbo.md
- Screen tab: new "Fast" preset (960 px, 3 Mbit/s, 30 fps), the default over the tunnel; preset explanations; the link (USB / Wi-Fi / internet tunnel) and a Turbo badge in the stats; a collapsible Logs panel next to the phone (shares the Logs tab's stream); screenshot dialog with Copy image, Save, Show in folder, Open and Cmd/Ctrl+Shift+S.
- Remote desktop: the flow window follows the measured round trip (up to 12 frames, drop age 300 ms-1.2 s) and the bitrate no longer drops on a steady long link; "low latency" (default) vs smoother buffering chosen by the phone.
- New "AI / MCP" tab per device: status (AI access on the phone, ADB tunnel, roamterm on PATH), copy-ready setup for Claude Code, Codex CLI, Claude Desktop, Cursor, VS Code / Copilot, Windsurf and generic JSON, and the full tool list generated from the MCP server (grouped, searchable, read-only vs acts). Overview card "Connect an AI tool".
- Appearance: System / Light / Dark theme (Settings and a sidebar toggle), applied before first paint; the native window follows it.
- Devices page: the device card no longer overflows with long names; the rename pencil sits next to the name.
-
版本 0.6.0 ·
- Remote desktop from the phone (Pro on the phone): see and control this computer's screens over the end-to-end encrypted link (SSH subsystem
roamterm-desktop). macOS: ScreenCaptureKit + hardware H.264 (VideoToolbox), mouse / keyboard through CGEvent, system sound as AAC (macOS 13+). Windows and Linux (X11): screen capture + input with RoamTerm's tiles codec (no sound yet). Every monitor, quality presets with adaptive bitrate, sound off / on the phone / on the phone with the computer muted (restored afterwards, also after a crash), keep-awake during a session. - Consent per phone: ask every time (Allow once / Always / Deny on this computer), always (unattended, turned on in the control center with a warning) or off. While a session runs the menu bar shows it with "Stop screen sharing", a notification appears and the audit log records start / stop (never pixels or typed text). New "Remote desktop" tab on the phone page and a Settings section with the macOS Screen Recording / Accessibility permissions and Grant buttons.
- System monitor for the phone (
roamterm-ctl): CPU (per core), memory, disks, network, battery, uptime, model; process list and ending your own processes; power actions (lock, display off, sleep, keep awake, restart, shut down, log out) without sudo; audit logged and rate limited.
- Remote desktop from the phone (Pro on the phone): see and control this computer's screens over the end-to-end encrypted link (SSH subsystem
-
版本 0.5.1 ·
- Phone file browser: folders open faster over the relay: one directory reply now carries up to 250 entries (was 100), so a big folder needs fewer round trips.
-
版本 0.5.0 ·
- Phone screen in the desktop app: the new Screen tab mirrors and controls an Android phone over ADB (scrcpy server v3.3.4 built in, H.264 decoded in the window): mouse = touch, wheel = scroll, right click = back, keyboard + paste, home / recents / power / volume / rotate, quality presets (Smooth 720p by default over the relay, Sharp, Data saver), full screen.
- Logs tab: live logcat with 50 000 lines, level / tag / app filters, text or regex search with highlight, crash and ANR cards, follow / pause, copy selection, export to ~/Documents/RoamTerm Logs, clear the phone's buffer.
- Clipboard tab: send text to the phone, texts from the phone, clipboard sync per phone and per direction (Pro on the phone; off by default; password-manager content is never synced; text is never logged).
- Smarter terminal suggestions for the phone: folders ranked by how often and how recently you use them (zoxide / z / autojump, shell history, the folders your phone visited), jump to frequent folders from anywhere; inside Claude Code, Codex or Copilot CLI
/suggests their commands plus your own commands, skills and plugins read from disk; npm / pnpm scripts, make targets, ssh hosts. - New MCP tools: logcat_search, crash_report, ui_tree, tap, swipe, input_text, press_key, launch_app, stop_app, list_packages, app_info, open_url (same AI access switch, audit log and rate limits).
- The control center fills wide windows; a phone's page is split into tabs (Overview, ADB, Screen, Logs, Clipboard, Files).
-
版本 0.4.0 ·
- RoamTerm desktop app: the control center opens in RoamTerm's own window (macOS WebKit, Windows WebView2) with a Dock / taskbar icon instead of a browser window; opening it again brings the same window to the front (one window only). Browser window as fallback.
- Menu bar / tray: green when phones are connected, the phone's name (or the count) next to the icon on macOS, connected phones in the menu (click opens the phone), Settings, "Update available". OS notifications for files received from a phone and new versions.
- Settings: start at login, approval policy, ADB auto-connect (all / chosen phones / off), folder for files from phones, screenshot folder + auto-save + auto-copy, notifications, updates (check now, install in the app, optional automatic install), license & Pro (plan, renewal / expiry date as the phone reports it), security & privacy.
- ADB screenshots work over the relay: own 90 s deadline (was 20 s, a 2-5 MB PNG over the tunnel timed out), 32 MB capture cap (busy screens were cut at 8 MB), progress with seconds and Cancel, errors shown. Copy to clipboard, Save, Show in folder, Download, strip of recent screenshots.
- Phones report their real name, model, OS, app version and Pro state (
device_info, mobile 1.2.3); rename is a visible pencil on phone cards and the phone page. - "End-to-end encrypted" shown on Overview, phone pages, pairing and About, with the host key fingerprint.
- macOS binaries run on macOS 13 and later again (earlier builds required the build machine's macOS version).
-
版本 0.3.2 ·
- Fix: after a relay restart the agent could stay offline until restarted ("got 421"): a failed handshake left its TLS connection in the pool and every retry reused it; websocket handshakes now always open a fresh connection.
- Removing a phone (control center,
roamterm devices revoke) now also removes this computer from that phone's list: the agent sends the removed phones with the allowlist (allowlist_set.revoked), the relay answers that phone's presence query withremoved: true.
-
版本 0.3.1 ·
- Control center ADB panel: "Reconnect" also works while adb shows the phone as offline: it clears the stale entry and, when the phone's tunnel is down, says so; a step-by-step note tells what to do on the phone.
- When a phone's ADB tunnel comes back and adb still lists 127.0.0.1:16555 as offline, the agent reconnects adb by itself.
- A phone's newer link takes its own reverse-forward listener over at once (the old, half-open link no longer blocks the port).
-
版本 0.3.0 ·
- Fix: the ADB QR page of the control center stayed blank (black) when no QR was pending, when the window opened in the background or when a request failed. It now always shows something (loading, the QR, "no QR is waiting", or an error with Retry), content no longer waits for an opacity animation, and an expired window or reloaded one-time link shows a styled "This window expired" page with
roamterm open <page>instead of a plain error text. On Linux the control center also opens when the agent runs as a user service withoutDISPLAY(X / Wayland sockets are detected). - Control center, ADB panel on the device page: live state of
127.0.0.1:16555(device / unauthorized / offline / absent), tunnel and adb client count, Connect / Disconnect / Reconnect (disabled with a reason when adb is missing or the phone's tunnel is off, with the install command), phone info (model, Android, battery, screen), screenshot (inline + download), APK install (<= 1 GiB, progress), scrcpy, copyable commands. Only fixed operations exist; one action at a time; timeouts 20 s / 5 min. - Devices: rename (local label, <= 64 characters, shown everywhere), "End sessions now", open connections with kind and route (relay / P2P), last connection route, readable timeline with copy buttons. Overview: cards for devices, ADB, pending QR codes, AI sessions, file hand-offs, P2P, and update status with "Update now" for self-managed installs (package-manager installs show their command).
- New ctl messages
term_complete(tab completion: commands,cddirectories, git, paths in the tmux pane's cwd) andshell_history(zsh / bash / fish / PowerShell, secrets filtered), seedocs/PROTOCOL.md. - Fix: the phone's ADB report was cleared when ANY ctl stream of the device closed; now only the stream that reported it owns it.
- Fix: the ADB QR page of the control center stayed blank (black) when no QR was pending, when the window opened in the background or when a request failed. It now always shows something (loading, the QR, "no QR is waiting", or an error with Retry), content no longer waits for an opacity animation, and an expired window or reloaded one-time link shows a styled "This window expired" page with
-
版本 0.2.0 ·
- Desktop control center: the two bare tray pages became a local web app (Overview, Pair a phone, Devices and device detail, ADB QR, About; Night/Day theme from the design tokens, 11 languages, polling live updates). Same security model as before (127.0.0.1, random port, one-time token -> HttpOnly SameSite=Strict cookie, Host + Origin checks, now a strict CSP with no inline code or external resources). It opens in an app-style window (Edge / Chrome / Brave / Chromium
--app=, default browser as fallback) and runs whenever there is a desktop session, with or without the tray. -
roamterm open [overview|pair|devices|adb-qr|about]and a tray item "Open RoamTerm". The macOS app now opens the control center when started from Finder (a launcher script hands over to the agent; double-clicking while the agent runs opens the window instead of doing nothing). - QR pairing for Android Wireless debugging:
adb_pair_qr(roamterm-ctl) shows the QR in the control center, orroamterm adb qrprints it in the terminal. In memory only, never logged, valid 5 minutes. -
tmux_kill(roamterm-ctl): the phone can remove a terminal session. - File hand-off:
files_info,files_ackand the pushedfiles_offer. Drag files onto a device in the control center (up to 2 GiB each); the phone downloads them over SFTP from a hidden outbox inside the SFTP root; files from phones land in~/Downloads/RoamTerm("Show in Finder / Explorer"). - The control center shows when the computer's adb is connected through a phone's tunnel (
client connected). -
roamterm runhints are OS-specific (macOS no longer says "Ctrl+C": "Control-C (⌃C)", ⌘T, menu bar), in all 11 languages, plus a "Control center: roamterm open" line. The tray hint is now shown on every OS. - The update check also runs for package-manager installs, only to show "update available" in the control center.
- Desktop control center: the two bare tray pages became a local web app (Overview, Pair a phone, Devices and device detail, ADB QR, About; Night/Day theme from the design tokens, 11 languages, polling live updates). Same security model as before (127.0.0.1, random port, one-time token -> HttpOnly SameSite=Strict cookie, Host + Origin checks, now a strict CSP with no inline code or external resources). It opens in an app-style window (Edge / Chrome / Brave / Chromium
-
版本 0.1.3 ·
-
adb_usb_tcpip(roamterm-ctl): switches a phone plugged in by USB to TCP mode for the no-Wi-Fi ADB setup; slow ctl requests are answered asynchronously.
-
-
版本 0.1.2 ·
- Messages follow the macOS interface language (System Settings) instead of the region-based
LANG(English UI with a Turkish region now gets English; launchd/terminals withoutLANGno longer fall back to English on a Turkish Mac). Order: ROAMTERM_LANG, LC_ALL, LC_MESSAGES, macOS UI language, LANG, English.
- Messages follow the macOS interface language (System Settings) instead of the region-based
-
版本 0.1.1 ·
-
roamterm runnow says when it is connected and what to do next (pair the phone, start at login, stop), in the system language; it no longer looks stuck after the first line.
-
-
版本 0.1.0 ·
- First public release, served from https://dl.roamterm.com/agent/ (the GitHub repo is private).
-
curl https://roamterm.com/install | shworks on stock macOS: without OpenSSL 3 the downloaded binary verifies the manifest and itself (roamterm verify-download, key from the installer). - macOS self-update and install use per-arch binaries (the universal one stays in the .pkg).
- ADB reverse tunnel: the newest link of a phone takes over (Wi-Fi to mobile data).