Εγκατάσταση
Το Control Center εκτελείται με δύο τρόπους: ως εφαρμογή web στο app.usectrl.dev, χωρίς τίποτα να κατεβάσετε, ή ως εφαρμογή υπολογιστή που εγκαθιστάτε. Είναι η ίδια εφαρμογή με τις ίδιες δυνατότητες. Η μόνη διαφορά είναι πού εκτελείται ο διακομιστής — και η εφαρμογή web δεν μπορεί να εκτελέσει έναν για εσάς.
Χρήση στο πρόγραμμα περιήγησης
Ενότητα με τίτλο «Χρήση στο πρόγραμμα περιήγησης»Το app.usectrl.dev είναι αυτή η εφαρμογή μεταγλωττισμένη για το πρόγραμμα περιήγησης. Τίποτα να εγκαταστήσετε, τίποτα να ενημερώσετε. Ανοίξτε το και συνδεθείτε.
Αυτό που δεν μπορεί να κάνει μια καρτέλα του προγράμματος περιήγησης είναι να είναι ο
διακομιστής. Κάθε πελάτης — υπολογιστής, web, τηλέφωνο — είναι ένας λεπτός μηχανισμός
απόδοσης πάνω από έναν headless cc_server που κατέχει τη βάση δεδομένων και εκτελεί
την εργασία, οπότε η εφαρμογή web μιλά πάντα με έναν διακομιστή που εκτελείτε εσείς. Δύο
τρόποι για να της δώσετε έναν:
Ένας διακομιστής στο δικό σας μηχάνημα. Εκκινήστε το cc_server τοπικά και στρέψτε
την εφαρμογή web στο ws://localhost:9030. Τα προγράμματα περιήγησης θεωρούν το
localhost αξιόπιστο, οπότε αυτό δεν χρειάζεται πιστοποιητικό ούτε σήραγγα. Είναι ο
ταχύτερος τρόπος να δοκιμάσετε την εφαρμογή web και τα δεδομένα σας δεν φεύγουν ποτέ από
το μηχάνημά σας.
Ένας διακομιστής σε άλλο μηχάνημα. Επειδή το app.usectrl.dev σερβίρεται μέσω HTTPS,
ένας μη τοπικός διακομιστής πρέπει να είναι προσβάσιμος μέσω wss:// με πιστοποιητικό
που το πρόγραμμα περιήγησης εμπιστεύεται ήδη. Το cc_server αρνείται να δεσμεύσει
διεύθυνση εκτός loopback χωρίς TLS, οπότε διαλέξτε ένα από τα εξής:
- δώστε του πιστοποιητικό απευθείας, με
--tls-certκαι--tls-key - βάλτε το πίσω από έναν αντίστροφο διαμεσολαβητή που τερματίζει το TLS και εκκινήστε το
με
--insecure - εκθέστε το μέσω σήραγγας ή VPN που παρέχει το πιστοποιητικό — Tailscale, cloudflared ή παρόμοιο. Οι Ρυθμίσεις → Διακομιστής → Σύνδεση και κατάσταση έχουν τη δήλωση συμμετοχής για την ενσωματωμένη σήραγγα, στην ενότητα Κοινή χρήση αυτού του διακομιστή.
Όποτε ο διακομιστής βρίσκεται πίσω από διαμεσολαβητή, NAT ή σήραγγα, ορίστε το
--public-url στη διεύθυνση που πρέπει πραγματικά να καλέσουν οι πελάτες. Προεπιλέγεται
στην τοπική δέσμευση, οπότε χωρίς αυτό οι πελάτες δοκιμάζουν λάθος κεντρικό υπολογιστή.
Λίγα πράγματα παραμένουν μόνο για υπολογιστή, επειδή χρειάζονται εγγενές παράθυρο ή τις ίδιες τις συσκευές ήχου του μηχανήματος: η αιωρούμενη κάψουλα λειτουργίας εστίασης, οι αναδυόμενες ειδοποιήσεις του λειτουργικού συστήματος (το κέντρο ειδοποιήσεων εντός της εφαρμογής λειτουργεί παντού), η «Έναρξη εγγραφής και σύνδεση» από ένα γεγονός ημερολογίου και η επανεκτέλεση μιας σύνοψης σύσκεψης. Όλα τα υπόλοιπα — χώροι, πράκτορες, έλεγχος pull request, pipeline, εισιτήρια, μνήμη και η ίδια η καταγραφή σύσκεψης — συμπεριφέρονται το ίδιο.
Για να συνδέσετε την εφαρμογή web με έναν διακομιστή, ακολουθήστε τη Σύνδεση σε απομακρυσμένο διακομιστή. Για να φιλοξενήσετε τον διακομιστή, ακολουθήστε την Εκτέλεση headless διακομιστή.
Απαιτήσεις συστήματος για υπολογιστή
Ενότητα με τίτλο «Απαιτήσεις συστήματος για υπολογιστή»| Απαίτηση | 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) — συν ένα
ενσωματωμένο build του code-server, και κάθε συνομιλία πράκτορα παίρνει ένα worktree
copy-on-write των αποθετηρίων στα οποία εργάζεται (σκέτο 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 και φέρει επικύρωση της 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 για τα checkouts των χώρων (χωρίς 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)· χωρίς αυτό, η εφαρμογή εκκινεί με αυτά τα στοιχεία ελέγχου κρυμμένα.
Αυτόνομος διακομιστής
Ενότητα με τίτλο «Αυτόνομος διακομιστής»Κάθε έκδοση φέρει επίσης τον headless διακομιστή μεμονωμένα — 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. Δείτε την Εκτέλεση headless διακομιστή.
Το αρχείο Linux είναι χτισμένο σε Ubuntu 22.04 και οι εγγενείς βιβλιοθήκες που περιλαμβάνει συνδέονται με τη glibc 2.35 και τη libstdc++ του GCC 12, οπότε χρειάζεται ξενιστή τουλάχιστον τόσο πρόσφατο (Ubuntu 22.04, Debian 12, Fedora 36 ή νεότερο). Σε παλαιότερη διανομή εκτελέστε το image cc-server — ένα κοντέινερ φέρνει τον δικό του χώρο χρήστη, οπότε μόνο ο πυρήνας πρέπει να είναι δικός σας.
Υποσύστημα πράκτορα
Ενότητα με τίτλο «Υποσύστημα πράκτορα»Το 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 είναι δικό σας και φιλοξενείται στον διακομιστή, με κλειδί το αναγνωριστικό χρήστη σας — όχι στο keychain του λειτουργικού συστήματος του πελάτη. Κάθε συσκευή από την οποία συνδέεστε χρησιμοποιεί το ίδιο και κανένα άλλο μέλος δεν μπορεί να το διαβάσει.
Αν ο διακομιστής έχει καταχωρισμένη GitHub App (Δημιουργία της GitHub App), οι Ρυθμίσεις → Χώρος εργασίας → Προφίλ και ταυτότητα → Φιλοξενία κώδικα προσφέρουν Σύνδεση με GitHub (μια ροή με κωδικό συσκευής που εκτελεί ο διακομιστής). Αλλιώς επικολλήστε ένα προσωπικό token πρόσβασης:
- Classic:
repoκαιread:org - Fine-grained: Contents και Pull requests (read and write), Checks και Actions (read)
Δημιουργήστε ένα στο GitHub → Settings → Developer settings → Personal access tokens. Ο διακομιστής εξετάζει το token για το όνομα λογαριασμού όπως είναι αποθηκευμένο, ώστε η γραμμή να μπορεί να λέει «Συνδεθήκατε ως …»· μια αποτυχημένη εξέταση αποθηκεύει και πάλι το token, και ένα τυπογραφικό λάθος ή ένα scope που λείπει εμφανίζεται αργότερα ως αποτυχημένο αίτημα.
Το πρώτο βήμα της εισαγωγής είναι αυτή η σύνδεση. Έπειτα, στην ίδια κάρτα μπορείτε να την αντικαταστήσετε ή να την καθαρίσετε. Το GitLab και το Bitbucket χρησιμοποιούν την ίδια κάρτα· δείτε τη Σύνδεση κεντρικού υπολογιστή κώδικα.
Επιλέξτε πού εκτελείται ο διακομιστής
Ενότητα με τίτλο «Επιλέξτε πού εκτελείται ο διακομιστής»Το Control Center είναι ένας λεπτός πελάτης πάνω από μια διεργασία headless cc_server που κατέχει τη βάση δεδομένων και εκτελεί όλη την εργασία· η Ανάπτυξη και πελάτες εξηγεί τι σημαίνει αυτός ο διαχωρισμός για τον υπολογιστή, το web και το τηλέφωνο.
Στην πρώτη εκκίνηση η εφαρμογή υπολογιστή ρωτά «Πώς να εκτελείται το Control Center;»:
- Εκτέλεση σε αυτή την εφαρμογή: η εφαρμογή υπολογιστή εκκινεί και επιβλέπει έναν
cc_serverσε αυτό το μηχάνημα και επικοινωνεί μαζί του μέσω loopback. Τίποτα άλλο να ρυθμίσετε. Αυτή είναι η διάταξη που προϋποθέτει η γρήγορη εκκίνηση. - Σύνδεση σε απομακρυσμένη παρουσία: στρέψτε την εφαρμογή υπολογιστή σε έναν
cc_serverπου εκτελείται αλλού, με το URL του WebSocket, ένα ID συσκευής και είτε ένα κλειδί σύζευξης είτε έναν κωδικό πρόσκλησης μίας χρήσης. Εκείνος ο διακομιστής κατέχει τα δεδομένα· αυτή η εφαρμογή υπολογιστή απλώς τα αποδίδει.
Προσθέστε ή αλλάξτε διακομιστές αργότερα στις Ρυθμίσεις → Διακομιστής → Σύνδεση και κατάσταση. Η αλλαγή επανασυνδέεται επί τόπου — χωρίς επανεκκίνηση. Ένα πρόγραμμα περιήγησης δεν μπορεί να εκτελέσει διακομιστή, οπότε ο πελάτης web είναι πάντα απομακρυσμένος· δείτε τη Σύνδεση σε απομακρυσμένο διακομιστή.
Για να φιλοξενήσετε έναν διακομιστή μόνοι σας, ακολουθήστε την Εκτέλεση headless διακομιστή. Καλύπτει τη δημιουργία του εκτελέσιμου, τη δημιουργία κλειδιού σύζευξης πριν από την πρώτη εκκίνηση και τις σημαίες --data-dir / --port / --bind.
Επαληθεύστε τη ρύθμισή σας
Ενότητα με τίτλο «Επαληθεύστε τη ρύθμισή σας»- Οι Ρυθμίσεις → Διακομιστής → Πάροχοι μοντέλων παραθέτουν και τους δύο προσαρμογείς. Το «Control Center (ενσωματωμένο)» εμφανίζεται ως «βρέθηκε» με έκδοση
built-in· το Claude Code εμφανίζεται ως «βρέθηκε» αν το CLI του βρίσκεται στοPATHτου κεντρικού υπολογιστή του διακομιστή. Πατήστε Ανανέωση αν λείπει. - Οι Ρυθμίσεις → Χώρος εργασίας → Αποθετήρια παραθέτουν τα αποθετήρια αυτού του χώρου εργασίας και το Προσθήκη αποθετηρίου περιηγείται στους φακέλους του κεντρικού υπολογιστή του διακομιστή.
- Οι Ρυθμίσεις → Χώρος εργασίας → Πράκτορες παραθέτουν τους πέντε πράκτορες που δημιούργησε ο πρώτος χώρος εργασίας σας. Καθένας χρειάζεται να έχει ορίσει Προσαρμογέα και Μοντέλο πριν μπορέσει να εκτελεστεί.
- Οι Ρυθμίσεις → Διακομιστής → Διαγνωστικά και απόρρητο αναφέρουν τα υποσυστήματα sandbox που προσφέρει αυτός ο κεντρικός υπολογιστής, την κατάσταση του μοντέλου ενσωματώσεων και την καταγραφή.
Δημιουργία από τον πηγαίο κώδικα
Ενότητα με τίτλο «Δημιουργία από τον πηγαίο κώδικα»Οι εγγενείς βιβλιοθήκες είναι υποχρεωτικές και δεν υπάρχει υποβαθμισμένη λειτουργία: μια βιβλιοθήκη που λείπει αποτελεί σκληρή αποτυχία εκκίνησης, όχι πιο αργή διαδρομή. Προετοιμάστε τις πριν από οτιδήποτε άλλο. Κάθε εντολή 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 δεν χρειάζονται υπογραφή.
Για να δημιουργήσετε το εκτελέσιμο του headless διακομιστή, προετοιμάστε πρώτα τις εγγενείς βιβλιοθήκες με τον ίδιο τρόπο και μετά:
cd apps/cc_serverfvm dart build cliΤο hook του build αντιγράφει ό,τι βρίσκεται ήδη στο build/natives/ μέσα στο bundle, οπότε αν κάνετε build πριν από την προετοιμασία θα πάρετε ένα bundle χωρίς εγγενείς βιβλιοθήκες και έναν διακομιστή που αρνείται να εκκινήσει.
Για τον πελάτη web χρησιμοποιήστε το scripts/build_web.sh (--target remote για το PWA του τηλεφώνου). Είναι αυτό που εκτελεί το CI: ένα σκέτο flutter build web παραλείπει τη σφραγίδα ταυτότητας του build, την αναδημιουργία του Web Worker, το manifest ανάπτυξης και τον έλεγχο προϋπολογισμού πόρων.