跳至內容

安裝

Control Center 有兩種用法:在 app.usectrl.dev 以網頁應用程式 使用,無須下載任何東西;或者安裝桌面應用程式。兩者是同一個應用程式,功能完全 相同。唯一的分別在於伺服器在哪裏執行——而網頁應用程式無法替你執行伺服器。

app.usectrl.dev 就是本應用程式為瀏覽器編譯的版本。 無須安裝,也無須更新。開啟它並連接即可。

瀏覽器分頁做不到的,是_成為_伺服器本身。每個用戶端——桌面、網頁、手機——都只是 無介面 cc_server 之上的精簡渲染層,而這個 cc_server 擁有資料庫並負責實際工作, 因此網頁應用程式永遠要連接你自行執行的伺服器。有兩種方式可以為它提供伺服器:

在你自己的機器上執行伺服器。 在本機啟動 cc_server,並讓網頁應用程式指向 ws://localhost:9030。瀏覽器視 localhost 為可信,因此這不需要憑證,也不需要 隧道。這是試用網頁應用程式最快的方法,你的資料也永遠不會離開你的機器。

在另一台機器上執行伺服器。 由於 app.usectrl.dev 以 HTTPS 提供,非本機的 伺服器必須可透過 wss:// 觸達,並使用瀏覽器已信任的憑證。cc_server 在沒有 TLS 時 拒絕繫結非回送位址,所以請選擇以下其中一種做法:

  • 直接用 --tls-cert 與 --tls-key 為它提供憑證
  • 將它放在終止 TLS 的反向代理之後,並以 --insecure 啟動
  • 透過提供憑證的隧道或 VPN 將它公開——Tailscale、 cloudflared 或類似方案。設定 → 伺服器 → 連接與狀態 在 分享此伺服器 之下提供內建隧道選項。

只要伺服器位於代理、NAT 或隧道之後,就要把 --public-url 設定為用戶端 實際應連接的位址。它預設為本機繫結,因此若不設定,用戶端 會嘗試錯誤的主機。

有幾項功能仍只限桌面版,因為它們需要原生視窗或機器本身的音訊裝置: 浮動的專注模式膠囊、系統通知彈出提示(應用程式內的通知中心在所有地方都 可用)、從日曆事件「開始錄製並連結」,以及重新執行會議摘要。其他一切—— 空間、代理、pull request 審查、管線、工單、記憶以及會議錄製本身——行為都相同。

要將網頁應用程式連接到伺服器,請參閱 連接遠端伺服器。要託管伺服器, 請參閱執行無介面伺服器。

需求 macOS Windows Linux
作業系統版本 macOS 13+ (Ventura) Windows 10+ Ubuntu 22.04+,或其他搭載 glibc 2.35+ 與 GTK 3 的發行版
架構 Apple Silicon (arm64) x64, ARM64 x86_64
Git 必需 必需 必需
磁碟空間 應用程式約 200 MB,另加伺服器的資料目錄 約 200 MB 約 200 MB

Intel Mac 沒有預先建置的下載檔。請改為從原始碼建置。

伺服器的資料目錄會比應用程式本身大得多。cc_server 首次啟動時會強制安裝 裝置上的模型——文字嵌入(約 90 MB)、說話人分離(約 35 MB) 以及所選的語音模型(預設為 Parakeet TDT v3,約 600 MB;Whisper 各版本為 198–626 MB)——另外還有內嵌的 code-server 組建,而每則 代理對話都會為它處理的程式庫取得一份寫入時複製的 worktree(在 Windows 上 則是普通的 git worktree)。語音並非可有可無:沒有 ASR 模型,就不會提供 會議與聽寫操作。語音模型首次下載後仍需要重啟一次, 錄音功能才會亮起。

桌面版會讓它的伺服器使用作業系統的每使用者應用程式支援目錄。手動啟動 且未指定 --data-dir 的 cc_server 會預設為 <application data>/control-center——macOS 上是 ~/Library/Application Support/control-center,Windows 上是 %APPDATA%\control-center, Linux 上是 $XDG_DATA_HOME/control-center(或 ~/.local/share/control-center)。

以下每個成品都來自 GitHub Releases。

