Install
$ agentstack add mcp-cicy-ai-cicy-desktop ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
CiCy Desktop
CiCy Desktop is an Electron-based desktop automation worker with a small cluster control plane. It exposes ~100+ system tools — Chrome/CDP control, in-page JavaScript, screenshots, clipboard, file ops, shell/node/python exec, system info — over MCP and HTTP, plus a homepage UI for managing local and remote teams. The cicy-code sidecar daemon is acquired at runtime (npx cicy-code on mac/linux, Docker-in-WSL on Windows), not bundled.
Screenshots
The homepage — your teams (the local sidecar, private-cloud teams, and custom remote nodes), each a card you open as a tab:
A team opened as a tab — the agent roster on the left, a live conversation on the right:
CLI — cicy-desktop
cicy-desktop launches the Electron app — npm start and npx cicy-desktop run the same entrypoint. Self-update with cicy-desktop --update; --version and --help print info.
Run (end users, no clone)
First run launches the Electron app and drops a desktop shortcut (Windows .lnk / macOS .app / Linux .desktop, all with the CiCy icon); double-click it afterwards.
CN needs the electron mirror. A fresh machine has no cached electron binary, so electron's postinstall would otherwise hit GitHub releases and fail — point ELECTRON_MIRROR and the npm registry at npmmirror.
Windows — global install (not npx)
npx's libnpmexec lock false-positives as "Lock compromised" on Windows boxes with realtime antivirus (Defender touches node_modules mtimes mid-install). npm i -g has no such lock:
cmd /c "set ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/&& npm i -g cicy-desktop --registry=https://registry.npmmirror.com&& cicy-desktop"
Re-run the same line to update.
macOS / Linux — npx
ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ npm_config_registry=https://registry.npmmirror.com npx -y cicy-desktop
Outside CN (or once electron is cached) a plain npx -y cicy-desktop is enough.
Develop
git clone git@github.com:cicy-ai/cicy-desktop.git
cd cicy-desktop
npm install
npm start
Config lives in ~/cicy-ai/global.json (API token, gateway key, node list). The worker reads its Authorization: Bearer from there.
Homepage UI (workers/render)
The desktop homepage — team cards, tabs, everything the user sees — is a Vite + React app in workers/render/. The Electron main process loads a prebuilt snapshot from src/backends/homepage-react/ (a file:// SPA: works offline, no mixed-content issues embedding the team webview). Source and snapshot are two different things — scripts/build-homepage.cjs (run on every build:* / publish) rebuilds the snapshot so it never lags behind workers/render/.
Build → ship the snapshot:
cd workers/render && npm run build
rsync -av --delete dist/ ../../src/backends/homepage-react/
Fast dev loop (React/CSS HMR, no Electron restart): run Vite and source-mode Electron with CICY_HOMEPAGE_URL=http://localhost:8173 set (via .env.dev). src/backends/homepage-window.js falls back to the bundled file:// SPA if that URL is unreachable, so the window never stays blank. Full platform/loop details (Mac fast loop, Windows packaged, the three reload classes) are in the worker's CLAUDE.md.
Calling tools
The worker dispatches its tools three ways:
- In-page (IPC):
window.electronRPC(toolName, args)— the bridge injected
into trusted BrowserWindows.
- HTTP (REST):
POST /rpc/:toolNamewithAuthorization: Bearer—
served by the master, which forwards to the selected worker. 401 Unauthorized means the token is wrong or missing.
- From an agent: the
agent-desktop/agent-electron/agent-chrome
skills drive a connected client over WebSocket (agent-desktop rpc , agent-desktop exec …, etc.).
Discover tools at runtime:
list_toolsmeta-tool (electronRPC("list_tools")/agent-desktop rpc list_tools)GET /openapi.json(browsable at/docs)
The worker exposes automation for: browser window lifecycle and navigation, CDP page interaction, in-page JavaScript, screenshots / downloads / clipboard, system window control and system info, and worker/master cluster coordination.
Architecture
- worker/server entry —
src/main.js - desktop lifecycle CLI —
bin/cicy-desktop - tool implementations —
src/tools/* - master (routes
POST /rpc/:toolNameto workers) —src/master/master-routes.js - homepage source —
workers/render/→ built intosrc/backends/homepage-react/
The worker dispatches tools in-process via ipcMain.handle("rpc", …) (what window.electronRPC rides) and over HTTP; the live tool index is GET /openapi.json. The desktop CLI starts a local master + worker cluster and manages status/logs.
License
[Apache-2.0](./LICENSE).
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: cicy-ai
- Source: cicy-ai/cicy-desktop
- License: Apache-2.0
- Homepage: https://cicy-ai.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.