Salmon

给已经在用 CLI 的你
一个三栏式可视化窗口

Salmon 包装你本机已登录好的 claudecodex CLI,把命令行 AI 体验图形化。 不接 API,不存 Key,凭证完全留在 CLI。Linux + macOS。

⬇ 下载最新版 在 GitHub 上看代码
✓ 完全本机运行 ✓ 复用 CLI 登录 ✓ 双引擎(Claude Code + Codex) ✓ 开源 / 三方非官方

三栏布局,一眼看清正在发生什么

左:Topic 列表 · 中:对话 · 右:文件 / Diff / 预览 / 日志

Topics
  • CC Spitch · 刚刚
  • CX 中文输入法 · 1h
  • CC Tauri 跨平台编译 · 8h
  • CX 香港办卡推荐 · 8h
  • CC PC 操作系统份额 · 8h
Chat
extract_full_text 提到 stream 里复用
S
先看一眼调用链 ——
Bash grep Read doubao.py Edit controller.py
找到 3 处重复,合并到 voice/__init__.py 导出。
Right pane
Files Diff Preview Logs
📁 src/
📁 spitch/voice/
📄 __init__.py M
📄 controller.py M
📄 doubao.py
📁 tests/

为啥要用 Salmon

不是要替代 CLI ——而是把已有 CLI 的能力变得能扫一眼就懂。

不接 API,不存 Key

Salmon 自己不调任何 LLM。每条消息都是 spawn 你本机的 claudecodex 子进程,凭证完全归 CLI 管。

Topic = Terminal Tab

每个 Topic 绑定一个工作目录 + 一个常驻 CLI session;关掉 Salmon 也不丢,下次 --resume 接回原来的会话。

权限审批 UI

CLI 想跑 rm -rf 之类需要确认时,中栏弹审批卡片,你能看清完整命令再点 Allow / Deny。

📄

真的预览文件

右栏的 Preview 直接渲染 Markdown / HTML,以及 .pptx / .docx / .xlsx ——后台调 LibreOffice 转 PDF 切页,缓存到本地。

欢迎页 · 推荐 agent

主页汇总待审批 / 未读 Topic;另起 agent loop 把 Claude 和 Codex 的建议互相评分,**双方都认为高价值的**才默认展开。

对话布局两种风格

"折叠思考"风(突出最终答案)或"内联交错"风(完整时序)。设置里随时切。

Topic 自动归档

工作目录被删除/移走时,Salmon 立刻识别,弹 banner 让你归档或删除,不会傻乎乎反复让 CLI 跑挂。

💬

实时反馈

消息发出后立刻显示头像 + 三个跳点,工具调用进行中带 spinner,流式块逐段渲染。

零网络

App 自身一行 fetch 都没有(除了你看的这个 GitHub Pages)。所有 LLM 流量都走 CLI。

装上 Salmon

前提:本机至少有一个 claudecodex CLI 已经登录。

U Ubuntu / Debian

curl -L -o salmon.deb \
  https://github.com/pekinlcc/SalmonApp/releases/latest/download/Salmon_amd64.deb
sudo apt install ./salmon.deb
从应用程序网格搜 "Salmon" 就能找到,Dock 上是一个折纸鲑鱼图标。

A 任何发行版 (AppImage)

curl -L -o Salmon.AppImage \
  https://github.com/pekinlcc/SalmonApp/releases/latest/download/Salmon_amd64.AppImage
chmod +x Salmon.AppImage && ./Salmon.AppImage
免装,自带 GTK / WebKit2GTK 运行时,但体积大些(~75 MB)。

🍎 macOS (universal)

# 下载 Salmon_universal.dmg,把 .app 拖到 /Applications,
# 然后清掉 Gatekeeper quarantine:
xattr -dr com.apple.quarantine /Applications/Salmon.app
open /Applications/Salmon.app
未公证(没有 Apple Developer 账号),ad-hoc 签名;首次启动需要上面的 xattr

F Fedora / openSUSE / RHEL

curl -L -o salmon.rpm \
  https://github.com/pekinlcc/SalmonApp/releases/latest/download/Salmon_x86_64.rpm
sudo dnf install ./salmon.rpm
每个 release 也都同时打了 .rpm。
可选 — Office 文件预览(只在第一次需要):
# Linux
sudo apt install libreoffice-impress libreoffice-writer libreoffice-calc poppler-utils

# macOS
brew install --cask libreoffice && brew install poppler

设计动机

如果你已经在 Terminal 里用 claudecodex,大概都遇到过:

长对话历史在 scroll-back 里像噩梦
中栏 Markdown 完整渲染:代码块、表格、引用 / 折叠思考、最终答案高亮分开。
多个项目共用一个 shell history,串了
Topic 是一等公民,每个 Topic 自己绑工作目录、绑 CLI session,一目了然。
Edit 改了文件还得切窗 cat / diff
右栏 Files 实时高亮 A / M;选中工具调用直接看 Diff;Preview 给你 Markdown / HTML / Office。
同时用 Claude Code 和 Codex 要切终端
每个 Topic 自己选引擎;首页推荐区把双方意见都展示,互评筛选噪声。
第三方 GUI 总要再开账号、再付一次费
Salmon 不接管凭证、不读 ~/.claude、零网络调用。CLI 怎么登的就怎么用。
权限弹窗在终端容易点错
PreToolUse hook 把权限请求接到 UI,把整条命令完整摆出来再点 Allow / Deny。

跟其它方案的差别

不是替代品 ——定位是 "已经在用 claude / codex 的人想要更好的视图"。

Salmon 原生 CLI 终端 Cursor / Cherry Studio 等
复用现有 CLI 登录 ✗(自己再登一次)
不存 API Key
富文本对话渲染
实时文件预览 / Diff 需 cat / diff
Topic 隔离 + session 复活 tmux / shell tab 部分
同时开 Claude Code + Codex 两个终端
权限请求 UI ✓ PreToolUse CLI 自带 不一致
零网络 ✓(CLI)