Open Source Terminal GUI
ShellFrame
非工程師也能直覺上手的 AI 終端機。
從一位設計師的需求出發,擴展到整個團隊。
起源
我的合作夥伴是設計師,她看到我用 Claude Code 和 Codex 在終端機裡飛速工作,也想試試看。但她馬上遇到一個問題:終端機沒辦法貼圖。
Windsurf、Cursor 這些 IDE 可以直接貼截圖問 AI,但純終端機做不到。她每次都要先存檔、再打路徑,光這一步就把使用意願磨掉了。
於是我決定做一個超輕量的 GUI 包裝器——不是 Electron 那種肥大框架,而是用 Python + 原生 OS WebView,啟動快、記憶體小。Cmd+V 就能貼圖,多分頁管理不同專案,還有 Telegram 橋接讓你不在電腦前也能遠端操作。
完成後我也推廣給公司同事使用,設計師和 PM 團隊同樣從中受益。他們終於不用再面對黑底白字的終端機——ShellFrame 把 AI CLI 工具的門檻,降到了「會用通訊軟體就會用」的程度。
痛點與解法
痛點
- x 終端機無法直接貼圖片
- x 非工程師害怕命令列介面
- x 不在電腦前就無法操作 AI
- x Electron 太肥、VS Code 太複雜
解法
- > Cmd+V 一鍵貼上截圖
- > 簡潔 GUI,預設指令一鍵啟動
- > Telegram 橋接,手機遠端操作
- > 原生 WebView,輕量無負擔
一行安裝
macOS / Linux
自動安裝 Python venv + 所有相依套件。macOS 已有 Python,Linux 需先裝 python3。
Windows (PowerShell)
需先安裝 Python 3.12+ 和 Git。安裝程式會自動設定 PATH 和桌面捷徑。
安裝後輸入 shellframe 啟動,或從 Spotlight / 開始選單搜尋 ShellFrame。安裝完執行一次 sfctl permissions 可自動開好 macOS Privacy / Windows Defender 白名單。
功能亮點
📋
截圖 & 多檔智慧貼上
Cmd+V 直接貼圖片或多個檔案。v0.11.9 起對 Claude Code / Codex 用 bracketed-paste 包路徑,AI CLI 會自動壓成 [image #N] 附件預覽而不是打字輸入。
📑
多分頁 + tmux 持久化
每個分頁跑在 tmux session 裡,關掉視窗再打開,對話從上次離開的位置繼續。雙擊 tab 改名、拖拉排序、視窗位置跨 restart 保留。
🎛
總控 / Worker 派工體系
一個總控 Claude 用 sfctl delegate 拆任務、開 worker、poll 結果、收尾。#tab 標註要互動的分頁、頁籤生命週期自動回寫交接筆記給總控、idle reaper 自動沉澱閒置頁——並行 agent 編排在 ShellFrame 裡原生可用,不用碰 tmux。
📱
Telegram 橋接
一個 bot 管所有 session。文字、圖片、檔案、語音(STT)雙向傳,還能遠端 /break 送 ESC 中斷 AI。指令:/list /new /fetch /usage /break /pause /resume /reload /restart /update /close、/1 /2… 切分頁(破壞性指令會 inline confirm)。
🚦
四態燈號
側欄每個 session 一顆燈:藍=執行中、綠=完成、紅=需你決定、橘=警告。同步反映到 TG banner 與 macOS 桌面通知,也能手動點擊切換。掃一眼就知道誰在忙、誰在等你。
📜
乾淨滾動歷史
上滑歷史以 CLI transcript 為真實來源、xterm.js 渲染,深層歷史無縫瀏覽,markdown 轉 ANSI、連續工具呼叫收合成一行摘要、harness 雜訊隱藏——回捲畫面跟活畫面一致,ANSI 色碼保留。
🎙
語音 STT + AI 整理
TG 傳語音直接轉文字丟進 session;本地端語音輸入還能經 AI 潤成通順文字(Typeless 風格)。plugin 架構:本地 whisper.cpp 或自訂 HTTP server 都可以,不綁雲端服務。
🧠
AI 上下文 + 可編輯 Prompt
啟動 Claude / Codex 時自動帶入環境 context(有哪些 session、bridge 狀態、sfctl 指令表)。v0.11.8 起 init prompt 跟 TG per-turn preamble 都可以在 Settings 裡直接編輯。
🛡
sfctl permissions 一鍵設定
v0.11.8 新增。macOS 一鍵開 Privacy 面板(Files & Folders、Accessibility、Automation 等)+ 防火牆白名單 python/bun;Windows 加 Defender inbound allow rule。裝完跑一次就好。
🔄
兩段式更新 + 合併指令
UI 改動 → 熱重載;Python 改動 → 重啟(session 保留)。v0.10.12 把 /update 和 /update_now 合併,TG 收到新版自動彈 inline keyboard 「⬇️ Update Now / Cancel」。
⌨️
輸入優化
Shift+Enter 換行不送出、右鍵 CMD-style 複製貼上、Esc 清整行(純終端)、Ctrl+Click 打開終端機裡的路徑(支援硬換行的長 URL)、介面 S/M/L 三段調。
⚡
全域快捷鍵 ⌃⌥Space
v0.11.27 起。任何 app 裡按 Ctrl+Option+Space 喚出 ShellFrame,再按一次收起。Spaces-aware:視窗會跑到你當下的虛擬桌面,而不是把你拉走。Settings 可關。目前 macOS only。
🧹
Auto /compact
v0.11.26 起。Bridge 即時監控 Claude Code 的 token 用量,跌破門檻(預設 15%)自動送 /compact 做 context summarise。Settings 可調門檻或關閉。只對 Claude 生效,不會誤觸 Codex / bash。
🔔
完成通知
v0.11.29 起。ShellFrame 在背景時,AI 完成回覆會彈 macOS 原生通知。點通知直接跳回該 session。每個 session 30 秒 cooldown 避免連發。Settings 可關。
🤖
Agent 狀態自動偵測
燈號與狀態改由 Claude Code hooks 事件驅動,AI 不用再自我回報 [[SF:]] 標記。右側面板變成即時 agent activity feed,忙碌 / 等待 / 完成一目了然。
📊
AI 用量水位
右上角常駐膠囊即時顯示當前 tab 的 Claude / Codex 用量水位,快撐爆一眼看得到。TG 也能 /usage(/水位)遠端查詢。
🔌
Plugin 系統 + LINE 橋接
Bridge 與 STT provider 全外掛化,第三方可自訂通訊管道。內建 LINE bridge(支援公司 webhook forward + poll、獨立 per-turn wrapper prompt),側欄分開顯示 TG / LINE routing badge。
🌐
本機 HTTP API
選擇性開啟的 loopback API,讓外部程式(如語音助理)遠端驅動 ShellFrame——開 session、送輸入、收事件通知。loopback + token + IP 白名單三層防護,預設關閉。
⏰
Loops 排程面板
實驗性功能:定時重跑某個 prompt 或指令(例如每 5 分鐘檢查一次部署狀態)。面板管理排程、預設關閉。
💻
跨平台 + i18n
macOS(WKWebView + tmux 持久化)、Windows(Edge WebView2 + ConPTY + soft persistence)、Linux(GTK WebView)。自動偵測系統語言(繁中/英),Settings 可切。
技術架構
Frontend
xterm.js 終端機
原生 OS WebView
零 Electron 依賴
Backend
Python + pywebview
PTY + tmux (Unix) / ConPTY (Win)
pyte 虛擬終端
Bridge
Telegram / LINE + 語音 STT
Plugin provider chain
本機 HTTP API + Claude hooks
Self-Evolution
sfctl 遠端控制
兩段式 reload / restart
AI 熱載入自我修改
讓 AI 工具屬於每一個人
Claude Code 和 Codex 是強大的 AI 工具,但它們活在終端機裡——對非工程師來說,那是一道無形的牆。
ShellFrame 把這道牆拆掉了。
當設計師能用截圖問 AI 設計問題;
當 PM 能用 Telegram 遠端請 AI 幫忙整理資料;
當新人不用學 command line 就能開始用 AI——
這就是工具應該有的樣子:為人服務,而不是讓人遷就。
v0.29.9
開源 MIT — macOS / Windows / Linux
17 stars · 4 forks
What's in v0.29.9