什么是VibeTunnel?

VibeTunnel是一款革命性的终端共享工具,将Mac终端无缝扩展到任何设备

想要在外出时检查AI代理的运行状态?需要从手机监控长时间运行的构建任务?希望与同事分享终端会话而无需复杂的SSH设置?VibeTunnel让这一切变得轻而易举,零配置即可实现。

🌐

浏览器访问

从任何设备的浏览器控制Mac终端,无需安装额外软件。支持完整的终端功能,包括颜色、光标控制和键盘快捷键。

🚀

零配置启动

无需SSH密钥、端口转发或复杂配置。下载安装后即可使用,菜单栏一键启动服务器。

🤖

AI代理友好

完美支持监控Claude Code、ChatGPT或任何基于终端的AI工具。实时活动跟踪显示每个会话的运行状态。

📊

动态终端标题

实时活动跟踪显示每个会话的运行状态。Claude命令显示具体状态(思考中、编写中、空闲等)。

🔄

Git跟随模式

终端自动跟随IDE的分支切换。当你在工作树中切换分支时,主仓库自动同步到相同分支。

📱

移动端就绪

原生iOS应用和响应式Web界面,完美适配手机和平板。支持触摸操作和移动端键盘。

技术架构深度解析

基于现代跨平台架构,提供高性能的实时终端共享体验

🍎

原生macOS应用

Swift原生开发
• 294个Swift文件,完整的原生体验
• ServerManager:中央服务器生命周期协调器
• TTYForwardManager:终端转发逻辑
• SessionMonitor:活动会话跟踪
• 菜单栏集成和自动更新支持

Node.js/Bun服务器

高性能JavaScript后端
• 441个TypeScript/JavaScript文件
• Express应用 + WebSocket实时通信
• PTY Manager:原生伪终端进程管理
• BufferAggregator:终端缓冲区优化
• 支持Node.js 20+和Bun运行时

📱

iOS伴侣应用

移动终端访问
• BufferWebSocketClient:WebSocket客户端
• TerminalView:终端渲染UI
• TerminalHostingView:UIKit集成层
• 原生触摸支持和键盘处理
• 与macOS应用无缝同步

🌐

Web前端

现代Web技术栈
• TypeScript + Lit组件框架
• xterm.js终端渲染引擎
• WebSocket客户端实时更新
• 响应式设计适配所有设备
• PWA支持和离线功能

系统架构组件图

┌─ macOS Menu Bar App (Swift - 64,717行代码)
│ ├─ ServerManager.swift - 服务器生命周期管理
│ ├─ BunServer.swift - Bun运行时集成
│ ├─ SessionMonitor.swift - 会话监控和活动跟踪
│ ├─ TerminalManager.swift - 终端实例管理
│ ├─ GitRepositoryMonitor.swift - Git仓库监控
│ ├─ WindowTracker.swift - 窗口跟踪服务
│ ├─ TailscaleService.swift - Tailscale VPN集成
│ ├─ NgrokService.swift - ngrok隧道服务
│ ├─ CloudflareService.swift - Cloudflare隧道
│ ├─ NotificationService.swift - 系统通知
│ ├─ PowerManagementService.swift - 电源管理
│ └─ SparkleUpdaterManager.swift - 自动更新
├─ Node.js/Bun Server (TypeScript - 42,289行代码)
│ ├─ app.ts - Express应用配置
│ ├─ pty-manager.ts - PTY进程管理
│ ├─ buffer-aggregator.ts - 缓冲区聚合优化
│ ├─ terminal-manager.ts - 终端会话管理
│ ├─ session-service.ts - 会话生命周期
│ ├─ auth-service.ts - 多重认证系统
│ ├─ git-service.ts - Git集成服务
│ ├─ repository-service.ts - 仓库管理
│ └─ remote-registry.ts - 远程服务器注册
├─ iOS App (Swift)
│ ├─ BufferWebSocketClient.swift - WebSocket客户端
│ ├─ TerminalView.swift - 终端UI渲染
│ ├─ TerminalHostingView.swift - UIKit集成
│ └─ SessionListView.swift - 会话列表管理
└─ Web Frontend (TypeScript/Lit)
├─ terminal.ts (1,771行) - 完整终端实现
├─ session-view.ts - 会话视图组件
├─ buffer-subscription-service.ts - 缓冲区订阅
├─ ai-sessions.ts - AI助手会话检测
├─ title-mode-utils.ts - 动态标题模式
├─ git-service.ts - Git状态跟踪
├─ auth-client.ts - 认证客户端
└─ websocket-input-client.ts - WebSocket输入处理

