התקנה
Control Center פועל בשתי דרכים: כאפליקציית ווב בכתובת app.usectrl.dev, בלי שום דבר להוריד, או כאפליקציית שולחן עבודה שאתם מתקינים. אלו אותה אפליקציה עם אותן תכונות. ההבדל היחיד הוא היכן רץ השרת — ואפליקציית הווב אינה יכולה להריץ אחד עבורכם.
שימוש בדפדפן
קטע בשם “שימוש בדפדפן”app.usectrl.dev היא האפליקציה הזו מהודרת עבור הדפדפן. אין מה להתקין ואין מה לעדכן. פתחו אותה והתחברו.
מה שלשונית דפדפן אין אפשרות לעשות הוא להיות השרת. כל לקוח — שולחן עבודה, ווב,
טלפון — הוא מרנדר דק מעל cc_server ללא ממשק, שמחזיק במסד הנתונים ועושה את העבודה,
ולכן אפליקציית הווב תמיד מדברת אל שרת שאתם מריצים. שתי דרכים לספק לה אחד:
שרת על המחשב שלכם. הפעילו cc_server באופן מקומי והפנו את אפליקציית הווב אל
ws://localhost:9030. דפדפנים מתייחסים אל localhost כאל מהימן, כך שזה לא דורש תעודה
ולא מנהרה. זו הדרך המהירה ביותר לנסות את אפליקציית הווב, והנתונים שלכם לא יוצאים
מהמחשב.
שרת על מחשב אחר. מכיוון ש-app.usectrl.dev מוגש מעל HTTPS, שרת שאינו מקומי חייב להיות
נגיש מעל wss:// עם תעודה שהדפדפן כבר סומך עליה. cc_server מסרב לקשור כתובת
שאינה loopback ללא TLS, ולכן בחרו באחת מהאפשרויות:
- לתת לו תעודה ישירות, עם
--tls-certו---tls-key - להעמיד אותו מאחורי פרוקסי הפוך שמסיים TLS ולהפעיל אותו עם
--insecure - לחשוף אותו דרך מנהרה או VPN שמספקים את התעודה — Tailscale, cloudflared או דומה. בהגדרות ← שרת ← חיבור וסטטוס נמצאת ההצטרפות המובנית למנהרה תחת שתף שרת זה.
בכל פעם שהשרת יושב מאחורי פרוקסי, NAT או מנהרה, הגדירו את --public-url לכתובת
שאליה הלקוחות אמורים לפנות בפועל. ברירת המחדל שלו היא הקישור המקומי, ולכן בלעדיו
הלקוחות מנסים לפנות למארח הלא נכון.
כמה דברים נשארים בלעדיים לשולחן העבודה, מפני שהם זקוקים לחלון נייטיבי או להתקני השמע של המחשב עצמו: המחוון הצף של מצב הריכוז, התראות קופצות של מערכת ההפעלה (מרכז ההתראות בתוך האפליקציה עובד בכל מקום), “התחלת הקלטה וקישור” מאירוע ביומן, והרצה מחודשת של סיכום פגישה. כל השאר — מרחבים, סוכנים, סקירת בקשות משיכה, פייפליינים, כרטיסים, זיכרון והקלטת פגישות עצמה — מתנהג אותו הדבר.
כדי לחבר את אפליקציית הווב לשרת, עקבו אחר התחברות לשרת מרוחק. כדי לארח את השרת, עקבו אחר הפעלת שרת ללא ממשק.
דרישות מערכת לשולחן העבודה
קטע בשם “דרישות מערכת לשולחן העבודה”| דרישה | 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 אין הורדה מוכנה מראש. בנייה מקוד המקור במקום.
תיקיית הנתונים של השרת גדולה בהרבה מהאפליקציה. בהפעלה הראשונה שלה cc_server מתקין
בכוח את המודלים שעל המכשיר — הטמעות טקסט (~90 MB), הפרדת דוברים (~35 MB) ומודל הדיבור
הנבחר (Parakeet TDT v3 כברירת מחדל, ~600 MB; גרסאות Whisper 198–626 MB) — בתוספת build
מוטמע של code-server, וכל שיחת סוכן מקבלת עץ עבודה בהעתקה בעת כתיבה של המאגרים שעליהם
היא עובדת (git worktree רגיל ב-Windows). הדיבור אינו אופציונלי: בלי מודל ה-ASR, פעולות
פגישות והכתבה אינן מסופקות. ההורדה הראשונה של מודל הדיבור עדיין דורשת הפעלה מחדש אחת
לפני שההקלטה נדלקת.
שולחן העבודה מפנה את השרת שלו אל תיקיית התמיכה באפליקציות לפי משתמש של מערכת ההפעלה.
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. ה-build חתום ב-Developer ID ומאושר ב-notarization של 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 עבור checkout של מרחבים (בלי העתקה בעת כתיבה).
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 — לצד images של cc-server, cc-webapp ו-cc-remote ב-GHCR. ראו הפעלת שרת ללא ממשק.
הארכיון של Linux נבנה על Ubuntu 22.04 והספריות הנייטיביות המצורפות אליו מקושרות ל-glibc 2.35 ול-libstdc++ של GCC 12, ולכן הוא דורש מארח חדש לפחות כזה (Ubuntu 22.04, Debian 12, Fedora 36 ואילך). בהפצה ישנה יותר הריצו במקום זאת את ה-image של cc-server — מכולה מביאה איתה userland משלה, כך שרק הקרנל צריך להיות שלכם.
ה-backend של הסוכנים
קטע בשם “ה-backend של הסוכנים”Control Center שולח סוכנים דרך מתאמים. יש שניים מהם, הרשימה קבועה, והם מזוהים אוטומטית — אין דרך לרשום מתאם נוסף.
המתאם Control Center (מובנה) אינו זקוק ל-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 מגישה את התוכנית ממארח אחר —
הדביקו מפתח של תוכנית קידוד באריח הרגיל של 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 — אותה מכונה כששולחן העבודה
מריץ שרת משלו, המארח המרוחק בכל מקרה אחר. התקינו את ה-CLI של Claude Code שם, לא
בלקוח. כפתור רענן בעמוד הזה מריץ את הבדיקה מחדש.
רשימות המודלים מוגשות בזמן אמת על ידי כל ספק מחובר; models.dev מספק רק מטא-נתונים של מחיר וחלון הקשר. ראו ניהול מתאמים ומודלים.
אימות GitHub
קטע בשם “אימות GitHub”פרטי הגישה ל-GitHub הם שלכם וחיים בשרת, לפי מזהה המשתמש שלכם — ולא במחזיק המפתחות של מערכת ההפעלה בלקוח. כל מכשיר שאתם מתחברים ממנו משתמש באותם פרטים, ואף חבר אחר אינו יכול לקרוא אותם.
אם בשרת רשום GitHub App (יצירת GitHub App), בהגדרות ← סביבת עבודה ← פרופיל וזהות ← אחסון קוד מוצעת כניסה עם GitHub (זרימת מכשיר שהשרת מריץ). אחרת, הדביקו אסימון גישה אישי:
- קלאסי:
repoו-read:org - Fine-grained: Contents ו-Pull requests (קריאה וכתיבה), Checks ו-Actions (קריאה)
צרו אחד בכתובת GitHub → Settings → Developer settings → Personal access tokens. השרת בודק את האסימון לקבלת שם החשבון בזמן שהוא נשמר, ולכן השורה יכולה לומר “מחובר בתור …”; בדיקה שנכשלת עדיין שומרת את האסימון, ושגיאת הקלדה או הרשאה חסרה יתגלו כבקשה שנכשלה בהמשך.
השלב הראשון בתהליך ההיכרות הוא החיבור הזה. לאחר מכן, באותו כרטיס מחליפים או מנקים אותו. GitLab ו-Bitbucket משתמשים באותו כרטיס; ראו חיבור מארח קוד.
בחירת המקום שבו רץ השרת
קטע בשם “בחירת המקום שבו רץ השרת”Control Center הוא לקוח דק מעל תהליך cc_server ללא ממשק, שמחזיק במסד הנתונים ועושה
את כל העבודה; פריסה ולקוחות מסביר מה המשמעות של
הפיצול הזה עבור שולחן העבודה, הווב והטלפון.
בהפעלה הראשונה שולחן העבודה שואל “כיצד להריץ את Control Center?”:
- הרץ באפליקציה זו: שולחן העבודה מפעיל ומפקח על
cc_serverבמכונה הזו ומדבר איתו מעל loopback. אין מה להגדיר מעבר לכך. זו ההגדרה שהתחלה מהירה מניחה. - התחבר למופע מרוחק: הפנו את שולחן העבודה אל
cc_serverשרץ במקום אחר, עם כתובת ה-WebSocket שלו, מזהה מכשיר, ומפתח צימוד או קוד הזמנה חד-פעמי. השרת ההוא מחזיק בנתונים; שולחן העבודה הזה רק מרנדר אותם.
אפשר להוסיף או להחליף שרתים מאוחר יותר תחת הגדרות ← שרת ← חיבור וסטטוס. החלפה מתחברת מחדש במקום — בלי הפעלה מחדש. דפדפן אינו יכול להריץ שרת, ולכן לקוח הווב הוא תמיד מרוחק; ראו התחברות לשרת מרוחק.
כדי לארח שרת בעצמכם, עקבו אחר הפעלת שרת ללא ממשק. הוא מכסה בנייה של הבינארי, יצירת מפתח צימוד לפני ההפעלה הראשונה, ואת הדגלים --data-dir / --port / --bind.
אימות ההגדרה
קטע בשם “אימות ההגדרה”- הגדרות ← שרת ← ספקי מודלים מציג את שני המתאמים. “Control Center (מובנה)” מוצג כנמצא עם גרסה
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 חינמי מספיק, וזו הגדרה חד-פעמית שמתוארת תחת local development signing. בלעדיה האפליקציה עדיין עולה; רק האחסון המאובטח אינו זמין. Windows ו-Linux אינם דורשים חתימה.
כדי לבנות את הבינארי של השרת ללא ממשק, הכינו תחילה את הספריות הנייטיביות באותו אופן, ואז:
cd apps/cc_serverfvm dart build cliה-hook של הבנייה מעתיק אל החבילה כל מה שכבר נמצא ב-build/natives/, כך שבנייה לפני
ההכנה מניבה חבילה בלי ספריות נייטיביות ושרת שמסרב לעלות.
עבור לקוח הווב השתמשו ב-scripts/build_web.sh (--target remote עבור ה-PWA של הטלפון). זה מה ש-CI מריץ: flutter build web רגיל מדלג על חתימת זהות ה-build, על יצירה מחדש של ה-Web Worker, על מניפסט הפריסה ועל בדיקת תקציב הנכסים.