makecindy/cindy
Summary
Cindy is an open-source AI agent that runs locally on your machine, unifying multiple harnesses (Claude Code, Codex), models, and tools to complete real work across projects, with the desktop and mobile client code now available under Apache-2.0.
View Cached Full Text
Cached at: 10/27/26, 01:58 AM
makecindy/cindy
Source: https://github.com/makecindy/cindy
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.
Yours to shape
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.
What’s in this repo
| 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. |
Prerequisites
- Node.js 22.x
- pnpm 10.x (v11 is not yet supported)
- Git LFS
Getting started
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
Development entry points
# 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.
Architecture
DESIGN.md— visual design system, color tokens, and UI conventionsdocs/README.md— complete documentation and rules indexdocs/auth-realm-routing.md— organization SSO region discovery and session endpoint routingCONTRIBUTING.en.md— contributor setup, validation, and submission workflowAGENTS.md— engineering rules, launch/runtime contracts, and module boundariesdocs/dev-rules/— deep-dive architecture docs (e.g. Orca multi-agent orchestration)
Contributing
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.
Security
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.
Privacy & telemetry
Official distribution builds include TapDB usage analytics for product-level aggregate statistics, including device identifiers, OS / app version, startup and activity events. Events are associated with your account ID after sign-in, so this is not fully anonymous. TapDB does not collect chat content, file content, or working-directory data.
You can disable usage analytics without editing code: on Desktop, use Settings → About → Usage statistics; on Mobile, use Usage statistics in Settings. The SDK checks the stored privacy-consent state and the statistics preference, which defaults to on. Accepting the Privacy Policy records consent; a one-time migration also records consent for eligible existing signed-in users.
Known Mobile exception: enterprise SSO skips the policy-acceptance step. If no analytics consent record exists and that sign-in is restored after restarting the app, the current migration can mark even a new installation as consented. With TapDB configured and statistics enabled, reporting can then start without explicit policy acceptance. See Mobile sign-in restoration and the consent migration. Turning off Usage statistics prevents reporting from being enabled by this migration.
- Desktop stops subsequent analytics reporting immediately when disabled. Local mode (Skip sign-in) does not report to TapDB.
- Mobile immediately unlinks the account and stops reports explicitly triggered by Cindy. An already initialized native SDK cannot be uninitialized; fully quit and relaunch the app to keep the SDK uninitialized.
Implementation: Desktop consent and settings, Desktop SDK, Mobile consent, and Mobile SDK.
Online heartbeats and diagnostic logs are separate mechanisms, unaffected by the usage statistics switch. Desktop sends heartbeats to Cindy services only during a verified cloud sign-in (account ID, platform, and version); local mode sends none. Desktop native crash dumps stay local and are never uploaded automatically. Diagnostic logs can be uploaded manually; a separate, default-off automatic crash log upload option is also available. Log uploads require privacy consent. See the heartbeat implementation and log upload rules.
Building from source? You are not required to keep analytics:
- Desktop development builds do not initialize TapDB by default. Explicitly setting
XDT_TAPDB_DEV=1lifts the build gate but still requires consent and the statistics preference. Self-packaged Desktop builds use the same analytics gates as official builds; you can disable analytics in Settings. - Mobile does not initialize the SDK without injected TapDB configuration
(
clientId/clientToken). This does not mean all source builds default to off: the self-hosted release pipeline requires nonempty configuration, while local development permits empty values. See the Mobile build guide.
License / 许可证
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.
Similar Articles
I open-sourced the "harness" layer for AI agents: run Claude Code/Codex/Gemini with governed MCP tools (browser, editor, secrets)
Open-sourced a desktop workspace that provides a governed runtime for AI coding agents, offering 100+ MCP tools, RBAC, and a self-evolving toolbox.
@JinjingLiang: Want to ditch Claude? Someone just released the any-agent version of 'Claude Agent View' Use Codex, Pi, Droid, whatever…
Orca is an open-source AI orchestrator that lets developers run multiple CLI agents like Claude Code, Codex, and Gemini side-by-side across repositories on macOS, Windows, and Linux.
Open-source local controller for multi-agent workflows — one inbox for Cursor, Claude Code, Codex, Antigravity sessions with inter-agent group chat
An open-source local dashboard called Claude Command Center (CCC) that manages multiple AI coding agent sessions across engines like Cursor, Claude Code, Codex, and Antigravity, providing cross-engine inbox, live status, git worktree spawning, and inter-agent group chat.
Computer-use MCP that can control multiple machines (Integrate with claude, Cursor, Codex or your custom harness)
opendesk is a free, open-source tool that enables AI agents to control multiple computers over a local WiFi network via the computer-use MCP protocol, integrating with Claude, Cursor, Codex, and custom workflows.
@defileo: If this isn't f**k*ng insane, nothing is. Multica just open sourced a way to run coding agents like real teammates. And…
Multica is an open-source workspace that lets teams assign issues to AI coding agents like Claude Code, Codex, or Cursor, treating them as teammates who comment, report progress, and hand back PRs. It supports 20 agent CLIs and can be self-hosted.
