Langkau ke kandungan

Pasang

Control Center berjalan dalam dua cara: sebagai apl web di app.usectrl.dev, tanpa apa-apa untuk dimuat turun, atau sebagai apl desktop yang anda pasang. Kedua-duanya ialah aplikasi yang sama dengan ciri yang sama. Satu-satunya perbezaan ialah tempat pelayan berjalan — dan apl web tidak boleh menjalankan satu untuk anda.

app.usectrl.dev ialah aplikasi ini yang dikompil untuk penyemak imbas. Tiada apa untuk dipasang, tiada apa untuk dikemas kini. Bukanya dan sambung.

Apa yang tab penyemak imbas tidak boleh lakukan ialah menjadi pelayan itu. Setiap klien — desktop, web, telefon — ialah pemapar nipis di atas cc_server tanpa kepala yang memiliki pangkalan data dan melakukan kerja, jadi apl web sentiasa bercakap dengan pelayan yang anda jalankan. Dua cara untuk memberikannya satu:

Pelayan pada mesin anda sendiri. Mulakan cc_server secara setempat dan halakan apl web ke ws://localhost:9030. Penyemak imbas menganggap localhost sebagai boleh dipercayai, jadi ini tidak memerlukan sijil dan tiada terowong. Inilah cara terpantas untuk mencuba apl web dan data anda tidak pernah meninggalkan mesin anda.

Pelayan pada mesin lain. Oleh sebab app.usectrl.dev dilayan melalui HTTPS, pelayan bukan setempat perlu boleh dicapai melalui wss:// dengan sijil yang sudah dipercayai oleh penyemak imbas. cc_server menolak untuk mengikat alamat bukan loopback tanpa TLS, jadi pilih salah satu:

  • berikan sijil kepadanya secara terus, dengan --tls-cert dan --tls-key
  • letakkannya di belakang proksi songsang yang menamatkan TLS dan mulakannya dengan --insecure
  • dedahkannya melalui terowong atau VPN yang membekalkan sijil — Tailscale, cloudflared, atau yang serupa. Tetapan → Pelayan → Sambungan & status mempunyai pilihan masuk terowong terbina di bawah Kongsi pelayan ini.

Setiap kali pelayan berada di belakang proksi, NAT atau terowong, tetapkan --public-url kepada alamat yang sepatutnya didail oleh klien. Ia lalai kepada ikatan setempat, jadi tanpanya klien akan mencuba hos yang salah.

Beberapa perkara kekal khusus desktop, kerana ia memerlukan tetingkap natif atau peranti audio mesin itu sendiri: pil modus fokus terapung, pemberitahuan pop timbul OS (pusat pemberitahuan dalam apl berfungsi di mana-mana), “Mula rakaman & pautkan” daripada acara kalendar, dan menjalankan semula ringkasan mesyuarat. Semua yang lain — ruang, ejen, semakan pull request, pipeline, tiket, memori dan rakaman mesyuarat itu sendiri — berkelakuan sama.

Untuk menyambungkan apl web ke pelayan, ikut Sambung ke pelayan jauh. Untuk menghos pelayan, ikut Jalankan pelayan tanpa kepala.

Keperluan macOS Windows Linux
Versi OS macOS 13+ (Ventura) Windows 10+ Ubuntu 22.04+ atau distro lain dengan glibc 2.35+ dan GTK 3
Seni bina Apple Silicon (arm64) x64, ARM64 x86_64
Git Diperlukan Diperlukan Diperlukan
Ruang cakera ~200 MB untuk apl, serta direktori data pelayan ~200 MB ~200 MB

Mac Intel tiada muat turun prabina. Bina daripada sumber sebaliknya.

Direktori data pelayan membesar melebihi apl itu. Pada permulaan pertamanya cc_server memasang secara paksa model pada peranti — pembenaman teks (~90 MB), diarisasi penutur (~35 MB) dan model pertuturan yang dipilih (Parakeet TDT v3 secara lalai, ~600 MB; varian Whisper 198–626 MB) — serta binaan code-server terbenam, dan setiap perbualan ejen mendapat worktree copy-on-write bagi repo yang dikerjakannya (git worktree biasa pada Windows). Pertuturan bukan pilihan: tanpa model ASR, operasi mesyuarat dan imlak tidak dilayan. Muat turun pertama model pertuturan masih memerlukan satu permulaan semula sebelum rakaman menyala.

Desktop menghalakan pelayannya ke direktori sokongan aplikasi setiap pengguna OS. cc_server yang dimulakan secara manual tanpa --data-dir lalai kepada <application data>/control-center — ~/Library/Application Support/control-center pada macOS, %APPDATA%\control-center pada Windows, $XDG_DATA_HOME/control-center (atau ~/.local/share/control-center) pada Linux.

Setiap artifak di bawah datang daripada GitHub Releases.

