ติดตั้ง
Control Center ทำงานได้สองแบบ: เป็น แอปเว็บ ที่ app.usectrl.dev ซึ่งไม่ต้องดาวน์โหลดอะไรเลย หรือเป็น แอปเดสก์ท็อป ที่คุณติดตั้ง ทั้งสองเป็นแอปพลิเคชันเดียวกันที่มีฟีเจอร์เหมือนกัน ต่างกันแค่ ตำแหน่งที่เซิร์ฟเวอร์ทำงาน — และแอปเว็บไม่สามารถรันเซิร์ฟเวอร์ให้คุณได้
ใช้ในเบราว์เซอร์ของคุณ
หัวข้อที่มีชื่อว่า “ใช้ในเบราว์เซอร์ของคุณ”app.usectrl.dev คือแอปพลิเคชันนี้ที่คอมไพล์สำหรับเบราว์เซอร์ ไม่ต้องติดตั้ง ไม่ต้องอัปเดต เปิดขึ้นมาแล้วเชื่อมต่อได้เลย
สิ่งที่แท็บเบราว์เซอร์ทำไม่ได้คือ เป็น เซิร์ฟเวอร์เอง ไคลเอนต์ทุกตัว — เดสก์ท็อป เว็บ มือถือ —
เป็นเพียงตัวแสดงผลแบบบางบน 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 |
Mac ที่ใช้ Intel ไม่มีไฟล์ให้ดาวน์โหลดสำเร็จรูป ให้สร้างจากซอร์สโค้ดแทน
ไดเรกทอรีข้อมูลของเซิร์ฟเวอร์จะโตเกินกว่าแอป เมื่อเริ่มทำงานครั้งแรก cc_server จะติดตั้งโมเดลบนอุปกรณ์แบบบังคับ — การฝังเวกเตอร์ข้อความ (~90 MB) การแยกผู้พูด (~35 MB) และโมเดลเสียงพูดที่เลือกไว้ (ค่าเริ่มต้นคือ Parakeet TDT v3 ~600 MB; Whisper รุ่นต่าง ๆ 198–626 MB) — พร้อมกับบิลด์ code-server ที่ฝังมาให้ และทุกการสนทนาของเอเจนต์จะได้ worktree แบบ copy-on-write ของรีโพที่มันทำงานด้วย (บน Windows ใช้ git worktree ธรรมดา) เสียงพูดไม่ใช่ตัวเลือกเสริม: หากไม่มีโมเดล ASR การประชุมและการป้อนข้อความด้วยเสียงจะไม่ถูกให้บริการ การดาวน์โหลดโมเดลเสียงพูดครั้งแรกยังต้องรีสตาร์ตหนึ่งครั้งก่อนที่การบันทึกจะพร้อมใช้งาน
เดสก์ท็อปชี้เซิร์ฟเวอร์ของตนไปที่ไดเรกทอรี application support ประจำผู้ใช้ของระบบปฏิบัติการ cc_server ที่เริ่มด้วยมือโดยไม่มี --data-dir จะใช้ค่าเริ่มต้นเป็น <application data>/control-center — ~/Library/Application Support/control-center บน macOS, %APPDATA%\control-center บน Windows, $XDG_DATA_HOME/control-center (หรือ ~/.local/share/control-center) บน Linux
ดาวน์โหลด
หัวข้อที่มีชื่อว่า “ดาวน์โหลด”ไฟล์ทั้งหมดด้านล่างมาจาก GitHub Releases
macOS (Apple Silicon)
หัวข้อที่มีชื่อว่า “macOS (Apple Silicon)”ดาวน์โหลด Control-Center-<version>-arm64.dmg เปิดขึ้นมา แล้วลาก Control Center ไปยัง Applications บิลด์นี้ลงชื่อด้วย Developer ID และผ่านการ notarize จาก Apple จึงเปิดได้ตามปกติ
Windows (x64, ARM64)
หัวข้อที่มีชื่อว่า “Windows (x64, ARM64)”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 สำหรับการเช็กเอาต์ของสเปซ (ไม่มี copy-on-write)
Linux (x86_64)
หัวข้อที่มีชื่อว่า “Linux (x86_64)”Control-Center-<version>-x86_64.AppImageControl-Center-<version>-linux-x64.tar.gz
AppImage มีข้อมูลการอัปเดตในตัว ดังนั้น AppImageUpdate หรือ appimaged จึงอัปเดตมันขึ้นเป็นรีลีสล่าสุดได้ทันที โดยดาวน์โหลดเฉพาะส่วนที่เปลี่ยนแปลง
ทั้งสองสร้างบน Ubuntu 22.04 และรันได้บนระบบนั้นหรือใหม่กว่า (Debian 12, Fedora 36 และใหม่กว่า): ลิงก์กับ glibc 2.35 และ libstdc++ ของ GCC 12 และดึง GTK 3 จากระบบ ไลบรารีไม่กี่ตัวที่เดสก์ท็อปมาตรฐานอาจไม่มีจะถูกพกมาในไฟล์เอง จึงไม่ต้องติดตั้งอะไรเพิ่ม เสียง — การเล่นการประชุม ซาวด์สเคป เสียงของริก และเสียงแจ้งเตือน — เล่นผ่าน libmpv ของระบบ (libmpv1 บน Ubuntu 22.04, libmpv2 บน Ubuntu และ Debian ที่ใหม่กว่า, mpv-libs บน Fedora) หากไม่มี แอปจะเริ่มทำงานโดยซ่อนตัวควบคุมเหล่านั้นไว้
เซิร์ฟเวอร์แบบสแตนด์อโลน
หัวข้อที่มีชื่อว่า “เซิร์ฟเวอร์แบบสแตนด์อโลน”แต่ละรีลีสยังมีเซิร์ฟเวอร์แบบไม่มีส่วนติดต่อแยกต่างหาก — 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 — พร้อมกับอิมเมจ cc-server, cc-webapp และ cc-remote บน GHCR ดูรันเซิร์ฟเวอร์แบบไม่มีส่วนติดต่อ
ไฟล์ archive สำหรับ Linux สร้างบน Ubuntu 22.04 และไลบรารีเนทีฟที่มาด้วยลิงก์กับ glibc 2.35 และ libstdc++ ของ GCC 12 จึงต้องใช้โฮสต์ที่ใหม่พอ ๆ กันเป็นอย่างน้อย (Ubuntu 22.04, Debian 12, Fedora 36 หรือใหม่กว่า) บนดิสทริบิวชันที่เก่ากว่า ให้รันอิมเมจ cc-server แทน — คอนเทนเนอร์นำ userland ของตัวเองมาด้วย จึงต้องเป็นเคอร์เนลของคุณเท่านั้น
แบ็กเอนด์ของเอเจนต์
หัวข้อที่มีชื่อว่า “แบ็กเอนด์ของเอเจนต์”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 ให้บริการแพ็กเกจนี้จากโฮสต์อื่น — หากวางคีย์ของแพ็กเกจ coding plan ลงในไทล์ z.ai ธรรมดา ทุกคำขอจะตอบกลับ 429 … "Insufficient balance or no resource package" เพราะแพ็กเกจไม่มียอดคงเหลือให้ใช้ การสมัครสมาชิก Claude Pro/Max ไม่ใช่การลงชื่อเข้าใช้ API ของ Anthropic ให้เข้าถึงแพ็กเกจนั้นผ่านอะแดปเตอร์ Claude Code แทน สิ่งที่คุณ เพิ่มได้ ในหน้านั้นคือ ผู้ให้บริการที่กำหนดเอง — ปลายทางใดก็ตามที่เข้ากันได้กับ OpenAI หรือ Anthropic (Ollama, LM Studio, vLLM หรือการติดตั้งใช้งานส่วนตัว) ภายใต้ ผู้ให้บริการที่กำหนดเอง → เพิ่มผู้ให้บริการ
อะแดปเตอร์อีกตัวห่อหุ้ม CLI ภายนอก:
- Claude Code (
claude):npm install -g @anthropic-ai/claude-code
การตรวจจับจะตรวจสอบ PATH ของเครื่องที่รัน cc_server — เครื่องเดียวกันเมื่อเดสก์ท็อปรันเซิร์ฟเวอร์ของตัวเอง หรือโฮสต์ระยะไกลในกรณีอื่น ติดตั้ง Claude Code CLI ที่นั่น ไม่ใช่บนไคลเอนต์ ปุ่ม รีเฟรช ในหน้านั้นจะรันการตรวจจับซ้ำ
รายการโมเดลถูกให้บริการแบบสดโดยผู้ให้บริการแต่ละรายที่เชื่อมต่ออยู่ ส่วน models.dev ให้เฉพาะข้อมูลเมตาของราคาและหน้าต่างบริบท ดูจัดการอะแดปเตอร์และโมเดล
การตรวจสอบสิทธิ์ GitHub
หัวข้อที่มีชื่อว่า “การตรวจสอบสิทธิ์ GitHub”ข้อมูลรับรอง GitHub เป็นของคุณและอยู่บนเซิร์ฟเวอร์ ผูกกับ ID ผู้ใช้ของคุณ — ไม่ได้อยู่ในคีย์เชนของระบบปฏิบัติการฝั่งไคลเอนต์ ทุกอุปกรณ์ที่คุณลงชื่อเข้าใช้จะใช้ข้อมูลเดียวกัน และสมาชิกคนอื่นอ่านไม่ได้
หากเซิร์ฟเวอร์ลงทะเบียน GitHub App ไว้ (สร้าง GitHub App) การตั้งค่า → เวิร์กสเปซ → โปรไฟล์และตัวตน → โฮสต์โค้ด จะมี ลงชื่อเข้าใช้ด้วย GitHub (device flow ที่เซิร์ฟเวอร์รันให้) มิฉะนั้นให้วางโทเค็นการเข้าถึงส่วนบุคคล:
- Classic:
repoและread:org - Fine-grained: Contents และ Pull requests (read and write), Checks และ Actions (read)
สร้างได้ที่ GitHub → Settings → Developer settings → Personal access tokens เซิร์ฟเวอร์จะตรวจสอบโทเค็นเพื่อดูชื่อบัญชีตอนที่บันทึก ดังนั้นแถวนั้นจึงอาจแสดงว่า “ลงชื่อเข้าใช้ในชื่อ …” แม้การตรวจสอบจะล้มเหลวก็ยังบันทึกโทเค็นไว้ และการพิมพ์ผิดหรือการขาดสโคปจะปรากฏเป็นคำขอที่ล้มเหลวในภายหลัง
ขั้นตอนแรกของการเริ่มต้นใช้งานคือการเชื่อมต่อนี้ หลังจากนั้นการ์ดเดียวกันนี้คือที่ที่คุณเปลี่ยนหรือล้างมัน GitLab และ Bitbucket ใช้การ์ดเดียวกัน ดูเชื่อมต่อโฮสต์โค้ด
เลือกตำแหน่งที่เซิร์ฟเวอร์ทำงาน
หัวข้อที่มีชื่อว่า “เลือกตำแหน่งที่เซิร์ฟเวอร์ทำงาน”Control Center เป็นไคลเอนต์แบบบางบนโปรเซส cc_server แบบไม่มีส่วนติดต่อที่เป็นเจ้าของฐานข้อมูลและทำงานทั้งหมด การปรับใช้และไคลเอนต์ อธิบายความหมายของการแยกส่วนนี้สำหรับเดสก์ท็อป เว็บ และมือถือ
เมื่อเปิดครั้งแรก เดสก์ท็อปจะถามว่า “Control Center ควรรันอย่างไร?”:
- รันในแอปนี้: เดสก์ท็อปจะสปอว์นและดูแล
cc_serverบนเครื่องนี้ แล้วสื่อสารกับมันผ่านลูปแบ็ก ไม่ต้องตั้งค่าอย่างอื่น นี่คือการตั้งค่าที่เริ่มอย่างรวดเร็วสมมติไว้ - เชื่อมต่ออินสแตนซ์ระยะไกล: ชี้เดสก์ท็อปไปที่
cc_serverที่รันอยู่ที่อื่น พร้อม URL ของ WebSocket, ID อุปกรณ์ และคีย์จับคู่หรือรหัสเชิญแบบใช้ครั้งเดียว เซิร์ฟเวอร์นั้นเป็นเจ้าของข้อมูล เดสก์ท็อปนี้เพียงแสดงผลเท่านั้น
เพิ่มหรือสลับเซิร์ฟเวอร์ภายหลังได้ที่ การตั้งค่า → เซิร์ฟเวอร์ → การเชื่อมต่อและสถานะ การสลับจะเชื่อมต่อใหม่ทันทีโดยไม่ต้องรีสตาร์ต เบราว์เซอร์ไม่สามารถรันเซิร์ฟเวอร์ได้ เว็บไคลเอนต์จึงเป็นระยะไกลเสมอ ดูเชื่อมต่อเซิร์ฟเวอร์ระยะไกล
หากต้องการโฮสต์เซิร์ฟเวอร์เอง ให้ทำตามรันเซิร์ฟเวอร์แบบไม่มีส่วนติดต่อ ซึ่งครอบคลุมการบิลด์ไบนารี การสร้างคีย์จับคู่ก่อนเริ่มครั้งแรก และแฟล็ก --data-dir / --port / --bind
ตรวจสอบการตั้งค่าของคุณ
หัวข้อที่มีชื่อว่า “ตรวจสอบการตั้งค่าของคุณ”- การตั้งค่า → เซิร์ฟเวอร์ → ผู้ให้บริการโมเดล แสดงอะแดปเตอร์ทั้งสองตัว “Control Center (built-in)” จะแสดงว่าพร้อมใช้ที่เวอร์ชัน
built-inส่วน Claude Code จะแสดงว่าพร้อมใช้หาก CLI ของมันอยู่ในPATHของโฮสต์เซิร์ฟเวอร์ กด รีเฟรช หากไม่พบ - การตั้งค่า → เวิร์กสเปซ → รีโพสิทอรี แสดงรายการรีโพของเวิร์กสเปซนี้ และ เพิ่มรีโพสิทอรี ใช้เรียกดูโฟลเดอร์ของโฮสต์เซิร์ฟเวอร์
- การตั้งค่า → เวิร์กสเปซ → เอเจนต์ แสดงเอเจนต์ห้าตัวที่เวิร์กสเปซแรกของคุณซีดไว้ แต่ละตัวต้องตั้ง อะแดปเตอร์ และ โมเดล ก่อนจึงจะรันได้
- การตั้งค่า → เซิร์ฟเวอร์ → การวินิจฉัยและความเป็นส่วนตัว รายงานแบ็กเอนด์แซนด์บ็อกซ์ที่โฮสต์นี้มีให้ สถานะของโมเดลฝังเวกเตอร์ และการบันทึกล็อก
สร้างจากซอร์สโค้ด
หัวข้อที่มีชื่อว่า “สร้างจากซอร์สโค้ด”ไลบรารีเนทีฟเป็นสิ่งจำเป็นและไม่มีโหมดลดความสามารถ: หากขาดตัวใดตัวหนึ่งจะเริ่มทำงานไม่สำเร็จแบบเด็ดขาด ไม่ใช่แค่ช้าลง ให้จัดเตรียมมันไว้ก่อนสิ่งอื่นใด คำสั่ง Flutter และ Dart ทุกคำสั่งต้องผ่าน fvm เพราะเวอร์ชัน SDK ถูกตรึงไว้โดยรีโป
git clone https://github.com/SamuelAlev/control-center.gitcd control-centerscripts/natives/build_natives.shfvm flutter pub getfvm flutter pub run build_runner build --delete-conflicting-outputsfvm flutter gen-l10nfvm flutter run -d macos # or -d windows, -d linuxบน macOS พื้นที่จัดเก็บที่ปลอดภัย (การลงชื่อเข้าใช้ GitHub, Linear และ Google) ต้องให้แอปถูกเซ็นโดยทีม Apple — ใช้ Apple ID ฟรีก็เพียงพอ และเป็นการตั้งค่าครั้งเดียวที่อธิบายไว้ในการเซ็นสำหรับการพัฒนาในเครื่อง หากไม่มี แอปก็ยังเปิดได้ เพียงแต่พื้นที่จัดเก็บที่ปลอดภัยจะใช้งานไม่ได้ Windows และ Linux ไม่ต้องเซ็น
หากต้องการบิลด์ไบนารีของเซิร์ฟเวอร์แบบไม่มีส่วนติดต่อ ให้จัดเตรียมเนทีฟด้วยวิธีเดียวกันก่อน แล้วจึง:
cd apps/cc_serverfvm dart build cliฮุกบิลด์จะคัดลอกสิ่งที่อยู่ใน build/natives/ แล้วเข้าไปในบันเดิล ดังนั้นการบิลด์ก่อนจัดเตรียมเนทีฟจะได้บันเดิลที่ไม่มีเนทีฟและเซิร์ฟเวอร์ที่ปฏิเสธการเริ่มทำงาน
สำหรับเว็บไคลเอนต์ให้ใช้ scripts/build_web.sh (--target remote สำหรับ PWA บนโทรศัพท์) นี่คือสิ่งที่ CI รัน: การใช้ flutter build web เปล่า ๆ จะข้ามการประทับ build identity การสร้าง Web Worker ใหม่ deploy manifest และการตรวจสอบงบประมาณแอสเซ็ต