AI 工具 19 min read

KKTerm 是什麼?Windows-first 終端機完整介紹:SSH、RDP 與 AI 整合

KKTerm 是 Windows-first 的 Tauri 終端機,把 PowerShell、SSH、SFTP、RDP、VNC、Serial、Telnet 收進同一個 app,內建 Dashboard 看 CPU / Claude Code 用量,還附 MCP server 讓外部 AI agent 直接呼叫終端機。v0.1.46(2026-05-30)MIT 開源。含安裝、踩坑、vs Windows Terminal / Tabby / Warp 比較。

本文目錄 · 10
TL;DR:KKTerm 是一款 Windows-first 的終端機工作站,用 Tauri v2 + Rust + React 19 寫的,把 PowerShell、SSH、SFTP、RDP、VNC、Serial、Telnet 全部塞進同一個 app,內建 Dashboard 看 CPU / 記憶體 / 網速 / Claude Code 用量,還附一台 MCP server 讓外部 AI agent(Claude Code、Codex)能直接呼叫終端機。v0.1.46(2026-05-30)在 GitHub ryantsai/KKTerm 釋出,MIT License,作者把它定位成「AI 工具時代被遺忘的 Windows 原生管理工作站」。

📌 目錄

🧠 為什麼需要再一個終端機?

Windows 上「跑終端機」這件事,過去十年一直在打地基。PowerShell 強但難看,Windows Terminal 好看但純 terminal、不含遠端協定,WSL 解決 Linux 工具但不解決 RDP / SFTP,MobaXterm 老牌全包但介面停在 2010 年。Mac 那邊有 iTerm、Warp、Ghostty 各種選擇,Windows 這邊長年只能「裝四個工具切來切去」。