深度技术实现解析

基于源码分析的核心技术细节和创新设计

🧠

AI会话智能检测

精确的AI助手识别算法
• 支持Claude、Gemini、OpenHands、Aider、Codex
• 基于可执行文件名的精确匹配
• 避免误报的边界词检测
• 自动发送标题更新提示
• 实时活动状态跟踪(空闲/活跃/运行中)

📊

会话监控系统

实时会话状态管理
• SessionMonitor.swift:237行核心监控逻辑
• 2秒缓存间隔的高效轮询
• 会话结束检测和通知
• Git分支状态实时跟踪
• 进程ID和退出码监控

🔄

缓冲区聚合优化

高性能数据流处理
• BufferAggregator:514行优化算法
• 二进制协议(魔术字节0xBF)
• WebSocket连接池管理
• 跨服务器会话访问支持
• 自动重连和优雅清理

🎨

终端渲染引擎

xterm.js深度集成
• Terminal.ts:1,771行完整实现
• 虚拟滚动和性能优化
• 操作队列批处理(8ms帧时间)
• 响应式尺寸调整
• URL高亮和点击处理

🔐

多重认证架构

企业级安全设计
• 系统认证:macOS本地用户验证
• SSH密钥:Ed25519密钥支持
• PAM认证:Linux可插拔认证
• 环境变量:部署环境支持
• 本地绕过:开发环境专用

🌐

跨平台通信协议

统一的WebSocket协议
• 二进制缓冲区传输优化
• JSON控制消息和事件
• 会话订阅/取消订阅机制
• 远程服务器连接池
• 自动故障转移和重连

核心算法实现

AI会话检测算法 (ai-sessions.ts)

const AI_ASSISTANTS = ['claude', 'gemini', 'openhands', 'aider', 'codex'];
export function isAIAssistantSession(session: Session): boolean {
const commands = Array.isArray(session.command) ? session.command : [session.command];
return commands.some((cmd) => {
const executableName = cmd?.split('/').pop()?.toLowerCase() || '';
return AI_ASSISTANTS.some(
(ai) => executableName === ai ||
executableName.startsWith(`${ai}.`) ||
executableName.startsWith(`${ai}-wrapper`)
);
});
}

缓冲区聚合协议 (buffer-aggregator.ts)

// 二进制协议格式:
// [0xBF] + [4字节会话ID长度] + [UTF-8会话ID] + [缓冲区数据]
private createBinaryMessage(sessionId: string, data: Buffer): Buffer {
const sessionIdBuffer = Buffer.from(sessionId, 'utf8');
const lengthBuffer = Buffer.allocUnsafe(4);
lengthBuffer.writeUInt32LE(sessionIdBuffer.length, 0);
return Buffer.concat([
Buffer.from([0xBF]), // 魔术字节
lengthBuffer, // 会话ID长度
sessionIdBuffer, // 会话ID
data // 终端数据
]);
}

会话状态检测 (SessionMonitor.swift)

static func detectEndedSessions(
from old: [String: ServerSessionInfo],
to new: [String: ServerSessionInfo]
) -> [ServerSessionInfo] {
return old.compactMap { id, oldSession in
if oldSession.isRunning,
let updated = new[id], !updated.isRunning {
return oldSession // 检测到会话结束
}
return nil
}
}

核心特性详解

深入了解VibeTunnel的强大功能和创新设计

🔧

智能键盘处理

多模式键盘捕获
• 可切换的捕获模式,智能快捷键路由
• Cmd+1...9/0 (Mac) 或 Ctrl+1...9/0 (Linux) 快速切换会话
• 移动端优化的虚拟键盘支持
• 完整的终端快捷键兼容性

🔒

多重安全认证

企业级安全设计
• 系统认证:macOS本地用户账户
• SSH密钥认证:Ed25519密钥支持
• PAM认证:Linux可插拔认证模块
• 环境变量认证:部署环境支持
• 本地绕过模式:开发环境专用

🎬

会话录制

asciinema格式录制
• 所有会话自动录制为asciinema格式
• 支持后续回放和分享
• 完整的终端状态保存
• 可导出为标准格式文件

🐚

Shell别名支持

完整Shell环境
• 自定义别名和Shell函数自动工作
• 环境变量完整继承
• 支持Bash、Zsh、Fish等Shell
• 透明的命令解析和执行

