{"slug": "cicy-code-a-local-first-multi-agent-coding-workspace-via-npx", "title": "Cicy-code – a local-first multi-agent coding workspace via npx", "summary": "Cicy-code, a local-first multi-agent coding workspace, is now available via npx. The tool bundles a tmux worker, WebTTY terminal, React workspace, AI gateway, and skill market into a single binary distributed through npm, enabling users to set up an agent team in about five minutes.", "body_md": "`cicy-code`\n\n是一个本地优先的多 agent 开发工作区:tmux worker + WebTTY 终端 + React 工作区 + AI 网关 + skill 市场,收在同一个仓库里,通过 npm(`npx cicy-code`\n\n)分发单二进制。\n\n```\nnpx cicy-code\n```\n\n首次运行会拉取匹配当前平台的单二进制(~30 MB),然后在本机起服务 —— 浏览器打开 [http://127.0.0.1:8008](http://127.0.0.1:8008) 即可进入工作区。从零到指挥一支 agent 团队,大约 5 分钟。\n\n- 🚀\n[快速开始](https://docs.cicy-ai.com/guide/getting-started)— 5 分钟从安装到第一支 agent 团队 - 📥\n[下载与安装](https://docs.cicy-ai.com/guide/download)— 各平台安装包与 Docker 方式 - 🌐\n[cicy-ai.com](https://cicy-ai.com)— 官网与云端版\n\n```\ncicy-code/\n├── app/          React + Vite 前端(入口 app/src/App.tsx,主界面 Workspace.tsx)\n├── api/          Go 后端 + 终端层\n│   ├── mgr/      主程序与业务路由(main.go 注册路由与启动)\n│   ├── server/   WebTTY HTTP/WebSocket 服务\n│   ├── webtty/   WebTTY 协议\n│   ├── js/       浏览器端终端资产源码(改后需 `cd api && make asset`)\n│   ├── skillcmd/ `cicy-code skill <…>` 子命令(安装/卸载/列表)\n│   └── resources/ 后端静态资源\n├── npm/          npm 发布包与启动器(bin/cicy-code.js + publish-all.sh + install.sh)\n├── scripts/      构建/发版/测试脚本(build-image.sh / fresh-instance.sh / sync-version.py)\n├── workers/      Cloudflare Workers(见下「Cloudflare Workers」)\n├── build.sh      标准构建入口(唯一正确的构建/测试方式)\n├── dev.py        本地开发入口\n├── versions.json base 镜像 / app 资产 / ttyd 版本\n└── Makefile      常用别名\n```\n\n主入口:\n\n- 本地开发\n`python3 dev.py`\n\n- 构建/测试\n`./build.sh`\n\n- 后端\n`api/mgr/main.go`\n\n,前端`app/src/App.tsx`\n\n,主工作区`app/src/components/Workspace.tsx`\n\n- 版本号源头\n`npm/package.json`\n\n- cicy 状态根\n`~/cicy-ai`\n\n**必须走 ./build.sh,不要直接 go build / go test。**\n\n`build.sh`\n\n会在编译前准备内嵌资源;裸 `go build ./mgr/`\n\n会跳过这些步骤、和真实流水线不等价,还会在仓库根丢一个 `./mgr`\n\n产物。`./build.sh`\n\n依次:\n\n- 同步版本号\n- 复制\n`api/resources`\n\n→`api/mgr/resources`\n\n- 复制\n`.tmux.conf`\n\n、`.cicy_tmux.conf`\n\n→`api/mgr/`\n\n- 构建\n`app/dist`\n\n(除非`SKIP_NPM=1`\n\n) - 刷新 ttyd 内嵌资产(除非\n`SKIP_TTYD_ASSET=1`\n\n) - 复制\n`app/dist`\n\n→`api/mgr/ui`\n\n(前端嵌进二进制) - 编译\n`api/mgr`\n\n→`api/cicy-code`\n\n```\n./build.sh build [os arch]     # 当前/指定平台构建\n./build.sh all                 # 全平台\n./build.sh test-go             # Go 测试(稳定入口)\n./build.sh test-go ./mgr/...   # 单包测试\n./build.sh docker <tag>        # runtime 镜像\n./build.sh docker-base <tag>   # base 镜像\ncd ~/projects/cicy-code\npython3 dev.py                 # 构建 + 后台起 api/cicy-code --dev --public,tail 日志\n```\n\n默认端口:API `8008`\n\n、Vite `8022`\n\n。前端源码改动:`dev.py`\n\n默认 `SKIP_NPM=1`\n\n复用 `app/dist`\n\n,要生效先 `cd app && npm run build`\n\n,再 `python3 dev.py`\n\n。\n\n前后端分开调试:\n\n```\ncd app && npm ci && npm run dev          # 前端 HMR(:8022)\ncd api && go run ./mgr/ --dev --public   # 后端把非 API 请求反代到 :8022\n```\n\n（`--dev`\n\n仅用于本地起服务;正式产物仍必须走 `./build.sh`\n\n。）\n\n版本号统一由 `scripts/sync-version.py`\n\n写入这几处:`npm/package.json`\n\n、`app/package.json`\n\n、`app/package-lock.json`\n\n、`app/src/config.ts`\n\n、`api/mgr/main.go`\n\n、`.cicy_tmux.conf`\n\n。\n\n**正式发版(走 CI):**\n\n```\npython3 scripts/sync-version.py --set 2.3.NN   # 1) bump 所有版本文件\ncd app && npm run build                        # 2) 前端 build(把 config.version 烘进 dist)\ncd .. && git add <你的文件> && git commit ...   # 3) 提交(共享 checkout:只 add 自己的文件)\ngit push origin main\ngit tag v2.3.NN && git push origin v2.3.NN      # 4) 打 tag → 触发 .github/workflows/release.yml\n```\n\nCI 从 **tag** 构建各平台二进制、发布 npm 五连包。\n\n**只更新本地 Mac 桌面(不发 npm,更快):** 桌面跑 `~/.local/bin/cicy-code`\n\n(symlink → 版本化二进制)。流程见项目内约定(每次必 bump 版本 → `./build.sh build darwin amd64`\n\n→ 拷成版本化名 → 原子换 symlink → 同步 `~/.local/bin/.cicy-localbin.json`\n\n)。\n\n前端改动务必在 bump 之后\n\n`npm run build`\n\n,否则`SKIP_NPM=1`\n\n会复用旧 dist,`membership-version`\n\n显示的还是旧号。\n\n主包 `cicy-code`\n\n只是个 launcher(几 KB),二进制按平台拆成子包,npm 按 `os`\n\n/`cpu`\n\n**只装匹配当前机器的那个**:\n\n```\ncicy-code                  launcher(bin/cicy-code.js → require.resolve 平台子包并 exec)\n├─ cicy-code-darwin-arm64\n├─ cicy-code-darwin-x64\n├─ cicy-code-linux-x64\n└─ cicy-code-linux-arm64\n```\n\n安装:\n\n```\nnpm install -g cicy-code        # 海外\nnpm install -g cicy-code --registry=https://registry.npmmirror.com   # 国内(缓存二进制,不走 GitHub)\nnpx cicy-code                   # 临时跑一次\n```\n\n`npm/publish-all.sh <npm-version> [gh-tag]`\n\n从对应 GitHub release 资产打包发布 4 个平台子包 + 主包(子包先发、主包后发,保证 optionalDependencies 可解析)。CI 已自动化这条链。\n\n**后端 api/mgr** —\n\n`main.go`\n\n注册全部路由与启动。关键文件:`setup.go`\n\n:环境检查、内置 worker、开机 seed(dotfiles / memory 模板 / 内置 skill)`tmux.go`\n\n:pane 生命周期、tmux send、agent 启动脚本(boot.sh)、fork`chatbus.go`\n\n:聊天 WebSocket、poll、client 广播`agent_memory_template.go`\n\n:agent 记忆模板组装(见下)`newtab.go`\n\n:`/newtab`\n\n单源浏览器起始页(chrome + electron tab 共用)`skills.go`\n\n/`skill_market*.go`\n\n:skill 市场 API(`/api/skill-market/*`\n\n)`ai_gateway_*.go`\n\n/`providers*.go`\n\n:各 provider 适配与 AI 网关`runtime.go`\n\n/`machines.go`\n\n:managed runtime、机器表`ui.go`\n\n:内嵌 UI 或 Vite 反代;`paths.go`\n\n:状态根与路径常量\n\n**终端层** — `api/server`\n\n(HTTP/WS)、`api/webtty`\n\n(协议)、`api/js`\n\n(浏览器端资产,改后 `make asset`\n\n)。\n\n**前端 app** —\n\n`App.tsx`\n\n路由;`Workspace.tsx`\n\n主工作区(agent stack / 团队面板 / skill 市场 / Todo / WS 状态);`services/api.ts`\n\n统一 API 客户端;`config.ts`\n\n版本号与 API base。**Cloudflare Workers workers/**(独立\n\n`wrangler deploy`\n\n,与主程序解耦):`oauth-flow`\n\n→`oauth-flow.cicy-ai.com`\n\n:Google OAuth 授权码**无状态中继**(只暂存 code,TTL 10min、一次性;永不接触 client_secret / token)`skills-registry`\n\n→`skills.cicy-ai.com`\n\n:**public skill 注册表 API**(`/v1/skills*`\n\n、`/v1/admin/publish`\n\n),`skill install`\n\n打的就是它\n\n- 装/卸/列表:\n`cicy-code skill install|remove|installed <name>`\n\n(`api/skillcmd/`\n\n) - public 注册表:\n`workers/skills-registry`\n\n(`skills.cicy-ai.com`\n\n),public skill 源码在独立仓库`cicy-skills`\n\n,tag 触发`/v1/admin/publish`\n\n- 规范:三类 skill(public / private / team)的落盘位置与发布约定见\n`cicy-skill-spec`\n\n- 前端市场入口\n`/api/skill-market/*`\n\n,红点提示 public skill 有更新\n\ncicy 状态根 `~/cicy-ai`\n\n:\n\n`~/cicy-ai/global.json`\n\n:全局配置 + api_token`~/cicy-ai/db/`\n\n:敏感配置(`email.json`\n\n、`cf.json`\n\n、`frps.toml`\n\n、`mihomo.yaml`\n\n等,chmod 600)`~/cicy-ai/memory/`\n\n:记忆模板(`global.md`\n\n、`projects/`\n\n、`agents/`\n\n)`~/cicy-ai/workers/`\n\n:各 agent workspace`~/cicy-ai/skills/`\n\n:已装 skill(public 扁平 /`private/`\n\n/`team/<team>/`\n\n)`~/cicy-ai/assets/`\n\n:上传资源目录\n\nApache-2.0", "url": "https://wpnews.pro/news/cicy-code-a-local-first-multi-agent-coding-workspace-via-npx", "canonical_source": "https://github.com/cicy-ai/cicy-code", "published_at": "2026-07-18 05:50:59+00:00", "updated_at": "2026-07-18 06:21:20.060481+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents", "ai-tools"], "entities": ["cicy-code", "cicy-ai", "npm", "GitHub"], "alternates": {"html": "https://wpnews.pro/news/cicy-code-a-local-first-multi-agent-coding-workspace-via-npx", "markdown": "https://wpnews.pro/news/cicy-code-a-local-first-multi-agent-coding-workspace-via-npx.md", "text": "https://wpnews.pro/news/cicy-code-a-local-first-multi-agent-coding-workspace-via-npx.txt", "jsonld": "https://wpnews.pro/news/cicy-code-a-local-first-multi-agent-coding-workspace-via-npx.jsonld"}}