手机、平板、电脑同时控制Claude Code / Codex ?:Paseo实战指南

Paseo 开源工具实战:多 AI 编程代理统一管理,手机电脑平板都能控制

前言

AI 编程工具这两年爆发式增长:Claude Code、Codex、OpenCode、Pi......每个工具都有各自的优势,但切换成本高、管理分散。

有没有一种工具,能够把这些 AI 编程代理统一管起来?

今天介绍一个开源项目 Paseo 。它不是一个新的 AI 模型,也不是一个新的 IDE,而是一个统一调度层------跑在本地开发机上,用一个界面管理所有 AI 编程代理,手机、电脑、平板都能随时接入控制。


Paseo 是什么

Paseo(GitHub: github.com/getpaseo/paseo)是一个开源的 AI 编程代理统一调度层,核心理念是:

让 AI 编程代理跑在本地开发机上,通过统一界面从任意设备远程管理和调度。

它不是一个新的 AI 模型,不替代 Claude Code 或 Codex,而是叠加在现有工具之上的管理和协调层。

核心价值

根据官方 README ,Paseo 的核心价值在于:

  • 多代理统一调度:支持 Claude Code、Codex、GitHub Copilot、OpenCode、Pi 等,通过统一界面管理不同工具的工作状态
  • 混合工作流编排:可以用 Claude Code 做规划、Codex 做实现、另一个 Agent 做代码 review,各司其职、协同工作
  • 跨设备远程控制:支持 iOS、Android、桌面端、Web 端、CLI,手机电脑平板都能随时接入
  • 多会话上下文保持:一个界面同时追踪多个 Agent 的任务进度和上下文
  • 本地优先:Agents 运行在本地开发机上,保留原有的开发环境和工具链配置,无需迁移
  • 隐私优先:无遥测、无追踪、无强制登录

架构原理

#mermaid-svg-qBfVQNEkPqnNwZlG{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-qBfVQNEkPqnNwZlG .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-qBfVQNEkPqnNwZlG .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-qBfVQNEkPqnNwZlG .error-icon{fill:#552222;}#mermaid-svg-qBfVQNEkPqnNwZlG .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-qBfVQNEkPqnNwZlG .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-qBfVQNEkPqnNwZlG .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-qBfVQNEkPqnNwZlG .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-qBfVQNEkPqnNwZlG .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-qBfVQNEkPqnNwZlG .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-qBfVQNEkPqnNwZlG .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-qBfVQNEkPqnNwZlG .marker{fill:#333333;stroke:#333333;}#mermaid-svg-qBfVQNEkPqnNwZlG .marker.cross{stroke:#333333;}#mermaid-svg-qBfVQNEkPqnNwZlG svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-qBfVQNEkPqnNwZlG p{margin:0;}#mermaid-svg-qBfVQNEkPqnNwZlG .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-qBfVQNEkPqnNwZlG .cluster-label text{fill:#333;}#mermaid-svg-qBfVQNEkPqnNwZlG .cluster-label span{color:#333;}#mermaid-svg-qBfVQNEkPqnNwZlG .cluster-label span p{background-color:transparent;}#mermaid-svg-qBfVQNEkPqnNwZlG .label text,#mermaid-svg-qBfVQNEkPqnNwZlG span{fill:#333;color:#333;}#mermaid-svg-qBfVQNEkPqnNwZlG .node rect,#mermaid-svg-qBfVQNEkPqnNwZlG .node circle,#mermaid-svg-qBfVQNEkPqnNwZlG .node ellipse,#mermaid-svg-qBfVQNEkPqnNwZlG .node polygon,#mermaid-svg-qBfVQNEkPqnNwZlG .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-qBfVQNEkPqnNwZlG .rough-node .label text,#mermaid-svg-qBfVQNEkPqnNwZlG .node .label text,#mermaid-svg-qBfVQNEkPqnNwZlG .image-shape .label,#mermaid-svg-qBfVQNEkPqnNwZlG .icon-shape .label{text-anchor:middle;}#mermaid-svg-qBfVQNEkPqnNwZlG .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-qBfVQNEkPqnNwZlG .rough-node .label,#mermaid-svg-qBfVQNEkPqnNwZlG .node .label,#mermaid-svg-qBfVQNEkPqnNwZlG .image-shape .label,#mermaid-svg-qBfVQNEkPqnNwZlG .icon-shape .label{text-align:center;}#mermaid-svg-qBfVQNEkPqnNwZlG .node.clickable{cursor:pointer;}#mermaid-svg-qBfVQNEkPqnNwZlG .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-qBfVQNEkPqnNwZlG .arrowheadPath{fill:#333333;}#mermaid-svg-qBfVQNEkPqnNwZlG .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-qBfVQNEkPqnNwZlG .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-qBfVQNEkPqnNwZlG .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-qBfVQNEkPqnNwZlG .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-qBfVQNEkPqnNwZlG .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-qBfVQNEkPqnNwZlG .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-qBfVQNEkPqnNwZlG .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-qBfVQNEkPqnNwZlG .cluster text{fill:#333;}#mermaid-svg-qBfVQNEkPqnNwZlG .cluster span{color:#333;}#mermaid-svg-qBfVQNEkPqnNwZlG div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-qBfVQNEkPqnNwZlG .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-qBfVQNEkPqnNwZlG rect.text{fill:none;stroke-width:0;}#mermaid-svg-qBfVQNEkPqnNwZlG .icon-shape,#mermaid-svg-qBfVQNEkPqnNwZlG .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-qBfVQNEkPqnNwZlG .icon-shape p,#mermaid-svg-qBfVQNEkPqnNwZlG .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-qBfVQNEkPqnNwZlG .icon-shape .label rect,#mermaid-svg-qBfVQNEkPqnNwZlG .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-qBfVQNEkPqnNwZlG .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-qBfVQNEkPqnNwZlG .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-qBfVQNEkPqnNwZlG :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 远程客户端
公网中转
本地开发机
🤖 AI 编程任务

