by Playa-0v0
An open-source AI desktop companion inspired by Cyrene, combining immersive Chat, personalized long-term memory, and an agentic Work mode.
# Add to your Claude Code skills
git clone https://github.com/Playa-0v0/Cyrene-AgentLast scanned: 7/10/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@jimp/core: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@jimp/custom: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@larksuiteoapi/node-sdk: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@nut-tree-fork/nut-js: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@nut-tree-fork/provider-interfaces: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@nut-tree-fork/shared: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@xenova/transformers: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "axios: Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF",
"severity": "high"
},
{
"type": "npm-audit",
"message": "concurrently: Vulnerability found",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "esbuild: esbuild enables any website to send any requests to the development server and read the response",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "exceljs: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "file-type: file-type affected by infinite loop in ASF parser on malformed input with zero-size sub-header",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "jimp: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "js-yaml: JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "onnx-proto: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "onnxruntime-web: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "protobufjs: Arbitrary code execution in protobufjs",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "shell-quote: shell-quote quote() does not escape newlines in object .op values",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "uuid: uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "vite: Vite Vulnerable to Path Traversal in Optimized Deps `.map` Handling",
"severity": "high"
}
],
"status": "FAILED",
"scannedAt": "2026-07-10T07:35:08.042Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}Cyrene-Agent is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Playa-0v0. An open-source AI desktop companion inspired by Cyrene, combining immersive Chat, personalized long-term memory, and an agentic Work mode. It has 411 GitHub stars.
Cyrene-Agent failed SkillsLLM's automated security scan, which flagged one or more high-severity issues. Review the Security Report section carefully before using it.
Clone the repository with "git clone https://github.com/Playa-0v0/Cyrene-Agent" and add it to your Claude Code skills directory (see the Installation section above).
Cyrene-Agent is primarily written in TypeScript. It is open-source under Playa-0v0 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh Cyrene-Agent against similar tools.
No comments yet. Be the first to share your thoughts!
Requires a passing catalog security scan. Resolve the flagged issues and resubmit to enable featuring.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Cyrene-Agent 是一个以《崩坏:星穹铁道》昔涟为核心角色的 Windows Live2D AI 桌面伴侣。
基于 Electron + TypeScript 开发的桌面端 Live2D 智能对话 Agent。
项目围绕昔涟(Cyrene)的角色设定,结合自研 DMAE 记忆引擎,
将角色化聊天、个性化记忆、语音交互、工具调用与多平台接入整合在同一个桌面 Agent 中,
支持日常聊天(Chat)、辅助工作(Work)、代码协作(Code)、学习陪伴(Learn)四种对话模式。
安装 Visual Studio Build Tools 时,请勾选:
安装 Rust 后,建议确认使用 MSVC 工具链:
rustup default stable-x86_64-pc-windows-msvc
飞书、微信 iLink、
nut-js键鼠自动化及原生截图功能依赖 Windows 环境。如果直接安装 Releases 中的打包版本,无需另外安装 Rust 和 Visual Studio Build Tools。
git clone https://github.com/Playa-0v0/Cyrene-Agent.git
cd Cyrene-Agent
推荐使用锁定版本安装:
npm ci
也可以使用:
npm install
首次安装会下载 Electron、Pixi.js、Live2D 等相关依赖,具体耗时取决于网络环境。
项目附带 cyrene 命令行入口,可用于首次欢迎语、查看版本或启动桌面端。在项目根目录执行:
npm run build:cli
npm link
之后即可在任意目录使用 cyrene:
cyrene # 首次运行会显示欢迎 Banner,之后只输出简洁状态
cyrene hello # 重新查看完整欢迎 Banner
cyrene about # 查看 Banner 与项目元信息
cyrene version # 查看版本
cyrene --help # 查看全部子命令
cyrene run # 在项目根目录启动桌面端(开发模式)
首次欢迎语仅在第一次执行
cyrene时出现,状态记录在~/.cyrene/state.json;之后默认只输出Cyrene Agent <version>与Ready.。cyrene run目前为开发模式,需要当前目录存在package.json;正式安装版的cyrene desktop入口将在 1.x 提供。
npm run build已经包含npm run build:cli,因此构建项目后无需再单独执行build:cli。但npm link仍需单独运行,才能在任意目录使用cyrene命令。
Cyrene 无需本地大语言模型即可正常聊天,但建议安装 BGE-M3 Embedding 模型,以获得更完整的语义增强体验:
[!IMPORTANT]
未安装 BGE-M3 不会影响基础聊天,依赖 Embedding 的增强功能会自动关闭或降级。
音乐功能由主进程内置的 NeteaseOpenapiProvider + MpvController 组成:
NeteaseOpenapiProvider 通过网易云音乐 OpenAPI 拉取搜索结果、推荐、歌单、收藏等内容;需要在设置中配置 OpenAPI 凭据(Cookie / Token 等)。MpvController 启动打包在 resources/bin/mpv/mpv.exe 的 mpv 子进程,通过命名管道(Windows)或 Unix socket 发送 JSON IPC 命令,不需要安装网易云桌面客户端或注册 orpheus:// 协议。npm run prepare:mpv 在打包阶段拷贝 mpv 二进制到 resources/bin/mpv/;本地未检测到 mpv 时,音乐工具会返回 client_unavailable 并在 UI 中提示,但不影响其他功能。[!NOTE]
音乐功能为可选组件,不影响聊天及其他核心功能。未配置 OpenAPI 凭据或未检测到 mpv 时,音乐工具会自动跳过并在界面中提示。
首次从源码运行时,需要先构建 Rust 原生截图助手:
npm run build:screenshot-helper
npm run build
npm start
[!IMPORTANT]
原生截图助手不会以
.exe形式提交到 Git 仓库,因此首次克隆后必须执行一次npm run build:screenshot-helper。Windows 用户也可以直接双击项目根目录的
setup.bat完成依赖安装、构建和npm link,之后双击start.bat即可启动。
开发模式:
npm run build:screenshot-helper
npm run dev
修改 Rust 截图助手代码后,需要重新执行:
npm run build:screenshot-helper
构建 Windows 可分发版本:
npm run package:win:dir
打包命令会自动构建 Electron 应用和 Rust 截图助手。
应用启动后,点击系统托盘图标 → 打开设置,完成以下基础配置:
🔑 模型设置:选择 LLM 厂商预设,填写 API Key、Base URL 与模型名称。
这是 Cyrene 正常聊天和运行 Agent 的必要配置。
🎙️ TTS 设置(可选):选择 Mossland、MiniMax、MiMo、GPT-SoVITS 或自定义云端语音合成服务。
🎧 ASR 设置(可选):如需使用语音通话,配置阿里云实时 ASR 的 AppKey 与 AccessKey。
📱 外部渠道(可选):根据需要连接飞书或微信 iLink,在手机端与 Cyrene 对话。
相关配置会保存在应用的 <userData>/ 目录中,修改后通常无需重启应用。
pixi-live2d-display 与 Cubism Core 渲染,支持桌面置顶、鼠标交互、自然待机与嘴型同步。
Work / Code / Daily等需要工具调用的会话模式,全部跑在 CyreneHarness 之上。 源码:src/main/orchestrator/harness/cyrene-harness.ts
CyreneHarness 是 Cyrene Agent 的核心 Agent Loop,负责把模型决策、工具执行、副作用记账与状态恢复串成一个可中断、可恢复、可回放的连续循环。
关键设计:
toolCalls 进入工具派发,无 toolCalls 时由模型主动结束当前 turn。push 进 messages,否则下一轮模型会看不到自己上一步的回复,loop 立即崩。ask_user / confirm_uncertain_effect 是用户等待类内置工具,必须独占本轮:其余同轮工具全部以 not_executed 协议结果写回,并 discardProgressBuffer() 丢弃进度文本。success / failure / unknown / not_executed。当 unknown 且 sideEffect === non_idempotent 时,副作用会被记入 state.uncertainEffects,并 halted = true 暂停本轮后续同类调用,防止自动重放危险副作用。classifyToolResultError + resolveSideEffect 决定是否重试;sleepWithJitter 退避可被 AbortSignal 中断。await 都用 raceWithSignal 包裹,signal.aborted 时返回 cancelled()(finalAnswer = '',不发 final_answer 事件)。onCheckpoint 把 messages + state + rounds 持久化,跨进程崩溃后可恢复。5 种终止状态:
| 状态 | terminated |
terminateReason |
触发条件 |
|---|---|---|---|
| ✅ success | false |
undefined |
模型不再调用工具,主动结束当前 turn |
| ⚪ cancelled | true |
cancelled |
AbortSignal 触发(finalAnswer = '') |
| 🟥 error | true |
error |
LLM 抛错或 checkpoint 失败 |
| 🟧 max_rounds | true |
max_rounds |
达到 config.maxRounds |
| 🟨 timeout | true |
timeout |
超过 config.totalTimeoutMs |
主流程示意:

