remote-iterm2 v1.2.6
v1.2.6  ·  手机远程控制

remote-iterm2

通过手机浏览器,在局域网内远程控制 Mac 上的 iTerm2 终端。实时输出、语法着色、多窗口管理、分屏对比、广播命令——全部在你的掌心中。

$ npm install -g remote-iterm2 $ remote-iterm2 remote-iterm2 is running Open on your phone: http://192.168.1.119:7291 Stop: remote-iterm2 stop
01

快速开始

安装

$ npm install -g remote-iterm2

启动 / 停止 / 重启

remote-iterm2 # 启动服务
remote-iterm2 stop # 停止服务
remote-iterm2 restart # 重启服务
💡 启动后终端打印访问地址,例如 http://192.168.1.119:7291,用手机 Safari 打开即可(需与 Mac 处于同一 Wi-Fi)。

系统要求

项目要求
macOS需安装 iTerm2
Node.js>= 18
Port7291(HTTP + WebSocket 共用)
Mobile与 Mac 处于同一局域网
02

界面总览

┌──────────────────────────────────────────────────┐ 顶部状态栏 连接状态 · 延迟 · ALERT · 广播 · 分屏 ├──────────────────────────────────────────────────┤ 标签页管理栏 Tab 切换 / 长按重命名 / + / × ├──────────────────────────────────────────────────┤ 终端内容区 实时输出 · 语法着色 · 光标 · 滚动 ├──────────────────────────────────────────────────┤ 快捷操作栏 ↵ · ESC · ^C · ^D · ^Z · ^L · ↑↓ · TAB · ⇧TAB · 剪贴板 ├──────────────────────────────────────────────────┤ 命令输入区 输入命令 · 发送 · 历史导航 · 切换键盘 └──────────────────────────────────────────────────┘
📱 横屏模式下布局自动压缩高度,优化手机空间利用率。
03

顶部状态栏

3.1  连接状态指示灯

颜色含义
● 绿色(光晕动画)已连接到 Mac
● 红色连接断开,自动重连中

断开时全屏出现半透明遮罩并显示 RECONNECTING,自动重连,无需手动刷新。

3.2  延迟显示(ms)

每 5 秒自动测量往返延迟,颜色区分网络质量:

颜色延迟范围网络状态
绿色< 50ms良好
黄色50–149ms一般
红色≥ 150ms较差

3.3  ALERT — 长命令完成提醒

点击 🔔 图标切换。开启后(黄色高亮),当终端输出停止超过 4 秒,手机会震动提醒(双次短振)。适合等待编译、下载等耗时命令时使用。

3.4  SCROLL — 滚动锁定

锁定(红色):终端内容不会自动滚动,可自由查看历史。解锁(默认):有新输出时自动滚动到最新行。

3.5  CAST — 广播模式

点击 📡 图标切换。开启后(紫色高亮),命令同时广播到多个窗口。详见 第 8 节

3.6  SPLIT — 分屏视图

点击 ⊟ 图标切换。开启后(蓝色高亮),屏幕分为两个独立终端面板。详见 第 6 节。仅有一个 Session 时此按钮变灰禁用。

3.7  N win — 窗口切换

显示当前 iTerm2 窗口总数(如 "2 win")。点击弹出窗口地图可切换窗口。只有 1 个窗口时按钮变灰禁用。

04

标签页管理栏

操作说明
切换标签页点击标签名,活跃标签以绿色下划线高亮。
重命名标签页长按标签名约 0.5 秒,弹出输入框,输入新名称后回车确认。
新建标签页点击标签栏最右侧 + 按钮,在 iTerm2 新建标签页。
关闭标签页点击标签栏最右侧 ✕ 按钮,关闭当前标签(仅剩 1 个时自动禁用)。
💡 分屏模式下,顶部标签栏显示当前焦点面板对应窗口的标签页。
05

终端内容区

5.1  语法着色规则

终端输出按内容类型自动着色,方便快速识别关键信息:

