<p align="center">
<a href="https://cindy.app"><img src="https://raw.githubusercontent.com/makecindy/cindy/HEAD/.github/assets/hero-en.webp" width="100%" alt="CINDY — 완료된 것으로 간주하세요. 자체 컴퓨터에서 실제 작업을 수행하는 오픈 소스 AI 에이전트입니다."></a>
</p>
<p align="center">
<strong>English</strong> · <a href="README.zh-CN.md">简体中文</a>
</p>
<p align="center">
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue.svg" alt="라이선스" /></a>
<a href="https://github.com/makecindy/cindy/actions/workflows/ci.yml"><img src="https://github.com/makecindy/cindy/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-22.x-brightgreen.svg" alt="Node.js 22.x" /></a>
<a href="https://pnpm.io"><img src="https://img.shields.io/badge/pnpm-10-orange.svg" alt="pnpm" /></a>
</p>
<p align="center">
🌐 <a href="https://cindy.app">cindy.app</a> · ⬇️ <a href="https://cindy.app/download/">다운로드</a>
</p>
Cindy는 즉시 사용할 수 있는 오픈 소스 AI 에이전트입니다. 그녀는 여러 하네스(harnesses), 모델 및 도구들을 하나의 에이전트에 통합하여 사용자의 프로젝트와 앱에서 실제 작업을 완료합니다. 첫날부터 준비되어 있으며, 시간이 지남에 따라 사용자가 형태를 만들 수 있습니다.
Cindy는 사용자의 실제 파일과 로그인된 앱을 사용하여 로컬(locally)에서 실행됩니다. 처음 지원되는 하네스는 Claude Code와 Codex이며, 더 많은 하네스가 추가되고 있고 네이티브 하네스도 개발 중입니다. 모델과 하네스는 자유롭게 혼합되며, 작업 도중에 사용자의 워크스페이스(workspace), 메모리(memory), 스킬(skills), 도구(tools)가 연속적으로 유지되는 동안 전환할 수 있습니다. 심지어 하나의 작업은 여러 하네스 × 모델 조합의 에이전트에 의해 계획되고, 병렬로 실행되며, 검토될 수도 있습니다. 그녀는 사용자의 브라우저, 컴퓨터 및 휴대폰을 구동할 수 있으며, 메신저(IM)와 일정에서 작업을 가져올 수 있습니다.
이 저장소는 Cindy의 오픈 소스 **클라이언트(client)**이며, 데스크톱 및 모바일 앱과 공유 패키지들이 pnpm 모노레포(monorepo)로 구성되어 있습니다.
클라이언트는 무료로 사용 가능하며, 소스 코드는 Apache-2.0 하에 공개되어 있습니다. 모델을 직접 연결하여 사용하세요: 공식 Cindy 서비스에 로그인하면 (사용량은 투명하게 차감됨), 이미 비용을 지불하고 있는 Claude Code / Codex Coding Plan을 승인하고 Cindy 내부에서 계속 사용할 수 있습니다. 이중 청구는 없습니다. 자체 API 키를 연결하거나 로컬 모델을 사용할 수도 있습니다.
서비스 세부 정보, [가격 책정(pricing)], 그리고 [다운로드]는 [cindy.app]을 참조하세요.
리눅스 사용자: 설치, 업데이트, 키링 설정 및 수동 설치에서의 마이그레이션은 Ubuntu, Arch Linux 및 Omarchy 설치 가이드를 참고하세요.
여러분이 직접 설계할 수 있습니다 (Yours to shape)
오픈 소스는 눈에 보이는 것 이상의 의미입니다. 즉, 변경 가능하다는 것을 의미합니다:
- 메모리(Memory) — 한 번만 정확하게 수정하면 이후에는 항상 올바르게 수행하며, 모든 하네스(harnesses)에서 공유됩니다.
- 스킬(Skills) — 작업 방식을 한 번 가르치면 어디서든 재사용할 수 있으며, 팀원들에게 전달하는 것이 진행 중입니다.
- 자동화(Automation) — 반복적인 작업이 스스로 예약되고, 스스로 실행되며, 보고합니다.
- MCP — 내부 도구 및 비즈니스 시스템을 그녀의 범위 내에 연결하세요.
- 플러그인(Plugins) — 기능, UI 및 상호작용을 재구성할 수 있으며, 개방형 마켓플레이스를 통해 공유됩니다 (개발 중).
- 소스(Source) — 감사(audit), 포크(fork), 확장하고 개선 사항을 Apache-2.0 하에 기여할 수 있습니다.
박스에서 바로 사용 가능하지만, 결코 제한되지 않습니다. CONTRIBUTING.en.md로 시작하여 저희와 함께 Cindy를 구축하세요.
이 저장소의 내용물 (What's in this repo)
| 경로 | 설명 |
|---|
apps/desktop | Electron 데스크톱 클라이언트 |
| ... | |
| 이 저장소에 포함되지 않은 항목: 백엔드 서비스는 별도의 리포지토리에 존재하며 이 모노레포(monorepo)의 일부가 아닙니다. | |
| Mode | 계정 요구 사항 | 사용 가능 여부 |
|---|
| Hosted service | Cindy 클라우드 계정 | Cindy의 전체 호스팅 서비스를 사용합니다. pricing를 참조하세요. |
| Skip Sign-In | Cindy 로그인 불필요 | 로그인 화면에서 “Skip Sign-In”을 선택하여 로컬 에이전트를 사용합니다. 그러면 앱은 계정 상태를 “Not signed in”으로 표시합니다. 이 상태에서는 서버 기반 기능(Server-backed capabilities)을 사용할 수 없습니다. |
필수 조건 (Prerequisites)
- Node.js 22.x
- pnpm 10.x (v11은 아직 지원되지 않습니다)
- Git LFS
시작하기 (Getting started)
기여자 설정(Contributor setup), Git LFS, 의존성 업데이트(dependency updates), 및 접근 요구 사항은 CONTRIBUTING.en.md에 유지되어 있습니다. 플러그인은 SkillHub를 통해 또는 수동으로 설치됩니다.
최소 진입점:
git clone https://github.com/makecindy/cindy.git
cd cindy
git lfs pull
...
개발 진입점 (Development entry points)
pnpm restart:desktop:remote --region=cn
...
원격 개발(Remote development)은 사용자의 자체 Cindy 클라우드 계정과 기존 로그인 상태를 사용하므로, 클라이언트를 개발하는 동안 기존 세션을 계속하고 작업할 수 있습니다. 중국 본토(Mainland China) 계정에는 cn을 사용하고 다른 모든 사용자에게는 global을 사용하세요. 내부 기본값에 의존하지 마십시오. 전체 데스크톱(desktop), 모바일(mobile), 데이터 격리(data-isolation), 및 검증 워크플로우는 CONTRIBUTING.en.md에 있습니다.
로그인 화면의 “Skip Sign-In”은 로컬 서버 연결이 아니라, Cindy 계정 없이(앱에서 “Not signed in”으로 표시됨) 로컬 에이전트를 실행합니다. 이 상태에서는 서버 기반 기능(Server-backed capabilities)을 사용할 수 없습니다.
기본 서버에 대하여: 클라이언트는 기본적으로 Cindy의 공식 클라우드 서비스(endpoint는 config/endpoint.json 및 config/endpoint.global.json에 명시됨)에 연결합니다 (데스크톱 자동 업데이트 역시 공식 CDN에서 가져옵니다). 이는 의도된 사항입니다. 외부 개발자는 서버를 직접 호스팅할 필요가 없습니다: 개발 빌드에서 자체 Cindy 계정으로 로그인하여 공식 서버를 대상으로 직접 개발하거나 테스트할 수 있습니다.
Skill Hub 마이그레이션은 두 개의 별도 매니페스트 필드를 사용합니다. 출시된 클라이언트는 여전히 skillhubApiBaseUrl (사용 중단된 XD 프록시)을 사용하며, 현재 클라이언트는 cindySkillHubApiBaseUrl을 사용합니다. 현재 클라이언트는 새 엔드포인트가 없을 때 레거시 필드로 폴백(fallback)하지 않도록 의도적으로 설계되었습니다.
아키텍처 (Architecture)
기여 (Contributing)
기여는 main 브랜치로 풀 리퀘스트(pull request)를 통해 이루어집니다. 먼저 CONTRIBUTING.en.md를 읽은 후, .github/PULL_REQUEST_TEMPLATE.md를 사용하십시오. 모든 커밋에는 개발자 출신 증명서 (Developer Certificate of Origin, DCO) 서명이 필요합니다 (git commit -s). 각 풀 리퀘스트에 대한 DCO 검사가 이를 강제하며, CLA(Contributor License Agreement)는 요구되지 않습니다.
또한 CODE_OF_CONDUCT.en.md를 준수해 주십시오. 일반적인 사용 질문은 SUPPORT.en.md를 참조하고, 보안 문제는 SECURITY.en.md를 통해 비공개로 보고하십시오.
보안 (Security)
작업 디렉터리(working tree)에 자격 증명(credentials)이나 인증 파일(authorization files)을 절대 커밋하지 마십시오. 보안 문제를 발견하면 공개 이슈를 여는 대신 SECURITY.en.md를 따라 비공개로 보고하십시오.
개인 정보 보호 및 원격 측정 (Privacy & telemetry)
**공식 배포 빌드(Official distribution builds)**에는 제품 수준의 집계 통계(device / OS / app-version metadata; 로그인 후 계정 ID와 연결됨)를 위한 TapDB 사용 분석 기능이 포함됩니다. 이는 채팅 내용, 파일 내용 또는 작업 디렉터리 데이터는 수집하지 않습니다. 또한, 클라우드 계정에 로그인된 상태에서도 클라이언트는 Cindy 서비스에 온라인 하트비트(account ID, platform, and version only)를 전송합니다. 충돌 덤프(Crash dumps)는 로컬 장치에 유지되며 자동으로 업로드되지 않습니다.
소스에서 빌드하는 경우 (Building from source)? 분석 기능을 유지할 필요가 없습니다:
- 모바일은 기본적으로 비활성화되어 있습니다 — TapDB 자격 증명(
clientId / clientToken)이 빌드 시간에 주입되지 않으면, apps/mobile/src/analytics/mobileTapdb.ts는 작동하지 않는(no-op) 상태입니다.
- 데스크톱은
apps/desktop/src/renderer/index.tsx에서 initTapdb() 호출을 제거하여 완전히 제거할 수 있습니다 (구현은 apps/desktop/src/renderer/analytics/에 위치합니다).
라이선스 / 许可证
그 외 명시된 바가 없는 한, 이 저장소의 소스 코드는 Apache License, Version 2.0에 따라 라이선스가 부여됩니다. 개별 소스 파일에는 파일별 라이선스 헤더가 포함되어 있지 않으며, 저장소 루트의 LICENSE가 적용됩니다.
모델 가중치(Model weights), 데이터셋(datasets), 프롬프트(prompts), 상표(trademarks) 및 기타 별도로 식별된 자료는 자체 라이선스 조건이 적용될 수 있으며, 저장소 수준의 Apache-2.0 승인에 자동으로 포함되지 않습니다. 타사 오픈 소스 구성 요소는 자체 저작권과 라이선스를 유지합니다. 해당 출처 표기(attribution notices) 및 SPDX SBOM은 docs/legal/에서 관리되며, 아티팩트별 출력물은 docs/legal/notices/에 있습니다. 이 프로젝트의 저작권 및 출처 정보는 NOTICE를 참조하십시오.“,