Muat turun Control-Center-<version>-arm64.dmg, bukanya dan seret Control Center ke Applications. Binaan ini ditandatangani dengan Developer ID dan dinotari oleh Apple, jadi ia terbuka seperti biasa.

  • Control-Center-<version>-x64-setup.exe: pemasang setiap pengguna.
  • Control-Center-<version>-windows-x64.zip: zip mudah alih.
  • Control-Center-<version>-arm64-setup.exe: pemasang setiap pengguna.
  • Control-Center-<version>-windows-arm64.zip: zip mudah alih.

Windows menggunakan git worktree untuk checkout ruang (tiada copy-on-write).

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

AppImage membawa maklumat kemas kini, jadi AppImageUpdate atau appimaged boleh membawanya ke keluaran terkini di tempatnya, memuat turun hanya apa yang berubah.

Kedua-duanya dibina pada Ubuntu 22.04 dan berjalan padanya atau apa-apa yang lebih baharu (Debian 12, Fedora 36 dan seterusnya): ia memaut glibc 2.35 dan libstdc++ GCC 12 serta mengambil GTK 3 daripada sistem. Beberapa pustaka yang mungkin tiada pada desktop standard dibawa di dalamnya, jadi tiada apa lagi yang perlu dipasang. Bunyi — main balik mesyuarat, landskap bunyi, audio rig dan loceng pemberitahuan — dimainkan melalui libmpv sistem (libmpv1 pada Ubuntu 22.04, libmpv2 pada Ubuntu dan Debian yang lebih baharu, mpv-libs pada Fedora); tanpanya apl bermula dengan kawalan itu tersembunyi.

Setiap keluaran juga membawa pelayan tanpa kepala secara berasingan — 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 — bersama imej cc-server, cc-webapp dan cc-remote pada GHCR. Lihat Jalankan pelayan tanpa kepala.

Arkib Linux dibina pada Ubuntu 22.04 dan pustaka natif yang dibundelkannya memaut glibc 2.35 dan libstdc++ GCC 12, jadi ia memerlukan hos yang sekurang-kurangnya sebaharu itu (Ubuntu 22.04, Debian 12, Fedora 36 atau lebih baharu). Pada distribusi yang lebih lama, jalankan imej cc-server pula — kontena membawa userland sendiri, jadi hanya kernel perlu menjadi milik anda.

Control Center menghantar ejen melalui penyesuai. Terdapat dua daripadanya, senarainya tetap, dan ia dikesan secara automatik — tiada cara untuk mendaftarkan satu lagi.

Penyesuai Control Center (built-in) tidak memerlukan CLI luaran: gelung ejen berjalan di dalam pelayan dan bercakap dengan penyedia model melalui HTTP, jadi ia sentiasa tersedia. Sambungkan penyedia di bawah Tetapan → Pelayan → Penyedia model. OpenAI, Codex, Cursor dan Kimi Code menawarkan log masuk penyemak imbas; Anthropic, OpenRouter, Google Gemini, DeepSeek, Mistral, xAI, z.ai dan Moonshot memerlukan kunci API. Codex dan Cursor ialah penyedia pada pelari ini, bukan CLI yang berasingan. z.ai disenaraikan dua kali dengan sengaja: z.ai ialah platform terbuka bayar-mengikut-penggunaan, dibilkan terhadap baki akaun anda, manakala z.ai GLM Coding Plan ialah langganan. Ia kunci akaun yang sama, tetapi z.ai melayani pelan itu daripada hos yang berbeza — tampal kunci pelan pengekodan ke dalam jubin z.ai biasa dan setiap permintaan kembali 429 … "Insufficient balance or no resource package", kerana pelan itu tiada baki untuk dibelanjakan. Langganan Claude Pro/Max bukan log masuk API Anthropic; capai pelan itu melalui penyesuai Claude Code sebaliknya. Apa yang boleh anda tambah pada halaman itu ialah penyedia tersuai — mana-mana titik akhir serasi OpenAI atau Anthropic (Ollama, LM Studio, vLLM, penerapan persendirian) di bawah Penyedia tersuai → Tambah penyedia.

Penyesuai yang satu lagi membalut CLI luaran:

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

Pengesanan menyiasat PATH mesin yang menjalankan cc_server — mesin yang sama apabila desktop menjalankan pelayannya sendiri, hos jauh jika tidak. Pasang CLI Claude Code di situ, bukan pada klien. Butang Muat semula pada halaman itu menjalankan semula siasatan itu.

Senarai model dilayani secara langsung oleh setiap penyedia yang disambungkan; models.dev hanya membekalkan metadata harga dan tetingkap konteks. Lihat Urus penyesuai dan model.

Kelayakan GitHub ialah milik anda dan tinggal pada pelayan, dikunci oleh id pengguna anda — bukan dalam rantai kunci OS klien. Setiap peranti yang anda daftar masuk menggunakan yang sama, dan tiada ahli lain boleh membacanya.