實際使用情境是這樣:

  • 早上開 Windows Terminal 跑本地 PowerShell 寫 code

  • PuTTY / OpenSSH 連公司 VPN 內的 Linux server

  • WinSCP / FileZilla 拖檔上去

  • mstsc.exe 用 RDP 進 Windows server 改設定

  • TightVNC Viewer 連舊機器

  • 最後切 Chrome 看 Grafana 監控 CPU / 記憶體
  • 六個視窗、六個 alt-tab、六套 keybinding,沒一個會記得彼此。Mac-first 的工具(iTerm、Warp、Tabby)裝在 Windows 上總是少根筋 — Tabby 的 RDP 是用 FreeRDP 包的不是原生、Warp 還沒正式支援 Windows、iTerm 根本沒 Windows 版。

    KKTerm 是補這個洞的:Windows-first、把六個工具收成一個 tab 介面、再加上 AI 整合

    ⚡ KKTerm 是什麼?10 種連線一個 app 收完

    連線類型用什麼底層
    LocalPowerShell / cmd / WSL
    SSHrussh(Rust 原生 SSH client)+ auto-named tmux session
    SFTP / FTPrussh-sftp / suppaftp,雙窗格瀏覽器
    RDP原生 Microsoft ActiveX control
    VNCvnc-rs framebuffer 渲染
    Serial串列埠直連
    Telnet古早協定也吃
    WebView2嵌入瀏覽器 session(看內部後台用)
    「10 種」聽起來像行銷話,但拆開來看每種都有對應的 Rust crate 撐著、不是 stub。比方 SSH 用的 russh 是 Rust 社群主力 client lib,VNC 用的 vnc-rs 也是純 Rust,不依賴 C 函式庫。對於跨平台維護成本,這套用 Rust 純血路線比起 Tabby(Electron 包 native)穩定。

    整體模組結構長這樣:

    mermaid diagram

    技術棧整理:

    用什麼
    桌面框架Tauri v2(Rust + WebView)
    前端React 19、TypeScript、Vite
    樣式Tailwind CSS
    狀態Zustand
    終端機渲染xterm.js + WebGL 加速
    儲存SQLite + OS Keychain(Windows Credential Manager / macOS Keychain)
    為什麼選 Tauri 不是 Electron? 包出來的 installer 只有 8 MB(對比 Electron 動輒 100+ MB),記憶體佔用低約 60%,這對「終端機要常駐開一整天」的場景很有感。

    ⭐ 核心功能拆解

    SSH 自動 tmux:斷線不掉 session

    KKTerm 的 SSH 連線會自動 tmux new -s kkterm--,下次重連用 tmux attach -t silent reattach,遠端跑的 Claude Code / Codex agent 不會因為網路斷一下就死掉。這是針對「AI agent 在遠端 server 跑長任務」設計的,跟一般 PuTTY 重連就丟 session 不一樣。

    內建 Dashboard:CPU、記憶體、AI 用量一頁看完

    Dashboard 用 drag/resize widget grid 排版,預設 widget 包含:

    • CPU / 記憶體 / 磁碟 / 網速折線圖
    • Claude Code / Codex API 用量(讀本地 quota 檔)
    • 21 種 animated canvas 背景(matrix、aurora、ocean 之類)
    • 自訂 widget 用 JSON 或 sandboxed JavaScript 寫
    Claude Code 用量這欄特別有用 — Pro 用戶常常 5 小時內就刷到 limit,預先看見快爆了能即時切去 Codex 或休息。

    內建 MCP server kkterm-cli

    這是最被低估的功能。KKTerm 啟動時會跑一支 MCP server,讓外部 AI agent 直接呼叫 KKTerm 的終端機 / SSH / RDP 能力。意思是 Claude Code 不用透過 Bash tool 自己摸黑開 SSH,而是透過 MCP 把指令丟給 KKTerm 執行、拿到結果。對於要做「跨機器 orchestration」(同時控本機 + 兩台遠端 server)的場景非常省事。

    AI Provider:六家全支援

    設定頁可選 OpenAI / Anthropic / DeepSeek / Azure OpenAI / GitHub Copilot / Ollama / 任何 OpenAI 相容 endpoint。AI assistant 直接嵌在 sidebar,問答結果可以 inline 執行到當前 terminal。

    📦 安裝與初次設定

    Prereq

    依賴最低版本驗證
    Windows10 1809+ / 11winver
    WebView2 Runtime預裝在 Win11,Win10 需手動裝Get-Package -Name '*WebView2*'(PowerShell)
    Visual C++ Redistributable2015+已內建

    一鍵裝(終端使用者)

    1. 到 https://github.com/ryantsai/KKTerm/releases 抓最新版
    
  • 下載 kkterm-<version>-windows-x64-setup.exe
  • 驗證 SHA256(release 頁底有)
  • 雙擊執行,SmartScreen 跳警告 → 點「其他資訊 → 仍要執行」
  • SmartScreen 警告處理:作者標註 unsigned installer,意思是還沒花錢買 code signing cert,reputation 尚未在 Microsoft 累積夠 → 第一次裝會跳「無法辨識的應用程式」。不是病毒,但要自己 SHA256 對檔。對到了再執行,對不到立刻刪掉。

    自己 build(開發者)

    # 1. 裝 Rust toolchain
    rustup default stable
    

    # 2. 裝 Node.js 20+ 和 npm
    node -v
    npm -v

    # 3. clone + build
    git clone https://github.com/ryantsai/KKTerm.git
    cd KKTerm
    npm install
    npm run tauri dev # 開發模式,熱重載
    npm run package:installer # 包 Windows installer

    驗證裝起來了

    開 KKTerm,左上角「+」加新 connection → 選 Local → PowerShell → 跑 Get-ComputerInfo | Select-Object WindowsProductName, OsVersion,看到 Windows 版本字串就算 round-trip 通。

    ⚖️ vs Windows Terminal / Tabby / Warp 比較

    維度KKTermWindows TerminalTabbyWarp
    原生 Windows△ Electron✗ 尚無
    SSH✓ russh 原生✗(只 OpenSSH client)
    RDP 原生✓ ActiveX△ FreeRDP
    VNC✓ vnc-rs
    SFTP 雙窗格
    Dashboard / 監控 widget△ plugin
    內建 MCP server
    包大小~ 8 MB(Tauri)系統內建~ 200 MB~ 150 MB
    Cloud 帳號需求✗ 本機優先△ 需登入
    開源✓ MIT✓ MIT✓ MIT✗ 封閉
    選擇邏輯:
    • 純本機終端 → Windows Terminal 已經夠
    • 跨平台、要 plugin 生態 → Tabby
    • 想要 AI 強化的 prompt 體驗 + 不在意 Cloud → Warp(裝 Mac)
    • 要把 SSH / RDP / VNC / SFTP / AI 一次搞定且 Windows-first → KKTerm

    🔗 接 Claude Code:內建 MCP server 怎麼用

    KKTerm 內建的 MCP server 名稱 kkterm-cli,啟動 KKTerm 時自動跑。Claude Code 接法:

    {
      "mcpServers": {
        "kkterm": {
          "command": "kkterm-cli",
          "args": ["--mcp-stdio"]
        }
      }
    }

    存到 ~/.claude.jsonmcpServers 區塊,重啟 Claude Code session 後,工具列會多出 mcp__kkterm__* 系列工具。

    典型呼叫流程:

    遠端 serverKKTerm appkkterm-cli MCPClaude Code遠端 serverKKTerm appkkterm-cli MCPClaude Code呼叫 mcp__kkterm__ssh_execdispatch to active SSH tab透過 russh 跑指令stdout回傳結果structured response

    為什麼比 Claude Code 自己跑 Bash 好:

  • Session 共用 — Claude Code 跑 Bash 每次都新 shell,環境變數不留;KKTerm 是常駐 session,cdsource 之後狀態保持

  • 多協定 orchestration — 同一個 Claude Code session 可以同時叫 KKTerm 的 SSH tab A 跑 build、SFTP tab B 拉檔、RDP tab C 看畫面

  • 權限閘門 — KKTerm MCP 有 permission gate,危險指令(rm -rf)會跳確認,Claude Code 沒辦法繞過
  • 💀 踩坑紀錄

    SmartScreen 把安裝程式擋下

    Windows 已保護您的電腦
    Microsoft Defender SmartScreen 防止無法辨識的應用程式啟動。執行這個應用程式可能會讓您的電腦面臨風險。

    原因:KKTerm 沒花錢買 EV code signing cert(一張一年 4-500 美金),所以 Authenticode reputation 是 0。解法:點「其他資訊 → 仍要執行」。但裝前一定要對 SHA256,作者在 release 頁有放 hash,自己用 Get-FileHash kkterm-0.1.46-windows-x64-setup.exe -Algorithm SHA256 對。對不到就不要裝,可能被中間人換包。

    WebView2 沒裝,KKTerm 開了白屏

    Win10 第一次跑可能遇到:KKTerm icon 出現但點開只有白屏,沒任何錯誤。原因:Tauri 用 WebView2 渲染前端,Win10 沒預裝,需手動裝 Evergreen Runtime。解法:到 microsoft.com/edge/webview2 抓 Evergreen Standalone Installer,裝完重啟 KKTerm。

    tmux session 名稱含特殊字元爆炸

    連有 :. 的 hostname(像 IPv6 或 db.prod.internal)時,KKTerm 0.1.x 早期版本 auto-tmux 命名規則會把 : 當成 tmux session 分隔符 → tmux: bad session name 噴錯。解法:升 0.1.40+,或自己在 connection 設定改用簡短 alias。

    Dashboard 自訂 widget 用 JS 跑不起來

    JSON widget 沒問題,但 sandboxed JS widget 有時候會 Worker is not defined原因:KKTerm 的 sandbox 不是完整瀏覽器環境,沒有 Worker / IndexedDB / fetch CORS。解法:寫 widget 只用 DOM / kkterm global 提供的 API,不要碰瀏覽器專屬物件。

    ❓ 常見問題

    Q1: KKTerm 跟 Windows Terminal 衝突嗎?可以並存嗎?

    可以。兩個是獨立 process,完全不打架。實務上很多人 Windows Terminal 跑簡單本機 PowerShell,KKTerm 開 SSH / RDP / SFTP / VNC 這些需要連線管理的。

    Q2: 沒簽章我用得安心嗎?有後門嗎?

    開源 MIT,原始碼在 github.com/ryantsai/KKTerm 公開,可以自己 audit 或自己 build。但「沒簽章」本身的風險是第三方仿冒散布版本,不是官方版本有問題。對策:只從官方 GitHub releases 下載,SHA256 對檔,不要從鏡像站抓。

    Q3: macOS 和 Linux 什麼時候有?

    作者 README 寫 「planned via Tauri v2」,沒給時程。Tauri v2 本身已經支援三平台 build,主要卡在 RDP / VNC 部分需要不同 OS 的原生 API 適配。短期內 Windows-only,Mac / Linux 用戶可以先用 Tabby。

    Q4: 內建 MCP server 安全嗎?會不會被 AI 亂下指令?

    KKTerm 的 MCP server 有 permission gate,危險指令(rm -rfshutdownformat)會跳 GUI 確認框,要使用者手動點准。但權限分級規則寫在前端 React,理論上可繞過 — 如果你要讓 Claude Code agent 全自主跑長任務,還是要把 KKTerm 跑在隔離環境(VM / 沙盒帳號)。

    Q5: 為什麼叫 KKTerm?

    作者 README 寫:典故是台灣文化「乖乖」(綠色椰子味餅乾,放伺服器機架上祈求機器不要當機的儀式)。專案定位是「無聊但可靠的軟體」,跟 hype 路線的 Warp / Wave 反向操作。

    🔗 延伸資源

    author
    陳彥彤

    AI 工程師 · AI 顧問。Java 後端 8 年、AI 工程師 2 年。AI 內訓 · AI 導入顧問 · 前後端與雲端培訓。

    support

    覺得文章有用可以到 GitHub 給個 star,或是透過信箱聊聊 AI 內訓、AI 導入顧問或前後端 / 雲端培訓。

    related

    相關文章

    [AI 工具] · 19min
    CodeGraph vs grep:AI 讀 codebase 少 81% 工具呼叫的知識圖譜
    CodeGraph 把整個 codebase 預先建成一張「程式碼知識圖譜」(symbol 節點 + call 邊),讓 Claude Code、Codex、Cursor 這類 AI agent 不用一個一個檔案爬,一次 codegraph_explore 就拿到相關 source、call path 跟改動波及範圍。官方在 7 個真實開源專案實測:VS Code 少 81% tool call、少 64% token,Alamofire 便宜 40%、快 33%。這篇把它是什麼、三層架構(tree-sitter + SQLite + file watcher)、安裝三件套、跟 grep / LSP 的差別、以及我接的時候要注意的點寫一遍。100% 本機跑、MIT、支援 23 種語言、8 個 agent。
    [AI 工具] · 12min
    兩個 AI 真能「對等聊天」?Claude Code × Codex MCP 協作的真實邊界
    Claude Code 透過 MCP 可以直接呼叫本機 Codex 跑子任務——我下 prompt、Codex 在同一台機器讀檔/跑指令/回報。但這是「結構化輪流問答」(one-shot + threadId 延續),不是兩個 AI 自由聊起來。這篇紀錄我接通的全程:怎麼用三題本機驗證確認「真的接通而不是腦補」(它回傳 commit hash 6cf8254 我去對)、怎麼用 tmux pane 即時看 Codex 的推理與指令、以及最能說明「對等有限度」的坑——MCP 接過去的 Codex 預設 read-only sandbox,嘴上能聊手上卻寫不了檔。結論:接通 ≠ 協作,能聊 ≠ 能動手。
    [AI 教學] · 21min
    obra superpowers 怎麼裝?Claude Code 第四堂——MCP + GitHub + Headless 接生態系完整實戰
    2026-05-19 Pro 版第四堂——但實際發生跟教學計畫完全不一樣。原本要教 Git 三動作,現場改成「我們自己寫一定不是最優解,要如何使用別人寫的」。實際走了 4 件事:Superpowers plugin 安裝(卡關 3 次:`/plugins` 沒搜到、Skill 沒生效、hook 把 build 卡死)、Twinkle Hub MCP 接政府開放資料(查 2024 國防部決標 12 筆)、GitHub 註冊 + gh CLI auth(CAPTCHA 卡 5 分鐘、學員 chien chang 救場)、headless `claude -p` 半夜跑 100 個檔案翻譯 batch。Pro 訂閱者照做完整路徑。