Claude Code / Codex
📦 Paseo Daemon

6767端口
🔄 Relay Server
📱 手机
💻 电脑
📟 平板

  • Daemon:运行在本地开发机上,负责管理 AI 编程任务
  • Relay Server:充当中转节点,让公网设备能访问内网 Daemon
  • 客户端:手机、平板、电脑,通过 WebSocket 与 Daemon 通信

快速上手

安装 CLI

bash 复制代码
npm install -g @getpaseo/cli

启动 Daemon

bash 复制代码
paseo daemon start

客户端连接

Paseo 提供多种客户端: 下载地址 Paseo -- Run Claude Code, Codex, Copilot, OpenCode from anywhere

  • 桌面端:Windows、Mac os
  • 移动端:iOS/Android App
  • CLI:直接通过命令行操作

海外 Relay 的延迟问题

Paseo 官方 Relay 部署在国外。国内用户直连延迟通常在 500ms+,甚至更高。

这个延迟会带来什么问题:

  • 命令响应迟钝,操作反馈慢
  • 语音控制、视频流等实时功能基本不可用
  • 手机上操作经常要等好几秒才有反馈

社区解决方案

针对这个问题,社区主要有两种思路:

方案一:自建 Relay

在国内云服务器上部署 Relay 程序,绕过官方海外节点。常用工具:

  • frp:经典内网穿透工具,需要云服务器作为中转
  • ngrok:开源方案,支持自定义域名,免费版限制多

这类方案的共同点是:需要额外部署云服务器,2核4G 机器加带宽成本,每月 100-200 元。

方案二:内网穿透直连

将本地 Daemon 直接暴露到公网,不走官方 Relay。

几种主流内网穿透服务对比:

方案 延迟表现 配置复杂度 成本
花生壳 国内中转 图形化,较简单 免费版有限制
frp 自建 取决于服务器带宽 需要改配置 云服务器成本
QuickDesk 国内节点优化 零配置 具有免费额度

综合考虑延迟和配置成本,我这边采用的是QuickDesk 的内网穿透https://quickdesk.com.cn/是一个值得考虑的方案------主要是国内节点优化到位,延迟可以从 500ms+ 降低到 50ms 左右,无需自建服务器。


实战:Paseo + QuickDesk 内网穿透

环境说明

  • 内网开发机:Ubuntu 22.04,局域网 IP 192.168.198.68
  • Paseo Daemon:默认监听 localhost:6767
  • QuickDesk:已有纳管设备

第一步:创建内网穿透