(示意图:① 初始化 → ② 主循环 → ③ LLM → ④ 工具调度 → ⑤ 状态账本 → ⑥ 终态结算)
下面各模式是 Harness 的"消费者":

state.uncertainEffects 并停止本轮同类自动重放,避免危险操作被无声重复。AbortSignal 取消;取消时不会发出"最终回复",避免误导用户。messages + state + rounds 序列化到本地,跨进程崩溃后可在原状态续跑,不丢上下文。
[!WARNING]
Code 模式目前尚未内置改动 review / diff 预览功能,Agent 改完文件会直接落盘。建议在改动发生前使用你顺手的 IDE 或 diff 工具(如 VS Code、Cursor、JetBrains 系列、SourceGit 等)打开绑定目录以便随时查看 / 回滚。
启用 Git 是最稳妥的兜底:
git init && git add -A后任何改动都可git diff/git checkout -- .还原。
在 Work 基础上叠加代码专属工具 — 复用 CyreneHarness 主循环,额外注册代码专用工具集(读写改、命令执行、LSP 查询等);Action Gate 在 Harness 入口前过滤不安全调用,Execution Policy 决定是否需要用户二次确认。
绑定可信工作目录 — 所有读写、命令执行与 LSP 查询必须落在用户预先绑定的目录内;模型无法指定或切换工作目录,越权访问(包括 .. 与符号链接逃逸)会被直接拒绝。
代码语义查询(LSP) — Code 模式可在已绑定工作目录中查询定义、引用、悬停、符号与诊断;不会修改文件。
外部服务由用户管理 — Cyrene 只提供 LSP 客户端,不随应用捆绑、下载、升级或静默安装语言服务器。
启动顺序 — 先按命令是否为绝对路径定位,否则在工作区 node_modules/.bin 中查找,最后回退到系统 PATH 逐目录遍历(Windows 还会按 PATHEXT 追加 .exe / .cmd 等扩展名)。
安装与排障 — 请自行安装所需服务,例如 typescript-language-server、pyright-langserver、gopls、rust-analyzer、clangd、jdtls、OmniSharp、intelephense、ruby-lsp、kotlin-language-server、lua-language-server、vue-language-server、yaml-language-server;Windows 可用 where pyright-langserver,macOS/Linux 可用 which pyright-langserver 检查是否可发现。用户也可以明确要求昔涟通过现有、受权限控制的工具协助安装。
安全边界 — 语言服务进程以 stdio: "pipe" 启动,shell: false,cwd 强制为绑定工作目录;模型不能指定命令、服务 ID 或工作目录;lspServerOverrides 只覆盖 builtin 服务的命令名 / 参数 / 扩展名,不接受模型在对话中传入的任意命令。
内置支持的语言 — TypeScript / JavaScript / JSON、Python、Go、Rust、C / C++、Java、C#、PHP、Ruby、Kotlin、Lua、Vue、YAML(13 种,详见 src/main/lsp/server-catalog.ts)。
进程复用与释放 — 同一 serverId 的 LSP 进程在同一工作区内复用,避免反复冷启动;应用退出时统一释放。
自定义服务命令 — 在应用数据目录的 general-settings.json 中配置 lspServerOverrides,只覆盖 builtin 服务的 command / args / extensions / initializationOptions,不接受模型在对话中传入的启动命令。例如:
{
"lspServerOverrides": [
{
"id": "python-pyright",
"command": "basedpyright-langserver",
"args": ["--stdio"]
}
]
}
materials/、notes/、exercises/、templates/ 与 learn/progress.md 目录结构。