高性能优化

企业级性能
• 优化的Node.js服务器,最小资源使用
• WebSocket二进制协议优化
• 缓冲区聚合减少消息频率
• Apple Silicon原生优化(M1+)

🌍

远程访问选项

多种连接方式
• Tailscale:安全的点对点VPN网络
• ngrok:公共HTTPS隧道
• Cloudflare Quick Tunnel:快速隧道
• 本地网络:局域网直接访问

安装和使用指南

多种安装方式,满足不同使用场景

🍎

macOS应用(推荐)

原生macOS体验
• 要求:Apple Silicon Mac (M1+)
• 菜单栏集成和自动更新
• 直接下载或通过Homebrew安装
brew install --cask vibetunnel

📦

npm包(跨平台)

Linux和无头系统
• 支持Node.js 20+的所有系统
• 包括Intel Mac和Linux
npm install -g vibetunnel
• 完整的Web UI,无菜单栏应用

🚀

快速开始

三步即可使用
1. 下载并安装VibeTunnel
2. 点击菜单栏图标启动服务器
3. 访问 http://localhost:4020
4. 使用 vt 命令转发终端会话

vt命令使用示例

# 在浏览器中运行任何命令
$ vt pnpm run dev
$ vt npm test
$ vt python script.py
# 监控AI代理,自动活动跟踪
$ vt claude --dangerously-skip-permissions
$ vt --title-mode dynamic claude
# 使用Shell别名
$ vt gs # 你的'git status'别名正常工作!
$ vt claude-danger # 自定义别名被解析
# Git跟随模式
$ vt follow # 跟随当前分支
$ vt follow main # 切换到main并跟随
$ vt unfollow # 停止跟随

应用场景

从AI代理监控到团队协作,VibeTunnel适用于各种专业场景

🤖

AI代理监控

• 实时监控Claude Code、ChatGPT等AI工具
• 动态标题显示AI状态(思考中、编写中等)
• 移动端随时检查长时间运行的AI任务
• 完整的会话录制和回放功能

👥

团队协作

• 无需复杂SSH设置即可分享终端会话
• 实时协作调试和问题排查
• 代码审查和结对编程支持
• 安全的远程访问控制

📱

移动开发

• 在iPad或iPhone上访问开发环境
• 外出时监控构建和部署任务
• 移动端代码审查和快速修复
• 响应式Web界面适配所有设备

🔄

Git工作流

• Git跟随模式自动同步分支切换
• 工作树和主仓库无缝协作
• IDE保持打开,服务器持续运行
• 零手动干预的分支同步

🏗️

DevOps运维

• 远程服务器管理和监控
• 构建和部署流程实时跟踪
• 多服务器会话统一管理
• 安全的生产环境访问

🎓

教学培训

• 实时演示终端操作
• 学生可在任何设备上跟随学习
• 会话录制用于课后复习
• 支持大规模在线教学

技术优势

基于现代技术栈,提供企业级的性能和可靠性

高性能架构

• Node.js/Bun双运行时支持
• WebSocket二进制协议优化
• 缓冲区聚合减少网络开销
• Apple Silicon原生优化

🔒

企业级安全

• 多重认证模式支持
• SSH密钥和PAM认证
• 安全隧道(Tailscale/ngrok)
• 本地优先的安全设计

🌍

跨平台兼容

• macOS原生应用 + iOS伴侣
• Linux和Docker完整支持
• 响应式Web界面
• 统一的API和协议

项目开发统计(基于源码分析)

1807
Git提交次数
64,717
Swift代码行数
42,289
TS/JS代码行数
294
Swift源文件
441
TS/JS源文件
Beta.16
当前版本

核心文件代码量统计

终端渲染核心
terminal.ts: 1,771行
buffer-aggregator.ts: 514行
session-view.ts: 800+行
macOS服务层
SessionMonitor.swift: 237行
ServerManager.swift: 500+行
TerminalManager.swift: 400+行
AI集成功能
ai-sessions.ts: 51行
title-mode-utils.ts: 42行
activity-status检测: 集成

开始你的VibeTunnel之旅

VibeTunnel不仅仅是一个终端共享工具,它是现代开发工作流的革命性升级。无论你是需要监控AI代理、进行远程协作,还是在移动设备上进行开发,VibeTunnel都能提供无缝的体验。

准备好开始vibe了吗?立即下载VibeTunnel,开启你的终端隧道之旅!