Jika pelayan mempunyai GitHub App yang didaftarkan (Cipta GitHub App), Tetapan → Ruang kerja → Profil & identiti → Hos kod menawarkan Log masuk dengan GitHub (aliran peranti yang dijalankan oleh pelayan). Jika tidak, tampal token akses peribadi:

  • Klasik: repo dan read:org
  • Berbutir halus: Contents dan Pull requests (baca dan tulis), Checks dan Actions (baca)

Cipta satu di GitHub → Settings → Developer settings → Personal access tokens. Pelayan menyiasat token itu untuk nama akaun semasa ia disimpan, jadi baris itu boleh menyatakan “didaftar masuk sebagai …”; siasatan yang gagal masih menyimpan token itu, dan salah taip atau skop yang hilang akan muncul sebagai permintaan yang gagal kemudian.

Langkah pertama onboarding ialah sambungan ini. Selepas itu kad yang sama ialah tempat anda menggantikan atau mengosongkannya. GitLab dan Bitbucket menggunakan kad yang sama; lihat Sambungkan hos kod.

Control Center ialah klien nipis di atas proses cc_server tanpa kepala yang memiliki pangkalan data dan melakukan semua kerja; Penerapan dan klien menerangkan apa maksud pemisahan itu bagi desktop, web dan telefon.

Pada pelancaran pertama desktop bertanya “Bagaimana Control Center patut berjalan?”:

  • Jalankan dalam apl ini: desktop melahirkan dan mengawasi cc_server pada mesin ini dan bercakap dengannya melalui loopback. Tiada apa lagi untuk dikonfigurasikan. Inilah persediaan yang diandaikan oleh mula pantas.
  • Sambung ke tika jauh: halakan desktop ke cc_server yang berjalan di tempat lain dengan URL WebSocket-nya, id peranti, dan sama ada kunci pasangan atau kod jemputan sekali guna. Pelayan itu memiliki data; desktop ini hanya memaparkannya.

Tambah atau tukar pelayan kemudian di bawah Tetapan → Pelayan → Sambungan & status. Menukar menyambung semula di tempatnya — tiada permulaan semula. Penyemak imbas tidak boleh menjalankan pelayan, jadi klien web sentiasa jauh; lihat Sambung ke pelayan jauh.

Untuk menghos pelayan sendiri, ikut Jalankan pelayan tanpa kepala. Ia merangkumi pembinaan binari, penjanaan kunci pasangan sebelum permulaan pertama, dan bendera --data-dir / --port / --bind.

  1. Tetapan → Pelayan → Penyedia model menyenaraikan kedua-dua penyesuai. “Control Center (built-in)” dipaparkan sebagai ditemui dengan versi built-in; Claude Code dipaparkan sebagai ditemui jika CLI-nya ada pada PATH hos pelayan. Tekan Muat semula jika ia hilang.
  2. Tetapan → Ruang kerja → Repositori menyenaraikan repo ruang kerja ini, dan Tambah repositori menyemak imbas folder hos pelayan.
  3. Tetapan → Ruang kerja → Ejen menyenaraikan lima ejen yang disemai oleh ruang kerja pertama anda. Setiap satu memerlukan Penyesuai dan Model yang ditetapkan sebelum ia boleh berjalan.
  4. Tetapan → Pelayan → Diagnostik & privasi melaporkan bahagian belakang kotak pasir yang ditawarkan hos ini, keadaan model pembenaman, dan pengelogan.

Pustaka natif diperlukan dan tiada modus terdegradasi: yang hilang ialah kegagalan but keras, bukan laluan yang lebih perlahan. Sediakannya sebelum apa-apa lagi. Setiap perintah Flutter dan Dart melalui fvm, kerana versi SDK dipaku oleh repo.

Tetingkap terminal
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

Pada macOS, storan selamat (log masuk GitHub, Linear dan Google) memerlukan apl ditandatangani oleh pasukan Apple — ID Apple percuma sudah memadai, dan ia persediaan sekali sahaja yang diterangkan di bawah local development signing. Tanpanya apl tetap dilancarkan; hanya storan selamat tidak tersedia. Windows dan Linux tidak memerlukan tandatangan.

Untuk membina binari pelayan tanpa kepala, sediakan natif dengan cara yang sama dahulu, kemudian:

Tetingkap terminal
cd apps/cc_server
fvm dart build cli

Cangkuk binaan menyalin apa sahaja yang sudah ada dalam build/natives/ ke dalam bundel, jadi membina sebelum menyediakan natif menghasilkan bundel tanpa natif dan pelayan yang enggan bermula.

Untuk klien web gunakan scripts/build_web.sh (--target remote untuk PWA telefon). Inilah yang dijalankan oleh CI: flutter build web biasa melangkau setem identiti binaan, penjanaan semula Web Worker, manifes penerapan, dan semakan bajet aset.