登录 QuickDesk 控制台,进入"内网穿透"模块。

创建自定义域名

  • 点击「添加域名」
  • 前缀:paseo-test(可自定义)
  • 后缀:由平台分配
  • 协议:HTTPS

添加穿透规则

  • 点击「添加映射」
  • 选择设备:选择已经纳管上平台与编码机器处于同一局域网的设备(纳管流程查看文末附录
  • 映射协议:选择HTTPS
  • 公网访问地址: 选择刚刚创建的地址
  • 内网映射协议:选择HTTP(Paseo 6767端口暴露的是HTTP服务)
  • 内网IP 与 设备端口 填写安装Paseo 的机器ip 与 服务端口 - 192.168.198.68:6767

第二步:客户端连接

或在桌面 App 设置中填入域名和端口。

延迟对比

QuickDesk 内网穿透延时

Paseo 官方的Relay 中继延时

第三步:配置 Paseo Daemon

默认情况下 Daemon 只监听 localhost,需要修改为监听所有网卡:

bash 复制代码
# 找到配置文件
ls ~/.paseo/config.yml

# 编辑配置
vim ~/.paseo/config.yml
yaml 复制代码
{
  "version": 1,
  "daemon": {
    "listen": "0.0.0.0:6767",  // 将监听网卡改为0.0.0.0
    "hostnames": [
      "localhost",
      ".localhost",
      "paseolocal.ztrust.wjztgw.com" //将获得的公网域名配置进Host
    ],
    "mcp": {
      "injectIntoAgents": false
    },
    "autoArchiveAfterMerge": false,
    "appendSystemPrompt": "",
    "cors": {
      "allowedOrigins": ["https://app.paseo.sh"]
    },
    "relay": {
      "enabled": true
    }
  },
  "app": {
    "baseUrl": "https://app.paseo.sh"
  },
  "agents": {
    "providers": {
      "opencode": {
        "additionalModels": []
      }
    }
  }
}

重启 Daemon:

bash 复制代码
paseo daemon restart

或者再客户端页面点击restart daemon 按钮


总结

Paseo 是一个值得关注的开源项目,它解决了一个实际问题:多 AI 编程工具统一管理。通过本地 Daemon 架构,你可以在手机、平板、电脑上随时接入和控制你的 AI 编程任务。

针对国内用户 Relay 延迟高的问题,QuickDesk 内网穿透是一个实用的优化方案------无需自建服务器,配置简单,延迟提升明显。

附录 --- Quickdesk 自有设备纳管

  • 点击「添加」

  • 选择自有设备,平台设备是QuickDesk 他们推出的IPkvm产品

  • 点击「一键安装」

  • 将提供的命令复制到虚拟机 或者linux 机器上执行 ,等待几分钟后,就可以看到设备在线了

参考链接


你们团队用 AI 编程工具吗?有什么统一管理的困扰?欢迎在评论区交流~

相关推荐
顾林海1 小时前
Agent入门阶段-编程基础-Python:Python 开发环境与运行方式
python·agent·ai编程
加农炮手Jinx1 小时前
Flutter for OpenHarmony:pub_updater 命令行工具自动更新专家(DevOps 运维必备) 深度解析与鸿蒙适配指南
android·运维·网络·flutter·华为·harmonyos·devops
咖啡星人k1 小时前
MonkeyCode 移动端深度体验:在手机上完成AI编程任务是什么感受
智能手机·ai编程·monkeycode
名不经传的养虾人1 小时前
从0到1:企业级AI项目迭代日记 Vol.44|功能建好,和功能接通,是两件完全不同的事
人工智能·架构·agent·ai编程·企业ai
华纳云IDC服务商1 小时前
高防CDN和高防IP一起用,延迟会增加多少?
网络·网络协议·tcp/ip
ZFSS2 小时前
VS Code + Luma MCP 使用教程
人工智能·ai·ai作画·copilot·ai编程·ai写作
sxd20012 小时前
Debian #1135514 bug引发的思考
网络·debian·bug
VOOHU-沃虎2 小时前
沃虎——一台旧设备的“慢性病”:网络变压器回波损耗劣化引发的间歇性断流
网络·信息与通信
unique2 小时前
Harness Engineering 最佳实践报告
ai编程