Cindy 소개
코딩 에이전트를 두 개 이상 쓰다 보면 도구를 바꾸는 순간마다 작업이 처음으로 돌아갑니다. 한쪽에서 프로젝트 구조를 설명하고 규칙을 알려 준 뒤 절반쯤 진행했는데, 다른 모델이 더 나을 것 같아 도구를 바꾸면 그 맥락이 따라오지 않습니다. 열어 둔 파일, 지금까지 합의한 설계, 알려 준 작업 방식이 각 도구 안에 갇혀 있기 때문입니다. 결국 모델을 고르는 판단은 작업을 시작하기 전에 한 번만 할 수 있고, 중간에 생각이 바뀌면 비용을 감수하거나 그냥 참게 됩니다.
이번에 소개할 Cindy는 여러 에이전트 하네스(Harness)와 모델을 하나의 클라이언트 안에 모아 두고, 작업 도중에도 조합을 바꿀 수 있게 만든 프로젝트입니다. 저장소가 밝히는 첫 지원 하네스는 Claude Code와 Codex이며, 더 추가할 예정이고 자체 하네스도 준비 중이라고 적혀 있습니다. 조합을 바꿔도 작업 공간, 기억, 스킬, 도구는 이어지고, 한 작업을 계획과 병렬 실행, 검토로 나눠 각 단계를 서로 다른 하네스와 모델 조합에 맡기는 것도 가능하다고 설명합니다.
한 가지 짚어 둘 것은 이 저장소가 Cindy 전체가 아니라 클라이언트 라는 점입니다. 데스크톱 앱과 모바일 앱, 그리고 둘이 공유하는 패키지를 담은 pnpm 모노레포이고, 백엔드 서비스는 별도 저장소에 있으며 이 모노레포에 포함되지 않는다고 명시돼 있습니다. 개발사는 makecindy이고, 클라이언트와 별개로 cindy.app에서 관리형 모델 서비스를 함께 운영합니다. 클라이언트 소프트웨어는 무료이며 소스가 Apache-2.0으로 공개돼 있고, 유료가 되는 것은 그 관리형 서비스를 쓸 때입니다.
Cindy의 멀티 하네스 구조
Cindy가 집중하는 부분은 모델이 아니라 작업 쪽입니다. 지원되는 모델은 지원되는 하네스 위에서 모두 돌아가고, 사용자가 조합을 바꾸는 동안에도 작업 공간과 기억, 스킬, 도구는 그 자리에 남습니다. 그래서 한 작업 안에서 설계는 깊게 생각하는 조합에, 반복 작업은 빠른 조합에, 마지막 검토는 처음 것과 다른 조합에 맡기는 배치가 가능해집니다.
그리고 작업은 사용자의 컴퓨터에서 로컬로 돌아가며, 실제 파일과 이미 로그인해 둔 앱을 그대로 씁니다. 브라우저와 컴퓨터, 휴대폰을 조작하는 것과 메신저나 일정에서 일감을 받아 오는 것도 기능으로 소개돼 있습니다. 오픈소스로 공개한 이유를 저장소는 보이는 것을 넘어 바꿀 수 있는 것 이라고 표현하면서, 사용자가 손댈 수 있는 자리를 다음과 같이 나눠 두었습니다:
- 기억(Memory): 한 번 고쳐 주면 그 다음부터 같은 방식으로 처리하며, 하네스가 달라져도 공유됩니다.
- 스킬(Skills): 일하는 방식을 한 번 가르쳐 두고 어디서든 다시 씁니다. 팀에 넘겨주는 기능은 준비 중입니다.
- 자동화(Automation): 반복 작업이 스스로 일정을 잡고 실행한 뒤 결과를 보고합니다.
- MCP: 내부 도구와 업무 시스템을 연결합니다.
- 플러그인(Plugins): 기능과 화면, 상호작용을 바꾸고 마켓플레이스로 공유합니다. 이 항목은 준비 중으로 표시돼 있습니다.
비슷한 성격의 오픈소스 데스크톱 에이전트로는 OpenWork와 Kuse Cowork, OpenHanako가 PyTorchKR에도 소개된 적이 있습니다. Cindy가 그 목록과 다른 지점은 에이전트 자체를 새로 만드는 대신 기존 하네스를 여러 개 물려 두고 그 사이를 오가게 한다는 점입니다.
Cindy 저장소의 구성과 실행 조건
모노레포의 구성은 저장소가 표로 정리해 두었습니다:
| 경로 | 설명 |
|---|---|
apps/desktop |
Electron 데스크톱 클라이언트 |
apps/mobile |
Expo, React Native 모바일 클라이언트 |
packages/* |
인증, 기기 연결, 에이전트 오케스트레이션, 모델 제공자 등 공유 기능 |
apps/*-bin |
데스크톱 앱과 함께 배포되는 도구 바이너리 |
마지막 항목은 저장소에 커밋돼 있지 않습니다. claude-code와 codex, ripgrep은 pnpm install 시점에 플랫폼별로 내려받고, 안드로이드 플랫폼 도구는 윈도우 패키징 전에 버전을 고정한 채 sha256으로 검증하고 가져옵니다.
실행에 필요한 사전 조건은 Node.js 22.x와 pnpm 10.x, 그리고 Git LFS입니다. pnpm 11은 아직 지원하지 않는다고 명시돼 있습니다:
git clone https://github.com/makecindy/cindy.git
cd cindy
git lfs pull
pnpm install
클라이언트는 기본적으로 Cindy의 공식 클라우드에 연결되며, 접속 지점 정보는 저장소의 config/endpoint.json과 config/endpoint.global.json에 있습니다. 개발자는 이것이 의도된 설계라고 밝히면서, 외부 개발자가 서버를 따로 띄우지 않고 자기 계정으로 로그인해 공식 서버를 상대로 개발하고 시험할 수 있게 하려는 것이라고 설명합니다.
Cindy에 모델을 연결하는 네 가지 방법
모델을 붙이는 경로는 네 가지입니다. 공식 Cindy 서비스에 가입 후 로그인하여 제공되는 사용량을 차감하며 쓰거나, Claude Code나 Codex을 이미 사용 중이라면 해당 도구의 코딩 플랜을 인증해 그대로 쓸 수도 있습니다. 그 외에도 직접 발급한 API 키를 연결하거나, 로컬 모델을 쓰는 방식을 제공합니다. 저장소는 두 번째 경로를 설명하면서 요금이 이중으로 나가지 않는다는 점을 함께 적어 두었습니다.
계정 없이 사용하는 방법도 제공하고 있습니다. 로그인 화면에서 Skip Sign-In 을 고르면 Cindy 계정 없이 로컬 에이전트를 쓸 수 있고, 이 때 Cindy 앱은 계정 상태를 로그인하지 않음으로 표시하며 서버가 처리하는 기능은 사용할 수 없습니다. 관리형 서비스의 요금 정보는 cindy.app의 가격 페이지에 있습니다.
Cindy가 수집하는 정보
공식 배포판에는 TapDB 사용 분석이 들어 있습니다. 저장소가 적어 둔 수집 범위는 기기와 운영체제, 앱 버전 같은 메타 정보이며 로그인 후에는 계정 ID와 연결됩니다. 대화 내용과 파일 내용, 작업 디렉토리 정보는 수집하지 않고, 클라우드 계정으로 로그인한 상태에서는 계정 ID와 플랫폼, 버전만 담은 접속 신호를 보냅니다. 크래시 덤프는 로컬에 남고 자동으로 업로드되지 않습니다.
다만 소스에서 직접 빌드하면 이 부분을 끌 수 있습니다. 모바일은 빌드 시점에 TapDB 자격 증명을 넣지 않으면 해당 모듈이 아무 일도 하지 않고, 데스크톱은 apps/desktop/src/renderer/index.tsx의 initTapdb() 호출을 지우면 완전히 제거됩니다.
Cindy의 라이선스
Cindy의 소스 코드는 별도 표시가 없는 한 Apache 라이선스 2.0으로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.
단, 모델 가중치와 데이터셋, 프롬프트, 상표처럼 따로 명시된 자료는 각자의 조건을 따를 수 있고 서드파티 구성 요소도 각자의 저작권과 라이선스를 유지하므로, 상업적 사용 전에는 docs/legal/의 고지와 NOTICE 파일을 함께 확인해야 합니다.
cindy.app 홈페이지 (Cindy 클라이언트와 관리형 모델 서비스 소개)
Cindy 클라이언트 GitHub 저장소
더 읽어보기
-
OpenWork: 내 컴퓨터의 로컬 환경을 제어하는 오픈소스 AI 에이전트 (feat. 오픈소스 버전 Claude Cowork)
-
OpenCLI: 주요 웹사이트와 데스크톱 앱을 CLI 명령어로 제어하는 AI 네이티브 유니버설 허브 프로젝트
이 글은 GPT 모델로 정리한 초안을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 댓글로 알려주시기를 부탁드립니다. ![]()
이 도구를 직접 설치해 사용해보셨다면, 파이토치 한국 사용자 모임
회원들을 위해 경험이나 팁을 댓글로 남겨주세요! ![]()