下載 Control-Center-<version>-arm64.dmg,開啟它,然後把 Control Center 拖到「應用程式」資料夾。這個組建以 Developer ID 簽署並經 Apple 公證,因此可正常開啟。

  • Control-Center-<version>-x64-setup.exe:每使用者的安裝程式。
  • Control-Center-<version>-windows-x64.zip:可攜式 zip 壓縮檔。
  • Control-Center-<version>-arm64-setup.exe:每使用者的安裝程式。
  • Control-Center-<version>-windows-arm64.zip:可攜式 zip 壓縮檔。

Windows 使用 git worktree 處理空間的檢出(不採用寫入時複製)。

  • Control-Center-<version>-x86_64.AppImage
  • Control-Center-<version>-linux-x64.tar.gz

AppImage 內含更新資訊,因此 AppImageUpdate 或 appimaged 可以就地把它帶到最新版本,只下載有變更的部分。

兩者都建基於 Ubuntu 22.04,並可在該版本或任何更新的版本上執行(Debian 12、Fedora 36 及之後的版本):它們連結 glibc 2.35 與 GCC 12 的 libstdc++,並從系統取得 GTK 3。原版桌面可能缺少的少數程式庫已隨附其中,因此無須安裝其他東西。音效——會議播放、聲景、測試機音訊與通知提示音——透過系統的 libmpv 播放(Ubuntu 22.04 上是 libmpv1,較新的 Ubuntu 與 Debian 上是 libmpv2,Fedora 上是 mpv-libs);沒有它,應用程式啟動時會隱藏這些控制項。

每個版本也單獨提供無介面伺服器——cc_server-<version>-macos-arm64.tar.gz、cc_server-<version>-linux-x64.tar.gz、cc_server-<version>-windows-x64.zip、cc_server-<version>-windows-arm64.zip——以及 GHCR 上的 cc-server、cc-webapp 與 cc-remote 映像。參見執行無介面伺服器。

Linux 封存檔建基於 Ubuntu 22.04,其隨附的原生程式庫連結 glibc 2.35 與 GCC 12 的 libstdc++,因此需要至少同樣新的主機(Ubuntu 22.04、Debian 12、Fedora 36 或之後的版本)。在較舊的發行版上,請改為執行 cc-server 映像——容器自帶使用者空間,因此只有核心需要由你提供。

Control Center 透過配接器派發代理。配接器只有兩個,清單是固定的,並且會自動偵測——無法再註冊其他配接器。

Control Center (built-in) 配接器不需要外部 CLI:代理迴圈在伺服器內部執行,並透過 HTTP 與模型供應商通訊,因此永遠可用。在 設定 → 伺服器 → 模型供應商 下連接供應商。OpenAI、Codex、Cursor 與 Kimi Code 提供瀏覽器登入;Anthropic、OpenRouter、Google Gemini、DeepSeek、Mistral、xAI、z.ai 與 Moonshot 則需要 API 金鑰。Codex 與 Cursor 是這個執行器上的供應商,而不是獨立的 CLI。z.ai 刻意列出兩次:z.ai 是按用量付費的開放平台,從你的帳戶餘額扣費;而 z.ai GLM Coding Plan 則是訂閱方案。兩者使用同一個帳戶金鑰,但 z.ai 從另一台主機提供該方案——把編碼方案的 key 貼到普通的 z.ai 圖磚中,每個請求都會回傳 429 … "Insufficient balance or no resource package",因為該方案沒有可扣的餘額。Claude Pro/Max 訂閱不是 Anthropic API 登入;請改為透過 Claude Code 配接器使用該方案。你在該頁面_可以_新增的是自訂供應商——任何相容 OpenAI 或相容 Anthropic 的端點(Ollama、LM Studio、vLLM、私人部署),位於 自訂供應商 → 新增供應商 之下。

另一個配接器則包裝外部 CLI:

  • Claude Code(claude):npm install -g @anthropic-ai/claude-code

偵測會探查執行 cc_server 的那台機器的 PATH——桌面版自行執行伺服器時就是同一台機器,否則就是遠端主機。請在那裏安裝 Claude Code CLI,而不是在用戶端上。該頁面上的重新整理按鈕會重新執行探查。

模型清單由每個已連接的供應商即時提供;models.dev 只提供價格與上下文視窗的中繼資料。參見管理配接器與模型。

GitHub 憑證屬於你本人,並存放在伺服器上,以你的使用者 id 為鍵——而不是在用戶端的作業系統鑰匙圈中。你登入的每部裝置都使用同一份憑證,其他成員都無法讀取它。