颜色代表内容
亮白色(粗体)当前命令提示行(最后一行)
青色(粗体)Shell 提示符(user@host $、%、# 等)
红色错误信息(error、FAIL、fatal、ENOENT 等)
黄色警告信息(warning、WARN、deprecated 等)
绿色成功信息(success、done、compiled、OK 等)
紫蓝色文件路径(/、~/、./ 开头)及目录树符号
浅绿色Git diff 新增行(+ 开头)
粉红色Git diff 删除行(- 开头)
暗灰色注释行(# 开头)
浅灰色普通输出

5.2  光标

终端末尾显示 绿色闪烁方块光标 █(仅在 Shell 提示符状态下出现)。运行交互式应用(vim、htop 等)时光标自动隐藏。

5.3  滚动查看

在终端区域上下滑动查看历史输出。开启滚动锁定后,新输出不会打断浏览。

06

分屏视图

同时查看两个不同 Session 的终端输出,适合对比日志、同时监控多个进程。

操作说明
开启分屏点击 SPLIT 按钮(需至少 2 个 Session)。主面板 绿色边框,分屏面板 蓝色边框
布局方向竖屏上下分屏;横屏左右分屏。
调整比例拖动分隔条,可调整主面板与分屏面板比例(20%–80%)。
切换焦点点击任意面板,边框变亮即为焦点面板,后续命令发送到该 Session。
分屏标签栏分屏面板有独立标签栏,支持切换标签、新建/关闭,可为分屏面板选择不同窗口。
关闭分屏再次点击 SPLIT 按钮,恢复单面板模式。
07

窗口地图

点击 N win 按钮打开窗口地图。弹出半透明全屏遮罩,按比例还原各 iTerm2 窗口在屏幕上的实际位置和大小。

功能说明
切换窗口点击窗口编号块切换,地图自动关闭;点击遮罩空白区域取消。
广播目标选择广播模式下变为多选模式,紫色高亮 = 已选为广播目标。
08

广播模式

将同一条命令同时发送到多个 iTerm2 窗口,适合批量操作多台服务或多个项目。

步骤说明
1. 开启广播点击 CAST 按钮(默认选中所有窗口),标签栏下方出现 紫色横幅
2. 选择目标点击横幅右侧 EDIT,在窗口地图多选模式中勾选目标窗口。
3. 发送命令输入框提示符变为 >,发送后命令同时发至所有目标窗口。
4. 关闭广播再次点击 CAST 按钮,恢复单窗口发送。
09

快捷操作栏

位于终端内容区下方,提供高频终端操作的一键按钮,无需展开键盘即可操作。

9.1  控制键

按钮功能发送字符
↵ Enter发送回车\n
ESC发送 Escape 键\x1b
^C中断当前进程(Ctrl+C)\x03
^D发送 EOF / 退出(Ctrl+D)\x04
^Z挂起进程到后台(Ctrl+Z)\x1a
^L清屏(Ctrl+L)\x0c

9.2  光标导航键

按钮功能
↑ 上箭头上方向键(浏览历史命令 / 菜单导航)
↓ 下箭头下方向键
TAB发送 Tab 键(自动补全)
⇧TAB发送 Shift+Tab(反向补全 / 反向切换选项)

9.3  剪贴板操作

按钮功能
📋 粘贴从手机剪贴板读取内容,直接发送到终端
复制将当前终端内容全部复制到手机剪贴板
🗑️ 清除行清除当前命令行输入(Ctrl+U)
⚠️ iOS 首次使用粘贴,需在弹窗中确认允许剪贴板访问权限。
10

命令输入区

10.1  命令输入框

输入框左侧提示符:$ 普通模式 → 当前焦点 Session;> 广播模式 → 所有选中窗口。已禁用自动纠错和首字母大写,适合终端命令输入。

10.2  发送命令

点击右侧发送按钮,或按键盘 Return 键。发送后命令自动保存到历史(最多 100 条,存于浏览器 localStorage)。

10.3  命令历史导航

操作效果
按 ↑ 方向键向历史前翻(更早的命令)
按 ↓ 方向键向历史后翻(更近的命令),回到底部恢复原始输入

10.4  切换虚拟键盘

点击输入区左侧的键盘图标,切换到内置虚拟键盘模式(详见 第 11 节)。

11

虚拟键盘

专为终端操作设计的内置软键盘,提供字母、数字及常用符号布局,无需依赖系统键盘。

11.1  进入 / 退出

进入:点击命令输入区左侧的键盘图标。
退出:点击虚拟键盘左下角的 Terminal 图标,返回命令输入框。

11.2  三种键盘布局

模式内容切换方式
ABC(字母)标准 QWERTY,含 SHIFT(单次大写)和 DEL默认
123(符号)数字 0–9、/ . ~ * $ | > < & ; = " ' \ ` # 等按 123 键
#+=(高级)! @ % ^ + = ? : ( ) [ ] { } , ; " ' ` ~ \ _ 等符号模式下按 #+= 键

11.3  底部功能行

按钮功能
🖥️ Terminal退出虚拟键盘,返回命令输入框
ABC / 123字母 / 符号模式切换
-快速输入连字符
SPACE发送空格
.快速输入句点
发送回车
12

颜色语义说明

整个界面使用统一的颜色系统,便于快速识别状态:

绿色 #10b981
主色调:连接正常、当前选中 Tab、主面板边框、发送按钮
青蓝色 #38bdf8
分屏面板标识色
紫色 #818cf8
广播模式标识色
黄色 #fbbf24
网络延迟中等、ALERT 开启状态
红色 #f87171
连接断开、网络延迟差、滚动锁定开启
13

PWA 安装

将 remote-iterm2 添加为手机主屏幕应用,获得全屏无浏览器栏的沉浸体验:

  1. 在 iPhone Safari 中打开应用 URL(如 http://192.168.1.119:7291)
  2. 点击底部分享按钮 → 添加到主屏幕
  3. 确认名称后点击添加
安装后以全屏模式启动,自动处理 Dynamic Island / 刘海屏安全区域,屏幕常亮不锁屏。
14

配置说明与常见问题

配置文件

在 Mac 上创建 ~/.remote-iterm2.json 可自定义行为:

"tabColor": false
配置项默认值说明
tabColortrue切换窗口时自动改变 iTerm2 标签背景色。设为 false 可保留手动颜色。

常见问题

Q: 页面一直显示 RECONNECTING?
请确认手机和 Mac 在同一 Wi-Fi 下,且 Mac 已运行 remote-iterm2(端口 7291 未被防火墙拦截)。
Q: 发送命令后没有执行?
请使用快捷操作栏的 Enter 按钮,或确保通过发送按钮提交,而非直接按系统键盘 Return。
Q: 粘贴按钮没有效果?
iOS 首次使用需授权剪贴板访问权限,在弹窗中选择「允许粘贴」。
Q: 终端显示 ANSI 颜色转义代码?
当前版本以正则匹配进行语义着色,不解析 ANSI 转义序列,部分程序的颜色输出可能显示原始字符,属已知限制。