{"id":51406351,"url":"https://github.com/qxbyte/muse","last_synced_at":"2026-07-04T11:04:03.502Z","repository":{"id":360962335,"uuid":"1251352732","full_name":"qxbyte/muse","owner":"qxbyte","description":"A TypeScript agent CLI built around OpenAI-compatible APIs. First-class support for self-hostable and Chinese LLMs (DeepSeek, Qwen, Kimi, GLM, Ollama, MiMo).","archived":false,"fork":false,"pushed_at":"2026-06-14T04:51:05.000Z","size":1246,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-14T06:26:28.574Z","etag":null,"topics":["agent-cli","ai-agent","chinese-llm","cli","deepseek","ink","kimi","llm","nodejs","ollama","openai-compatible","qwen","tui","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@qxbyte/muse","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qxbyte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-27T13:49:06.000Z","updated_at":"2026-06-14T04:51:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/qxbyte/muse","commit_stats":null,"previous_names":["qxbyte/muse"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/qxbyte/muse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qxbyte%2Fmuse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qxbyte%2Fmuse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qxbyte%2Fmuse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qxbyte%2Fmuse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qxbyte","download_url":"https://codeload.github.com/qxbyte/muse/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qxbyte%2Fmuse/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35119041,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-04T02:00:05.987Z","response_time":113,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-cli","ai-agent","chinese-llm","cli","deepseek","ink","kimi","llm","nodejs","ollama","openai-compatible","qwen","tui","typescript"],"created_at":"2026-07-04T11:04:02.780Z","updated_at":"2026-07-04T11:04:03.495Z","avatar_url":"https://github.com/qxbyte.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Muse\n\n\u003e 围绕 OpenAI 兼容协议构建的 TypeScript Agent CLI,内建权限管控 + 长期记忆 + 向量召回。一线支持国内 LLM(DeepSeek / Qwen / Kimi / GLM / Ollama / MiMo)。\n\n**v0.2.0 新增**:跨项目 + 项目级双层长期记忆(`/memory` + `/remember`)· `MUSE.md` / `AGENTS.md` 多层 hierarchy · 向量召回(6 个 OpenAI 兼容 preset + 4 个本地 transformers preset,默认关闭) · trust 分级(trusted/verified/auto)· 9 节 compaction schema · 上下文管理升级(用户消息保护 / tool result 自动折叠 / facts 自动 promote 等)。完整配置见 [`docs/操作手册.md`](./docs/操作手册.md)。\n\n---\n\n## 目录\n\n- [安装](#安装)\n- [快速开始](#快速开始)\n- [配置详解](#配置详解)\n- [使用](#使用)\n- [长期记忆与向量召回](#长期记忆与向量召回)\n- [常见问题](#常见问题)\n- [License](#license)\n\n---\n\n## 安装\n\n### 方式 A：从 npm（推荐）\n\n```bash\nnpm install -g @qxbyte/muse\nmuse --version\n```\n\n需要 **Node.js \u003e= 20**。包名 `@qxbyte/muse`（scoped），CLI 命令名 `muse`。\n\n### 方式 B：从源码\n\n```bash\ngit clone https://github.com/qxbyte/muse.git\ncd muse\nnpm install\nnpm run build\nnode ./dist/cli.js --version\n```\n\n让命令全局可用：\n\n```bash\n# 在仓库目录\nnpm link\nmuse --version\n```\n\n---\n\n## 快速开始\n\n最少 3 步把 muse 跑起来。\n\n### 1. 准备一个 LLM 端点的 apiKey\n\n任选一个：\n\n| Provider | 申请页 | env 变量名（习惯） |\n|---|---|---|\n| DeepSeek | https://platform.deepseek.com | `DEEPSEEK_API_KEY` |\n| Qwen (阿里百炼) | https://bailian.console.aliyun.com | `DASHSCOPE_API_KEY` |\n| Moonshot (Kimi) | https://platform.moonshot.cn | `MOONSHOT_API_KEY` |\n| 智谱 GLM | https://open.bigmodel.cn | `ZHIPU_API_KEY` |\n| OpenAI | https://platform.openai.com | `OPENAI_API_KEY` |\n| Ollama (本地) | https://ollama.com | 不需要 |\n\n### 2. 建模型仓库 `~/.muse/model.local.json`\n\n```bash\nmkdir -p ~/.muse\ncat \u003e ~/.muse/model.local.json \u003c\u003c'EOF'\n{\n  \"models\": [\n    {\n      \"id\": \"deepseek-chat\",\n      \"vendor\": \"DeepSeek\",\n      \"baseUrl\": \"https://api.deepseek.com/v1\",\n      \"apiKey\": \"sk-...\",\n      \"supportsToolCall\": true\n    }\n  ],\n  \"availableModels\": [\"deepseek-chat\"]\n}\nEOF\nchmod 600 ~/.muse/model.local.json\n```\n\n\u003e 文件名后缀 `.local.json` 是 muse 的视觉提示——本机本地、从不入 git；明文写 apiKey 是 OK 的。\n\n### 3. 启动\n\n```bash\nmuse                                # 进交互模式\n```\n\n第一次启动会自动写 `~/.muse/settings.json` 记录默认模型；在 TUI 里输入 `/model` 可以切换。\n\n---\n\n## 配置详解\n\nmuse 用三个文件：\n\n```\n~/.muse/\n├── models.local.json     # 模型仓库：你能调用的所有模型 + 凭证（本机本地，从不入 git）\n├── settings.json         # 运行偏好：当前激活的 model / UI / 权限\n├── settings.local.json   # settings 的本机兜底覆盖\n├── sessions/             # 会话 JSONL 历史\n└── logs/                 # 日志（运行报错排查用）\n```\n\n### 模型仓库：`~/.muse/model.local.json`\n\n完整字段说明：\n\n| 字段 | 类型 | 必填 | 说明 |\n|---|---|---|---|\n| `id` | string | ✅ | 模型唯一标识，**你自己起的名字**；slash 命令和 settings.json 用它引用 |\n| `name` | string | | 显示名，缺省 = id |\n| `vendor` | string | | 厂商名，只在 `/model` selector 里分组显示 |\n| `baseUrl` | string | ✅ | OpenAI 兼容协议**基址**（如 `https://api.deepseek.com/v1`）；填全 endpoint `.../v1/chat/completions` 也行，会自动剥后缀；别名字段 `url` 等价 |\n| `apiKey` | string | | 凭证；可直接写明文（推荐，文件本就只在本机），也支持 `${ENV_VAR}` 占位符；本地 Ollama 等可不填 |\n| `supportsToolCall` | bool | | 是否支持 function calling，默认 `true` |\n| `supportsImages` | bool | | 是否支持视觉，默认 `false` |\n| `contextWindow` | number | | 上下文窗口（tokens），用于 `/cost` 估算 |\n| `availableModels` | string[] | | 顶层数组；决定 `/model` selector 里显示哪些 id（不填 = 全部 models） |\n\n### 多 Provider 配置示例\n\n把多个一起放进 `models` 数组，按需在 `availableModels` 里挑：\n\n```json\n{\n  \"models\": [\n    {\n      \"id\": \"deepseek-chat\",\n      \"vendor\": \"DeepSeek\",\n      \"baseUrl\": \"https://api.deepseek.com/v1\",\n      \"apiKey\": \"${DEEPSEEK_API_KEY}\",\n      \"supportsToolCall\": true\n    },\n    {\n      \"id\": \"deepseek-reasoner\",\n      \"vendor\": \"DeepSeek\",\n      \"baseUrl\": \"https://api.deepseek.com/v1\",\n      \"apiKey\": \"${DEEPSEEK_API_KEY}\",\n      \"supportsToolCall\": false\n    },\n    {\n      \"id\": \"qwen-plus\",\n      \"vendor\": \"Qwen\",\n      \"baseUrl\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n      \"apiKey\": \"${DASHSCOPE_API_KEY}\",\n      \"supportsToolCall\": true\n    },\n    {\n      \"id\": \"kimi-k2\",\n      \"vendor\": \"Moonshot\",\n      \"baseUrl\": \"https://api.moonshot.cn/v1\",\n      \"apiKey\": \"${MOONSHOT_API_KEY}\",\n      \"supportsToolCall\": true\n    },\n    {\n      \"id\": \"glm-4-plus\",\n      \"vendor\": \"GLM\",\n      \"baseUrl\": \"https://open.bigmodel.cn/api/paas/v4\",\n      \"apiKey\": \"${ZHIPU_API_KEY}\",\n      \"supportsToolCall\": true\n    },\n    {\n      \"id\": \"gpt-4o-mini\",\n      \"vendor\": \"OpenAI\",\n      \"baseUrl\": \"https://api.openai.com/v1\",\n      \"apiKey\": \"${OPENAI_API_KEY}\",\n      \"supportsToolCall\": true,\n      \"supportsImages\": true\n    },\n    {\n      \"id\": \"llama3.1\",\n      \"vendor\": \"Ollama\",\n      \"baseUrl\": \"http://localhost:11434/v1\",\n      \"supportsToolCall\": true\n    },\n    {\n      \"id\": \"my-self-hosted\",\n      \"vendor\": \"Custom\",\n      \"baseUrl\": \"https://my-vllm-gateway.example.com/v1\",\n      \"apiKey\": \"${MY_GW_KEY}\",\n      \"supportsToolCall\": true\n    }\n  ],\n  \"availableModels\": [\n    \"deepseek-chat\",\n    \"deepseek-reasoner\",\n    \"qwen-plus\",\n    \"kimi-k2\",\n    \"glm-4-plus\",\n    \"gpt-4o-mini\",\n    \"llama3.1\"\n  ]\n}\n```\n\n### 运行偏好：`~/.muse/settings.json`\n\n```json\n{\n  \"llm\": {\n    \"model\": \"deepseek-chat\"\n  },\n  \"ui\": {\n    \"lang\": \"zh-CN\",\n    \"showBanner\": true\n  },\n  \"permissions\": {\n    \"allow\": [\"Read\", \"Grep\", \"Glob\"],\n    \"ask\": [\"Write\", \"Edit\", \"Bash\"],\n    \"defaultMode\": \"ask\"\n  }\n}\n```\n\n字段：\n\n| 字段 | 说明 |\n|---|---|\n| `llm.model` | 当前激活的 model id，必须在 models.local.json 的 models 数组里能找到 |\n| `ui.lang` | UI 文案语言，`zh-CN` / `en` |\n| `ui.showBanner` | 启动是否显示彩虹 banner |\n| `permissions.allow` | 直接放行的工具名列表（如 `Read`、`Bash(npm:*)`） |\n| `permissions.ask` | 调用前要 y/n 确认的工具 |\n| `permissions.deny` | 永远拒绝的工具 |\n| `permissions.defaultMode` | `strict`（未匹配 → ask）、`relaxed`（未匹配 → allow）、`ask`（默认） |\n\n\u003e 用 `/model` 切换模型时，muse 会自动写回 `llm.model`，**不需要手动改**。\n\n### 凭证安全\n\n`~/.muse/model.local.json` 是凭证唯一落脚点。两种写法：\n\n1. **直接写明文**（推荐——文件本就只存在于本机）\n   ```json\n   { \"apiKey\": \"sk-...\" }\n   ```\n   - 文件名带 `.local.json`，约定**绝不入 git**\n   - 建议 `chmod 600 ~/.muse/model.local.json`\n   - 警惕同步盘（iCloud / Dropbox）：如果 `~/.muse/` 被同步盘覆盖，凭证会扩散\n\n2. **`${VAR}` 占位符 + shell env**（怕同步盘扩散时用）\n   ```bash\n   # ~/.zshrc 或 ~/.bashrc\n   export DEEPSEEK_API_KEY=sk-...\n   ```\n   ```json\n   { \"apiKey\": \"${DEEPSEEK_API_KEY}\" }\n   ```\n   muse 启动时自动展开。如果 env 没设，会给出指明缺哪个变量的友好报错。\n\nmuse 自身的安全保证：\n- 日志里 apiKey **自动脱敏**（前 4 + 后 4，中间打码）\n- 切换 model 时 apiKey 注入 `process.env.MUSE_ACTIVE_API_KEY`，业务代码只透过 env 取，不持有副本\n- 进程退出后 env 不残留，不污染你的 shell\n\n### 配置文件加载优先级\n\n由低到高（高的覆盖低的）：\n\n1. 内置默认值\n2. `~/.muse/settings.json`（全局共享）\n3. `\u003c项目\u003e/.muse/settings.json`（项目级，可入 git）\n4. `\u003c项目\u003e/.muse/settings.local.json`（项目级，已 gitignore）\n5. 环境变量 `MUSE_PROVIDER` / `MUSE_MODEL`\n6. CLI flags `-p` / `-m`\n\n`models.local.json` 只有 `~/.muse/` 层，无项目级（模型仓库本质是 user-level）。\n\n---\n\n## 使用\n\n### 启动方式\n\n```bash\nmuse                                      # 交互模式（TUI）\nmuse \"总结一下 src/cli.tsx\"               # 一次性 prompt\ncat bug.log | muse \"找出根因\"             # 管道输入\nmuse --quiet \"...\"                        # 最小输出，适合脚本\nmuse --debug                              # 详细日志到 ~/.muse/logs/\u003cdate\u003e.jsonl\nmuse --help\n```\n\n### CLI 参数\n\n| flag | 说明 |\n|---|---|\n| `-m, --model \u003cid\u003e` | 临时切 model（不写回 settings.json） |\n| `-p, --provider \u003cname\u003e` | 临时切 provider（仅 fallback 路径用） |\n| `--no-banner` | 不显示启动 banner |\n| `--quiet` | 最小输出（隐含 `--no-banner`） |\n| `--debug` | 详细日志 |\n| `--continue` | 恢复上次会话（部分实现） |\n| `-v, --version` | 打印版本 |\n| `-h, --help` | 打印帮助 |\n\n### Slash 命令\n\n启动后在 TUI 输入 `/` 会弹出补全列表,↑↓ 导航,Tab/Enter 接受。`/help` 输出按分类分组 + 按键提示。\n\n| 命令 | 作用 |\n|---|---|\n| `/help` | 列所有命令(按分类分组)+ 按键速查表 |\n| `/clear` | 清空当前会话 |\n| `/cost` | 当前会话 token 用量 + 费用估算 |\n| `/model` | 弹出 selector,↑↓ 选模型(自动写回 settings.json) |\n| `/config [reload\\|path]` | 显示 effective 配置 / 热加载 / 列配置文件路径 |\n| `/compact [--keep N]` | 摘要老消息释放上下文(9 节结构化 schema + facts 自动 promote 到 memory) |\n| `/memory [子命令]` | 长期记忆管理(详见 [`docs/操作手册.md`](./docs/操作手册.md) §4.3)\u003cbr\u003e`list` / `view \u003cname\u003e` / `edit \u003cname\u003e` / `delete \u003cname\u003e` / `promote \u003cname\u003e` / `promote-scope \u003cname\u003e` / `trust \u003cname\u003e \u003clevel\u003e` / `search \u003cquery\u003e` / `diff` / `diagnose` |\n| `/remember [--user\\|--project] \u003ctext\u003e` | 用户显式存记忆 — LLM 把口语化文本抽取成结构化 memory(默认 user 跨项目) |\n| `/btw \u003cquestion\u003e` | 旁白问答:浮层显示,**不**进历史 |\n| `/resume` | ↑↓ 选历史会话加载;带参 `/resume \u003cid-prefix\u003e` 直接加载 |\n| `/mcp` | MCP server 状态(预留,v0.3 落地) |\n| `/mode [\u003cmode\u003e]` | 切权限模式(default / acceptEdits / plan / bypassPermissions) |\n| `/exit` | 退出 |\n\n### 内置工具\n\nLLM 在执行任务时可调用:\n\n| 工具 | 作用 |\n|---|---|\n| `Read` | 读文件,支持 offset / limit 分页 |\n| `Write` | 写文件(必须先 Read 过才能 Write,防误覆盖) |\n| `Edit` | 精确字符串替换(比全文重写省 token) |\n| `Grep` | ripgrep 包装 |\n| `Glob` | 文件匹配 |\n| `Bash` | 执行 shell 命令;危险命令(rm -rf / sudo / curl…\\|sh)硬拒绝 |\n| `WebFetch` | 抓取 URL → markdown(SSRF 防护 + http→https + 30s + 1MB) |\n| `TodoWrite` | 任务清单(session 内),固定显示在输入框上方 |\n| `MemoryRead` | 读单条长期 memory(`MEMORY.md` 索引行自动注入 system prompt) |\n| `MemoryWrite` | 写长期 memory(支持 `scope: \"project\" \\| \"user\"` 双层) |\n| `AskUserQuestion` | 弹结构化 picker 同步问用户(单 / 多选 + Notes) |\n\n所有写操作 / Bash 默认走权限弹窗(y/n 确认),权限模式可调(见下)。\n\n### 权限模式（Shift+Tab 循环）\n\n底部状态栏显示当前模式：\n\n| 模式 | 行为 | 何时用 |\n|---|---|---|\n| `default` | 按 settings.permissions 规则判定 | 日常 |\n| `acceptEdits` | Edit / Write 自动放行，其他不变 | 信任的批量改 |\n| `plan` | 只允许只读工具（Read / Grep / Glob），让 LLM\"想清楚再动手\" | 探索代码、定方案 |\n| `bypassPermissions` | 除 deny 列表与硬拒绝命令外全部放行 | 沙箱环境、CI |\n\n按 `Shift+Tab` 在四档间循环；不持久化，重启回到 default。\n\n### 切换模型\n\n两种方式：\n\n1. **TUI 内**：输入 `/model` → ↑↓ 选 → Enter，自动写回 settings.json + 注入 env\n2. **命令行临时**：`muse -m kimi-k2 \"...\"`（不持久化）\n3. **手动编辑**：改 `~/.muse/settings.json` 里的 `llm.model`，TUI 里 `/config reload` 热加载\n\n### Markdown 渲染\n\nassistant 回复里的 markdown(标题、列表、代码块、表格、链接)会被渲染成富文本。流式输出过程中是纯文本,本轮结束后自动替换成格式化版本。\n\n---\n\n## 长期记忆与向量召回\n\nv0.2.0 新增。`/memory` 命令族管理跨 session 持久化记忆;`/remember` 是用户显式入口。\n\n**两层独立存储 + 合并召回**:\n\n| scope | 路径 | 用途 |\n|---|---|---|\n| `project` | `~/.muse/projects/\u003chash\u003e/memory/` | 项目专属(团队约定 / 项目 bug 修复 / 架构决策) |\n| `user` | `~/.muse/memory/` | 跨项目用户级(编辑器偏好 / 工作语言 / 工具偏好) |\n\n召回时两层合并,**项目优先**(同分时 project 排前)。trust 分级:`trusted`(`MUSE.md`/`AGENTS.md`,硬约束)/ `verified`(用户编辑过)/ `auto`(LLM 自动写,可被新证据覆盖)。\n\n**`MUSE.md` / `AGENTS.md` hierarchy**:5 层 — `~/.muse/MUSE.md`(全局)→ `\u003cproject\u003e/MUSE.md`(团队)→ `\u003cproject\u003e/.muse/MUSE.local.md`(个人本地)→ 子目录惰性加载。`AGENTS.md` 兼容读取(跨工具事实标准)。\n\n**向量召回**(默认关闭,启用一行配置):\n\n```jsonc\n// ~/.muse/settings.local.json\n{\n  \"memory\": {\n    \"embedding\": {\n      \"enabled\": true,\n      \"preset\": \"dashscope-v3\",          // 阿里 DashScope(国内直连,推荐中文场景)\n      \"apiKey\": \"${DASHSCOPE_API_KEY}\"\n    }\n  }\n}\n```\n\n支持的 preset:\n- **云端 OpenAI 协议**:`dashscope-v3`(阿里 1024-dim)/ `zhipu-3`(智谱 2048-dim)/ `openai-3-small`(1536-dim) / `openai-3-large`(3072-dim)/ `ollama-nomic` / `ollama-bge-m3`(本地零成本)\n- **本地 transformers**(需先 `npm i -g @huggingface/transformers`):`local-bge-zh` / `local-bge-en` / `local-minilm` / `local-bge-m3`\n\n**配置失败永不阻塞** — 自动降级到 `hash-bag`(本地零依赖) → 全文模式(`MEMORY.md` 索引前 200 行注入)。`muse` 内跑 `/memory diagnose` 看状态 + 修复建议。\n\n完整章节见 [`docs/操作手册.md`](./docs/操作手册.md) §3.7 / §4.3 / §4.4 / §9.7。\n\n---\n\n## 常见问题\n\n### `/model` 显示 \"No models registry found\"\n\n`~/.muse/model.local.json` 不存在或解析失败。\n\n- 路径是否正确？`ls ~/.muse/model.local.json`\n- JSON 格式是否合法？`jq . ~/.muse/model.local.json`\n- 字段错位？看 `~/.muse/logs/\u003ctoday\u003e.jsonl` 里的 warn\n\n### `Model \"...\" needs an API key but none was found`\n\n启动时 apiKey 没注入到 env。muse 会直接告诉你根因 + 修复方式（缺哪个 env var、改哪个文件）。看报错头几行即可。\n\n如果用了 `${ENV_VAR}` 占位符且 env 没 export，最快修复是直接把明文 key 填进 `~/.muse/model.local.json`（文件就在本机，明文 OK）。\n\n### 启动时一段 zod warn JSON\n\n`~/.muse/settings.json` 字段不匹配 schema。看 warn 里的 `path` 列就知道哪个字段错了，照着改。\n\n### Ollama 本地模型连不上\n\n- Ollama 服务跑没？`curl http://localhost:11434/api/tags`\n- `baseUrl` 必须填 `http://localhost:11434/v1`（带 `/v1`），不能只填 host\n- 防火墙 / 端口被占用？\n\n### 国产 provider 工具调用失败\n\n部分国产 provider 对 OpenAI function calling 协议的实现有小差异。如果 LLM 看起来\"忽略工具\"或\"乱调\"：\n\n- 试着把 `supportsToolCall` 改成 `false` 强行降级到纯对话\n- 切到 DeepSeek / Qwen / Moonshot 等兼容性较好的 provider 验证\n- 查 `~/.muse/logs/\u003ctoday\u003e.jsonl` 看 LLM 实际响应内容\n\n### 想要恢复昨天的会话\n\n```\nmuse           # 进 TUI\n/resume        # ↑↓ 选 → Enter\n```\n\n会话存在 `~/.muse/sessions/\u003cproject-hash\u003e/\u003cuuid\u003e.jsonl`，按 cwd 分目录。\n\n### 如何卸载\n\n```bash\nnpm uninstall -g @qxbyte/muse\nrm -rf ~/.muse                            # 清配置 / 会话 / 日志(可选)\n```\n\n### 启用 embedding 后召回不准 / 启动报错\n\n在 muse 里跑 `/memory diagnose`,会显示:\n- 当前 embedding 配置(preset / model / apiKey 是否设)\n- 索引文件状态(每 scope 的 `.index.json` 是否存在)\n- Live probe 结果(✓ / ✗ HTTP 错)\n- 按错误类型分类的修复建议\n\n任何失败都自动降级到 hash-bag / 全文模式,muse 永远可用。\n\n---\n\n## 更多文档\n\n- [`docs/操作手册.md`](./docs/操作手册.md) — 完整配置 / 命令参考 / 三套 embedding 启用清单(阿里 / OpenAI / Ollama)/ FAQ\n- [`CHANGELOG`](https://github.com/qxbyte/muse/releases) — 各版本变更\n\n---\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqxbyte%2Fmuse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqxbyte%2Fmuse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqxbyte%2Fmuse/lists"}