설치
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로 설정하세요. 기본값은 로컬 바인드 주소이므로, 설정하지 않으면 클라이언트가
잘못된 호스트에 연결을 시도합니다.
몇 가지 기능은 네이티브 창이나 컴퓨터 자체의 오디오 장치가 필요하므로 데스크톱 전용으로 남습니다. 떠 있는 포커스 모드 필, OS 알림 토스트(앱 내 알림 센터는 어디서나 작동합니다), 캘린더 이벤트에서의 “녹음 시작 및 연결”, 그리고 회의 요약 다시 실행이 그렇습니다. 그 밖의 모든 것 — 스페이스, 에이전트, 풀 리퀘스트 리뷰, 파이프라인, 티켓, 메모리, 회의 녹화 자체 — 은 동일하게 동작합니다.
웹 앱을 서버에 연결하려면 원격 서버 연결을 따르세요. 서버를 호스팅하려면 헤드리스 서버 실행을 따르세요.
데스크톱 시스템 요구 사항
섹션 제목: “데스크톱 시스템 요구 사항”| 요구 사항 | macOS | Windows | Linux |
|---|---|---|---|
| OS 버전 | 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 빌드를 강제로
설치하며, 모든 에이전트 대화는 자신이 다루는 리포지토리의 copy-on-write 워크트리
(Windows에서는 일반 git worktree)를 갖습니다. 음성은 선택 사항이 아닙니다. ASR 모델이
없으면 회의 및 받아쓰기 작업이 제공되지 않습니다. 음성 모델을 처음 내려받은 뒤에는 녹음이
활성화되기까지 한 번 더 재시작해야 합니다.
데스크톱은 서버의 데이터를 OS의 사용자별 애플리케이션 지원 디렉터리에 둡니다.
--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에서 받을 수 있습니다.
macOS (Apple Silicon)
섹션 제목: “macOS (Apple Silicon)”Control-Center-<version>-arm64.dmg를 내려받아 열고 Control Center를 Applications 폴더로
드래그합니다. 이 빌드는 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를 사용합니다(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에서 빌드되어 Ubuntu 22.04 이상(Debian 12, Fedora 36 이상)에서
실행됩니다. glibc 2.35와 GCC 12의 libstdc++에 연결되며 GTK 3는 시스템에서 가져옵니다.
일반적인 데스크톱에 없을 수 있는 몇몇 라이브러리는 파일 안에 함께 들어 있으므로 다른
것을 설치할 필요가 없습니다. 사운드 — 회의 재생, 사운드스케이프, 리그 오디오, 알림음 —
는 시스템의 libmpv(libmpv1은 Ubuntu 22.04, libmpv2는 최신 Ubuntu와 Debian,
mpv-libs는 Fedora)를 통해 재생됩니다. libmpv가 없으면 앱은 해당 컨트롤을 숨긴 채로
시작합니다.
독립 실행형 서버
섹션 제목: “독립 실행형 서버”각 릴리스에는 헤드리스 서버도 단독으로 포함됩니다. 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 이미지를 실행하세요.
컨테이너는 자체 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는 다른 호스트에서 플랜을 제공하므로, 코딩 플랜 키를 일반 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 인증
섹션 제목: “GitHub 인증”GitHub 자격 증명은 본인의 것이며 서버에 저장되고 사용자 ID를 키로 사용합니다. 클라이언트 OS 키체인에는 저장되지 않습니다. 로그인하는 모든 기기에서 같은 자격 증명을 사용하며, 다른 구성원은 이를 읽을 수 없습니다.
서버에 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를 생성하고 감독하며 루프백으로 통신합니다. 따로 구성할 것은 없습니다. 빠른 시작에서 가정하는 설정입니다. - 원격 인스턴스에 연결: 다른 곳에서 실행 중인
cc_server를 WebSocket URL, 기기 ID, 그리고 페어링 키나 일회용 초대 코드 중 하나로 지정합니다. 데이터는 그 서버가 소유하며, 이 데스크톱은 데이터를 렌더링만 합니다.
서버는 나중에 설정 → 서버 → 연결 및 상태에서 추가하거나 전환할 수 있습니다. 전환하면 재시작 없이 그 자리에서 다시 연결됩니다. 브라우저는 서버를 실행할 수 없으므로 웹 클라이언트는 항상 원격입니다. 원격 서버 연결을 참고하세요.
서버를 직접 호스팅하려면
헤드리스 서버 실행을 따르세요. 바이너리
빌드, 첫 시작 전 페어링 키 생성, --data-dir / --port / --bind 플래그를 다룹니다.
설정 확인
섹션 제목: “설정 확인”- 설정 → 서버 → 모델 제공업체에 두 어댑터가 모두 나열됩니다. “Control Center
(built-in)“은 버전
built-in과 함께 찾음으로 표시되고, Claude Code는 서버 호스트의PATH에 CLI가 있으면 찾음으로 표시됩니다. 없으면 새로 고침을 누르세요. - 설정 → 워크스페이스 → 리포지토리에 이 워크스페이스의 리포지토리가 나열되고, 리포지토리 추가로 서버 호스트의 폴더를 탐색할 수 있습니다.
- 설정 → 워크스페이스 → 에이전트에 첫 워크스페이스가 생성한 다섯 개의 에이전트가 나열됩니다. 각 에이전트는 실행하려면 어댑터와 모델을 설정해야 합니다.
- 설정 → 서버 → 진단 및 개인정보 보호에 이 호스트가 제공하는 샌드박스 백엔드, 임베딩 모델의 상태, 로깅이 표시됩니다.
소스에서 빌드
섹션 제목: “소스에서 빌드”네이티브 라이브러리가 필요하며 성능 저하 모드는 없습니다. 하나라도 없으면 느린 경로가
아니라 부팅 자체가 실패합니다. 무엇보다 먼저 네이티브를 준비하세요. SDK 버전이
리포지토리에 고정되어 있으므로 모든 Flutter 및 Dart 명령은 fvm을 통해 실행합니다.
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 linuxmacOS에서 보안 저장소(GitHub, Linear, Google 로그인)를 사용하려면 앱이 Apple 팀의 서명을 받아야 합니다. 무료 Apple ID로 충분하며, 로컬 개발 서명에 설명된 일회성 설정입니다. 서명이 없어도 앱은 실행되지만 보안 저장소만 사용할 수 없습니다. Windows와 Linux는 서명이 필요하지 않습니다.
헤드리스 서버 바이너리를 빌드하려면 먼저 같은 방식으로 네이티브를 준비한 다음 실행합니다.
cd apps/cc_serverfvm dart build cli빌드 훅은 build/natives/에 이미 있는 내용을 번들로 복사하므로, 준비하기 전에 빌드하면
네이티브가 없는 번들과 시작을 거부하는 서버가 만들어집니다.
웹 클라이언트에는 scripts/build_web.sh를 사용합니다(휴대폰 PWA에는 --target remote).
CI가 실행하는 스크립트이기도 합니다. 일반 flutter build web은 빌드 ID 스탬프, Web Worker
재생성, 배포 매니페스트, 에셋 예산 검사를 건너뜁니다.