Cindy 开源发布:开箱即用的本地 AI Agent 客户端,支持 Claude Code 与 Codex 多 Harness 协作
英文标题:🔥 makecindy/cindy
开源 AI Agent 项目 Cindy 正式开放其客户端源码,采用 Apache-2.0 协议并以 pnpm monorepo 形式组织桌面端(Electron)与移动端(React Native)。Cindy 在用户本地设备运行,首发支持接入 Claude Code 与 Codex,支持不同模型与 harness 组合在任务中途自由切换并共享记忆、工作区与工具。用户可选择官方托管服务、复用现有 Claude Code / Codex 订阅、连接自定义 API Key 或跳过登录离线使用本地 Agent。
2.0 KB
138.9 KB
130.6 KB
中文
English · 简体中文
🌐 cindy.app · ⬇️ 下载 (Download)
Cindy 是一个开箱即用的开源 AI Agent。她将多种 harness、模型和工具整合为一个统一的 Agent,能够在您的项目和应用中交付真实的工作成果。即装即用,并随使用不断塑造成形。
Cindy 在您自己的机器上本地运行,直接调用您的真实文件与已登录应用。首批支持的 harness 包括 Claude Code 与 Codex —— 更多 harness 正在持续接入中,原生 harness 也在研发之中。模型与 harness 支持自由混合并在任务执行中途切换,且您的工作区、记忆、技能和工具始终保持连贯;单个任务甚至可以交由不同「harness × 模型」组合的 Agent 协同完成规划、并行执行与审查。她能够操控您的浏览器、电脑与手机,并从 IM 即时通讯以及日程安排中承接工作任务。
本仓库是 Cindy 的开源客户端代码库 —— 包含桌面端应用、移动端应用以及共享工具包,以 pnpm monorepo 结构进行管理。
客户端完全免费使用,源码基于 Apache-2.0 协议开源。支持按您喜欢的方式接入模型:登录官方 Cindy 服务(用量扣除透明化);授权您已付费的 Claude Code / Codex Coding Plan 并在 Cindy 内直接复用(无需重复计费);连接您自有的 API Key;或使用本地模型。服务详情、价格政策及下载地址详见 cindy.app。
Linux 用户:关于安装、更新、密钥环配置及从手动安装迁移等说明,请参阅 Ubuntu、Arch Linux 和 Omarchy 安装指南。
开源不仅意味着代码可见,更意味着高度可定制:
- 记忆 (Memory) —— 一次纠偏,终身受用,且在不同 harness 间保持共享。
- 技能 (Skills) —— 一次性教会一种工作流即可在全场景复用;团队共享技能功能正在开发中。
- 自动化 (Automation) —— 周期性任务自动排期、自动执行并汇报结果。
- MCP —— 将您的内部工具与业务系统无缝接入她的执行范围。
- 插件 (Plugins) —— 改造功能、UI 及交互逻辑,后续将通过开放市场共享(开发中)。
- 源码 (Source) —— 在 Apache-2.0 许可下自由审计、Fork、扩展并贡献改进。
开箱即用,从不受限 —— 欢迎查阅 CONTRIBUTING.en.md,与我们一起构建 Cindy。
| 路径 | 说明 |
|---|---|
apps/desktop |
Electron 桌面客户端 |
apps/mobile |
Expo / React Native 移动客户端 |
packages/* |
客户端共享能力(认证、设备互联、Agent 编排、模型提供商等) |
apps/*-bin |
随桌面端分发自带的工具二进制文件;均未提交到代码库 —— pnpm install 会根据各平台动态下载 claude-code、codex 与 ripgrep,Windows 打包前会自动拉取 Android platform-tools 二进制文件(已锁定版本并通过 sha256 校验) |
本仓库未包含内容: 后端服务位于独立代码库中,不属于该 monorepo 的一部分。
| 模式 | 账号要求 | 可用性 |
|---|---|---|
| 托管服务 (Hosted service) | Cindy 云端账号 | 使用 Cindy 完整的托管云服务。详见价格说明。 |
| 跳过登录 (Skip Sign-In) | 无需 Cindy 账号登录 | 在登录页面选择“Skip Sign-In”即可运行本地 Agent;应用会显示账号状态为“Not signed in”。在此状态下,依赖服务端的能力将不可用。 |
- Node.js 22.x
- pnpm 10.x(暂不支持 v11)
- Git LFS
贡献者环境配置、Git LFS、依赖更新及权限要求均维护在 CONTRIBUTING.en.md 中。插件可通过 SkillHub 安装或手动安装。
最小运行入口:
bash git clone https://github.com/makecindy/cindy.git cd cindy git lfs pull pnpm install
中国大陆 Cindy 账号
pnpm restart:desktop:remote --region=cn
全球 Cindy 账号
pnpm restart:desktop:remote --region=global
远程开发直接使用您自有的 Cindy 云端账号及现存登录状态,便于在客户端开发过程中沿用现有会话与工作数据。中国大陆账号请使用 cn,其他地区账号请使用 global;切勿依赖内部默认配置。关于桌面端、移动端、数据隔离与验证工作流的完整指南请参阅 CONTRIBUTING.en.md。
登录界面的“Skip Sign-In”直接运行无需 Cindy 账号的本地 Agent(应用内展示为“Not signed in”),这并非连接到本地服务器。该模式下由服务器支持的功能不可用。
关于默认服务器: 客户端默认连接 Cindy 官方云端服务(接口配置清单位于 config/endpoint.json 和 config/endpoint.global.json;桌面端自动更新同样来自官方 CDN)。这是刻意设计的机制 —— 外部开发者无需自行搭建服务器:只需在开发构建版本中使用自己的 Cindy 账号登录,即可直接针对官方服务进行开发与测试。
Skill Hub 迁移使用两个独立的配置字段:已发布版本客户端继续使用 skillhubApiBaseUrl(已弃用的 XD 代理),而当前客户端使用 cindySkillHubApiBaseUrl。若新接口配置缺失,当前客户端刻意设计为不回退到旧字段。
所有贡献均通过 Pull Request 提交至 main 分支。请先阅读 CONTRIBUTING.en.md,并使用 .github/PULL_REQUEST_TEMPLATE.md。每一次 commit 均需签署开发者原创证书(Developer Certificate of Origin,即 git commit -s);PR 会通过 DCO 校验进行强制检查,无需签署 CLA。此外,请遵守 CODE_OF_CONDUCT.en.md。日常使用咨询请参见 SUPPORT.en.md;安全漏洞请通过 SECURITY.en.md 私密汇报。
切勿向工作目录提交凭据或授权文件。如发现安全问题,请遵循 SECURITY.en.md 进行私密通报,勿提交公开 Issue。
官方分发构建版本集成了 TapDB 使用情况统计,用于产品层面的聚合数据分析(设备/操作系统/应用版本元数据;登录后会与您的账号 ID 关联)。它绝不收集对话内容、文件内容或工作目录数据。此外,登录云端账号时客户端会向 Cindy 服务发送在线心跳(仅包含账号 ID、平台与版本号)。崩溃转储文件(Crash dumps)仅保存在本地设备,绝不会自动上传。
从源码构建? 您完全可以去除数据统计组件:
- 移动端默认关闭 —— 若构建时未注入 TapDB 凭据(
clientId/clientToken),apps/mobile/src/analytics/mobileTapdb.ts会作为空操作运行; - 桌面端可通过删除
apps/desktop/src/renderer/index.tsx中的initTapdb()调用实现彻底移除(具体实现代码位于apps/desktop/src/renderer/analytics/)。
除另有明确说明外,本仓库源码均基于 Apache License, Version 2.0 授权开源。各代码源文件不单独携带许可证头部,统一由仓库根目录的 LICENSE 约束。
模型权重、数据集、Prompt、商标及其他单独注明的素材可能受各自的许可条款约束,不自动纳入仓库级 Apache-2.0 授权。第三方开源组件保留其各自的版权与许可证。其归属声明与 SPDX SBOM 维护在 docs/legal/ 目录下,特定构建产物输出位于 docs/legal/notices/。本项目版权与署名信息详见 NOTICE。
English / 原文
English · 简体中文
Cindy is an open-source AI agent that works out of the box. She brings multiple harnesses, models and tools into one agent that finishes real work in your projects and apps. Ready from day one, yours to shape over time.
Cindy runs locally on your own machine, using your real files and logged-in apps. The first supported harnesses are Claude Code and Codex — more are being added, and a native harness is in the works. Models and harnesses mix freely and can switch mid-task while your workspace, memory, skills and tools stay continuous; one task can even be planned, executed in parallel, and reviewed by agents on different harness × model combos. She can drive your browser, computer and phone, and take work from IM and schedules.
This repository is the open-source client for Cindy — the desktop and mobile apps plus their shared packages, organized as a pnpm monorepo.
The client is free to use, and its source code is open under Apache-2.0. Bring models your way: sign in to the official Cindy service (usage deducted transparently), authorize the Claude Code / Codex Coding Plan you already pay for and keep using it inside Cindy — no duplicate bill — connect your own API keys, or use local models. See cindy.app for service details, pricing, and downloads.
Linux users: see the Ubuntu, Arch Linux and Omarchy installation guide for installation, updates, keyring setup and migration from a manual install.
Open source means more than visible — it means changeable:
- Memory — correct her once and she does it right from then on, shared across harnesses.
- Skills — teach a way of working once and reuse it everywhere; handing them to your team is in the making.
- Automation — recurring work schedules itself, runs itself, reports back.
- MCP — wire your internal tools and business systems into her reach.
- Plugins — reshape features, UI and interactions, shared through an open marketplace (in the making).
- Source — audit, fork, extend, and contribute improvements back under Apache-2.0.
Ready out of the box, never boxed in — start with CONTRIBUTING.en.md and build Cindy with us.
| Path | Description |
|---|---|
apps/desktop |
Electron desktop client |
apps/mobile |
Expo / React Native mobile client |
packages/* |
Shared client capabilities (auth, device-link, agent orchestration, model providers, …) |
apps/*-bin |
Tool binaries shipped with the desktop app; none are committed — claude-code, codex, and ripgrep are downloaded per platform by pnpm install, and the Android platform-tools binaries are fetched (pinned version, sha256-verified) before Windows packaging |
Not in this repo: the backend service lives in a separate repository and is not part of this monorepo.
| Mode | Account requirement | Availability |
|---|---|---|
| Hosted service | Cindy cloud account | Use Cindy's full hosted service. See pricing. |
| Skip Sign-In | No Cindy sign-in required | Choose “Skip Sign-In” on the login screen to use local agents; the app then shows the account state as “Not signed in”. Server-backed capabilities are unavailable in this state. |
- Node.js 22.x
- pnpm 10.x (v11 is not yet supported)
- Git LFS
Contributor setup, Git LFS, dependency updates, and access requirements are maintained in CONTRIBUTING.en.md. Plugins are installed through SkillHub or manually.
Minimal entry point:
git clone https://github.com/makecindy/cindy.git
cd cindy
git lfs pull
pnpm install
# Mainland China Cindy account
pnpm restart:desktop:remote --region=cn
# Global Cindy account
pnpm restart:desktop:remote --region=global
Remote development uses your own Cindy cloud account and existing login state, so you can continue existing sessions and work while developing the client. Use cn for Mainland China accounts and global for everyone else; do not rely on the internal default. Full desktop, mobile, data-isolation, and validation workflows are in CONTRIBUTING.en.md.
“Skip Sign-In” on the login screen runs local agents without a Cindy account (shown in the app as “Not signed in”), not a connection to a local server. Server-backed capabilities are unavailable in this state.
About the default servers: the client connects to Cindy's official cloud services by default (endpoint manifests in config/endpoint.json and config/endpoint.global.json; desktop auto-updates also come from the official CDN). This is intentional — external developers don't need to self-host a server: sign in with your own Cindy account in a dev build and develop / test directly against the official servers.
Skill Hub migration uses two separate manifest fields: released clients keep using skillhubApiBaseUrl (the deprecated XD proxy), while current clients use cindySkillHubApiBaseUrl. The current client deliberately does not fall back to the legacy field when the new endpoint is absent.
Contributions go through pull requests into main. Read CONTRIBUTING.en.md first, then use .github/PULL_REQUEST_TEMPLATE.md. Every commit needs a Developer Certificate of Origin sign-off (git commit -s); a DCO check on each pull request enforces it, and no CLA is required. Please also follow CODE_OF_CONDUCT.en.md. For ordinary usage questions, see SUPPORT.en.md; report security issues privately through SECURITY.en.md.
Never commit credentials or authorization files to the working tree. If you discover a security issue, follow SECURITY.en.md to report it privately rather than opening a public issue.
Official distribution builds include TapDB usage analytics for product-level aggregate statistics (device / OS / app-version metadata; associated with your account ID after sign-in). It does not collect chat content, file content, or working-directory data. In addition, while signed in to a cloud account the client sends an online heartbeat to Cindy services (account ID, platform, and version only). Crash dumps stay on the local machine and are never uploaded automatically.
Building from source? You are not required to keep analytics:
- Mobile is off by default — without TapDB credentials (
clientId/clientToken) injected at build time,apps/mobile/src/analytics/mobileTapdb.tsis a no-op; - Desktop can be fully stripped by removing the
initTapdb()call inapps/desktop/src/renderer/index.tsx(implementation lives inapps/desktop/src/renderer/analytics/).
Except as otherwise noted, the source code in this repository is licensed under the Apache License, Version 2.0. Individual source files do not carry per-file license headers; the repository-root LICENSE governs.
Model weights, datasets, prompts, trademarks, and other separately identified materials may be subject to their own license terms and are not automatically covered by the repository-level Apache-2.0 grant. Third-party open-source components retain their own copyright and license. Their attribution notices and SPDX SBOMs are managed under docs/legal/, with artifact-specific outputs in docs/legal/notices/. See NOTICE for this project's copyright and attribution information.
