tendly:基于 Vue 3 与 Rust 的 Claude Code 和 Codex 浏览器工作台项目

Tendly:在你自己机器上,用一张画布驾驭官方 Claude Code 与 Codex CLI|Tendly: one canvas for the official Claude Code and Codex CLIs

分支1Tags108

Tendly
在你自己的机器上,用一张画布驾驭官方 Claude Code 与 Codex CLI

npm 文档 English README 许可证:MIT GitHub Star AtomGit Star

Tendly 画布:两个 Agent 会话并排,右下是 Git 窗格和 diff。

Claude Code 和 Codex 在终端里最好用,也被终端限制住:一个窗口只能盯一个 Agent,diff 在第二个窗口,文件在第三个。

Tendly 把它们放到一张网页画布上,旁边就是它们在改的文件、Git 和终端。它运行在代码所在的机器上,直接驱动你已经装好、登录好的 CLI,所以模型、hooks、MCP、CLAUDE.md 和权限确认都和终端里一模一样。它自己不带 Agent。

支持 Claude Code 和 Codex,运行在 macOS、Linux 和 Windows 上,电脑和手机浏览器都能用。

目录

安装

需要 Node.js 24+,以及同一台机器上的 Claude Code和/或 Codex:

npm install -g @wnzzer/tendly
tendly

打开 http://127.0.0.1:28789/,选一个目录当工作区,在 设置 → 官方账号 引入已有登录,然后新建会话。

命令 作用
tendly 后台启动,只监听本机
tendly status 查看访问地址和令牌
tendly logs 查看服务日志
tendly update 升级到最新版
tendly stop / restart 停止或重启服务
tendly service install 开机自启(systemd、launchd 或 Windows 登录项);uninstall 取消
tendly serve 前台运行,给 systemd 用

提供 macOS(arm64、x64)、Linux(x64、arm64)和 Windows(x64)预编译包。状态都在~/.tendly/,没有任何遥测。全部选项见配置。

画布

一张画布可以放 Agent 会话、文件树与编辑器、Git 窗格和终端,来自任意多个项目,递归分屏、标签页随意排。窗格不绑进程:关掉窗格或浏览器,会话照跑。

在进行中的一轮里插入一条消息,发送菜单展开。

工具调用折叠成卡片,一轮还在跑也能补一句。

操作 方法
插进正在跑的这一轮 Enter
排到下一轮 Alt+Enter
两个 Agent 改同一个仓库 各自作为隔离任务启动:独占的 worktree 和分支,依赖和 .env 已备好,审阅后合并回去
接着之前的活干 在工作区里打开原生 Claude Code 或 Codex 历史
中途换客户端 把对话从 Claude Code 交给 Codex,或反过来

布局、停靠和 Git 窗格见会话与画布。

账号与端点

每个会话自己选 CLI 用哪份登录。官方账号会显示 5 小时和本周剩余额度。

官方账号页:5 小时与本周额度环。

来源 适合
本机登录 claude 或 codex 在这台机器上本来就用的登录
官方账号 更多 Claude Code 或 Codex 登录,各自独立的客户端目录
端点配置 自定义网关或 API 服务商,带自己的模型

见官方账号和端点配置。

从手机或其他电脑访问

屏幕窄时,分屏折叠成标签页,菜单变成底部弹层,长按代替右键。

手机上的 Tendly:分屏折叠为标签页。

方式 谁能连
Tailscale(设置 → 远程访问) 只有你的 tailnet,全程 HTTPS
ssh -L 28789:127.0.0.1:28789 user@server 有 SSH 权限的人
tendly --lan 整个局域网,明文 HTTP

Warning

Tendly 只面向单个受信任用户:能访问它的人拥有你这个系统用户的全部权限,claude / codex 也不在沙箱中运行。开放到本机以外之前,请先读安全与边界。

工作原理

flowchart LR
  browser["浏览器<br/>Vue 3"] <-- "HTTP + WebSocket" --> server["tendly-server<br/>Rust"]
  server <--> bridge["桥接<br/>Node"]
  bridge <--> claude["claude<br/>stream-json"]
  bridge <--> codex["codex<br/>app-server"]

Rust 服务端负责协议、鉴权、SQLite 和进程监管;Node 桥接把各客户端的官方接口映射成会话事件。见架构。

开发

需要 Rust 1.89+、Node.js 24+ 和 pnpm 10.30.3:

pnpm install --frozen-lockfile
pnpm run dev       # → http://127.0.0.1:5173/
pnpm run check && cargo test --workspace

完整检查清单见开发文档。欢迎提 Issue 和 PR。

许可证

Tendly 以 MIT 许可发布,第三方内容见第三方声明。Claude Code 和 Codex 分别是 Anthropic 和 OpenAI 的产品;Tendly 是独立项目,与两家公司没有隶属或背书关系。感谢 LINUX DO 社区。

Star History Chart

项目介绍

Tendly:在你自己机器上,用一张画布驾驭官方 Claude Code 与 Codex CLI|Tendly: one canvas for the official Claude Code and Codex CLIs

定制我的领域