如果伺服器已註冊 GitHub App(建立 GitHub App),設定 → 工作區 → 個人資料與身分 → 程式碼託管 會提供使用 GitHub 登入(由伺服器執行的裝置流程)。否則請貼上個人存取權杖:

  • 經典:repo 與 read:org
  • 精細權限:Contents 與 Pull requests(讀取及寫入)、Checks 與 Actions(讀取)

請在 GitHub → Settings → Developer settings → Personal access tokens 建立一個。伺服器會在權杖儲存時探查其帳戶名稱,因此該列可以顯示「已以 … 身分登入」;探查失敗仍會儲存權杖,而拼寫錯誤或缺漏的權限範圍會在之後以請求失敗的形式顯現。

新手導引的第一步就是這項連接。之後,同一張卡片就是你替換或清除它的地方。GitLab 與 Bitbucket 使用同一張卡片;參見連接程式碼託管。

Control Center 是精簡用戶端,位於擁有資料庫並承擔所有工作的無介面 cc_server 行程之上;部署與用戶端 說明了這種拆分對桌面、網頁與手機的意義。

桌面版首次啟動時會詢問 「Control Center 應如何執行?」:

  • 在此應用程式執行:桌面版會在本機啟動並監督一個 cc_server,並透過回送與它通訊。無須其他設定。這正是快速入門所假設的設定。
  • 連接到遠端執行個體:以 WebSocket URL、裝置 id,以及配對金鑰或一次性邀請碼,將桌面版指向在別處執行的 cc_server。資料歸那台伺服器所有;這個桌面版只負責渲染。

之後可在 設定 → 伺服器 → 連接與狀態 新增或切換伺服器。切換會就地重新連接——無須重新啟動。瀏覽器無法執行伺服器,因此網頁用戶端永遠是遠端的;參見連接遠端伺服器。

要自行託管伺服器,請參閱執行無介面伺服器。當中涵蓋建置二進位檔、在首次啟動前產生配對金鑰,以及 --data-dir / --port / --bind 旗標。

  1. 設定 → 伺服器 → 模型供應商 會列出兩個配接器。「Control Center (built-in)」會顯示為已找到,版本為 built-in;若伺服器主機的 PATH 中有它的 CLI,Claude Code 也會顯示為已找到。若找不到,請按重新整理。
  2. 設定 → 工作區 → 程式庫 會列出此工作區的程式庫,而新增程式庫 會瀏覽伺服器主機上的資料夾。
  3. 設定 → 工作區 → 代理 會列出你第一個工作區預置的五個代理。每個代理都需要設定配接器與模型才能執行。
  4. 設定 → 伺服器 → 診斷與私隱 會報告此主機提供的沙箱後端、嵌入模型的狀態,以及日誌記錄。

原生程式庫是必需的,而且沒有降級模式:缺少任何一個都會導致啟動硬失敗,而不是走較慢的路徑。請在做其他事情之前先暫存它們。所有 Flutter 與 Dart 指令都要透過 fvm 執行,因為 SDK 版本由這個程式庫鎖定。

終端視窗
git clone https://github.com/SamuelAlev/control-center.git
cd control-center
scripts/natives/build_natives.sh
fvm flutter pub get
fvm flutter pub run build_runner build --delete-conflicting-outputs
fvm flutter gen-l10n
fvm flutter run -d macos # or -d windows, -d linux

在 macOS 上,安全儲存(GitHub、Linear 與 Google 登入)需要應用程式由 Apple 團隊簽署——免費的 Apple ID 就已足夠,這是一次性設定,詳見本地開發簽署。沒有它,應用程式仍可啟動;只有安全儲存無法使用。Windows 與 Linux 無須簽署。

要建置無介面伺服器二進位檔,請先用同樣方式暫存原生程式庫,然後:

終端視窗
cd apps/cc_server
fvm dart build cli

建置掛鉤會把 build/natives/ 中已有的內容複製到套件組合中,因此在暫存之前建置,會得到一個沒有原生程式庫的套件組合,以及一個拒絕啟動的伺服器。

網頁用戶端請使用 scripts/build_web.sh(手機 PWA 用 --target remote)。CI 執行的就是它:單純的 flutter build web 會跳過建置識別戳記、Web Worker 重新產生、部署清單,以及資源預算檢查。