@memo-code/memo 0.7.2 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -14
- package/README.zh.md +43 -11
- package/dist/index.js +94 -104
- package/dist/task-prompts/init_agents.md +40 -0
- package/dist/task-prompts/review_pull_request.md +53 -0
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -5,18 +5,22 @@
|
|
|
5
5
|
</div>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<a href="
|
|
8
|
+
<a href="https://github.com/minorcell/memo-code/actions/workflows/ci.yml">
|
|
9
|
+
<img src="https://github.com/minorcell/memo-code/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI">
|
|
10
|
+
</a>
|
|
11
|
+
<a href="https://codecov.io/gh/minorcell/memo-code">
|
|
12
|
+
<img src="https://codecov.io/gh/minorcell/memo-code/graph/badge.svg" alt="Coverage">
|
|
13
|
+
</a>
|
|
14
|
+
<a href="https://www.npmjs.com/package/@memo-code/memo">
|
|
15
|
+
<img src="https://img.shields.io/npm/v/%40memo-code%2Fmemo" alt="npm version">
|
|
16
|
+
</a>
|
|
9
17
|
</p>
|
|
10
18
|
|
|
11
19
|
<p align="center">
|
|
12
|
-
<a href="
|
|
13
|
-
<img src="https://img.shields.io/badge/📹-Watch%20Demo%20Video-1a1a1a?style=for-the-badge" alt="Demo Video">
|
|
14
|
-
</a>
|
|
20
|
+
<a href="README.zh.md">Chinese Documentation</a>
|
|
15
21
|
</p>
|
|
16
22
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
<video src="public/memo-code-cli-show-01.mp4" width="100%"></video>
|
|
23
|
+
<img src="public/demo.png" width="100%" alt="Memo Code demo">
|
|
20
24
|
|
|
21
25
|
Built with Node.js + TypeScript. DeepSeek is the default provider, and OpenAI-compatible APIs are supported.
|
|
22
26
|
|
|
@@ -56,6 +60,7 @@ memo
|
|
|
56
60
|
- Dangerous mode: `memo --dangerous` or `memo -d` (skip tool approvals; use carefully).
|
|
57
61
|
- Version: `memo --version` or `memo -v`.
|
|
58
62
|
- Startup project guidance: if `AGENTS.md` exists in the startup root, Memo appends it to the system prompt automatically.
|
|
63
|
+
- Skills: Memo auto-discovers `SKILL.md` files and appends an available-skills section into the system prompt.
|
|
59
64
|
- MCP activation selection: when MCP servers are configured, startup shows a multi-select to activate servers for this run.
|
|
60
65
|
- Session titles: Memo generates a short title from the first user prompt and uses it in history/resume lists.
|
|
61
66
|
|
|
@@ -77,6 +82,24 @@ base_url = "https://api.deepseek.com"
|
|
|
77
82
|
|
|
78
83
|
You can configure multiple providers and switch with `current_provider`.
|
|
79
84
|
|
|
85
|
+
Optional: override model capability profiles (local capability gating) without code changes:
|
|
86
|
+
|
|
87
|
+
```toml
|
|
88
|
+
[model_profiles.gpt-5]
|
|
89
|
+
supports_parallel_tool_calls = true
|
|
90
|
+
supports_reasoning_content = true
|
|
91
|
+
context_window = 272000
|
|
92
|
+
|
|
93
|
+
[model_profiles."openai:gpt-5"]
|
|
94
|
+
supports_parallel_tool_calls = false # provider-specific override
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Context window policy:
|
|
98
|
+
|
|
99
|
+
- priority 1: `model_profiles."provider:model".context_window`
|
|
100
|
+
- priority 2: `model_profiles."<model>".context_window`
|
|
101
|
+
- fallback: `120000`
|
|
102
|
+
|
|
80
103
|
### MCP Tool Configuration
|
|
81
104
|
|
|
82
105
|
Both local and remote MCP servers are supported:
|
|
@@ -115,6 +138,33 @@ memo mcp get remote
|
|
|
115
138
|
memo mcp remove remote
|
|
116
139
|
```
|
|
117
140
|
|
|
141
|
+
## Skills
|
|
142
|
+
|
|
143
|
+
Memo supports Agent Skills and auto-discovers `SKILL.md` files at startup.
|
|
144
|
+
|
|
145
|
+
### Discovery Paths
|
|
146
|
+
|
|
147
|
+
- Project scope: project root `.<agent>/skills` directories (for example: `.agents/skills`, `.claude/skills`, `.codex/skills`)
|
|
148
|
+
- User scope: `$MEMO_HOME/skills` (or `~/.memo/skills`)
|
|
149
|
+
- Not scanned: `~/.xxx/skills` hidden directories outside Memo home
|
|
150
|
+
|
|
151
|
+
### Minimal Skill File
|
|
152
|
+
|
|
153
|
+
```md
|
|
154
|
+
---
|
|
155
|
+
name: doc-writing
|
|
156
|
+
description: Generate and update technical documentation.
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
# Doc Writing
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Memo reads `name` and `description` from frontmatter and injects each skill as metadata:
|
|
163
|
+
|
|
164
|
+
- `- <name>: <description> (file: <absolute-path-to-SKILL.md>)`
|
|
165
|
+
|
|
166
|
+
In prompts, users can explicitly mention a skill with `$skill-name` (for example, `$doc-writing`).
|
|
167
|
+
|
|
118
168
|
## Built-in Tools
|
|
119
169
|
|
|
120
170
|
- `exec_command` / `write_stdin`: execute shell commands (default shell family)
|
|
@@ -143,15 +193,13 @@ Memo includes a tool-approval mechanism to reduce risky operations:
|
|
|
143
193
|
|
|
144
194
|
## Session History
|
|
145
195
|
|
|
146
|
-
All sessions are saved to `~/.memo/sessions/`, grouped by
|
|
196
|
+
All sessions are saved to `~/.memo/sessions/`, grouped by project absolute path:
|
|
147
197
|
|
|
148
198
|
```text
|
|
149
199
|
~/.memo/sessions/
|
|
150
|
-
└──
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
├── rollout-2026-02-08T02-21-18-abc123.jsonl
|
|
154
|
-
└── rollout-2026-02-08T02-42-09-def456.jsonl
|
|
200
|
+
└── -Users-mcell-Desktop-workspace-memo-code/
|
|
201
|
+
├── 2026-02-08T02-21-18-abc123.jsonl
|
|
202
|
+
└── 2026-02-08T02-42-09-def456.jsonl
|
|
155
203
|
```
|
|
156
204
|
|
|
157
205
|
JSONL format is useful for analysis and debugging.
|
|
@@ -175,6 +223,7 @@ pnpm run build # generates dist/index.js
|
|
|
175
223
|
|
|
176
224
|
```bash
|
|
177
225
|
pnpm test # all tests
|
|
226
|
+
pnpm run test:coverage # all tests with coverage (threshold: >=70%)
|
|
178
227
|
pnpm run test:core # core package
|
|
179
228
|
pnpm run test:tools # tools package
|
|
180
229
|
pnpm run test:tui # tui package
|
|
@@ -203,7 +252,7 @@ memo-cli/
|
|
|
203
252
|
|
|
204
253
|
- `/help`: show help and shortcut guide.
|
|
205
254
|
- `/models`: list available Provider/Model entries and switch with Enter; also supports direct selection like `/models deepseek`.
|
|
206
|
-
- `/
|
|
255
|
+
- `/review <prNumber>`: run GitHub PR review and publish review comments (uses active GitHub MCP server first, then falls back to `gh` CLI).
|
|
207
256
|
- `/mcp`: show configured MCP servers in current session.
|
|
208
257
|
- `resume` history: type `resume` to list and load past sessions for current directory.
|
|
209
258
|
- Exit and clear: `exit` / `/exit`, `Ctrl+L` for new session, `Esc Esc` to cancel current run or clear input.
|
package/README.zh.md
CHANGED
|
@@ -5,14 +5,18 @@
|
|
|
5
5
|
</div>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<a href="
|
|
9
|
-
<img src="https://
|
|
8
|
+
<a href="https://github.com/minorcell/memo-code/actions/workflows/ci.yml">
|
|
9
|
+
<img src="https://github.com/minorcell/memo-code/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI">
|
|
10
|
+
</a>
|
|
11
|
+
<a href="https://codecov.io/gh/minorcell/memo-code">
|
|
12
|
+
<img src="https://codecov.io/gh/minorcell/memo-code/graph/badge.svg" alt="Coverage">
|
|
13
|
+
</a>
|
|
14
|
+
<a href="https://www.npmjs.com/package/@memo-code/memo">
|
|
15
|
+
<img src="https://img.shields.io/npm/v/%40memo-code%2Fmemo" alt="npm version">
|
|
10
16
|
</a>
|
|
11
17
|
</p>
|
|
12
18
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<video src="public/memo-code-cli-show-01.mp4" width="100%"></video>
|
|
19
|
+
<img src="public/demo.png" width="100%" alt="Memo Code 演示图">
|
|
16
20
|
|
|
17
21
|
基于 Node.js + TypeScript,默认对接 DeepSeek,兼容 OpenAI API。
|
|
18
22
|
|
|
@@ -52,6 +56,7 @@ memo
|
|
|
52
56
|
- 危险模式:`memo --dangerous` 或 `memo -d`(跳过工具审批,谨慎使用)。
|
|
53
57
|
- 查看版本:`memo --version` 或 `memo -v`。
|
|
54
58
|
- 启动目录约定:若启动根目录存在 `AGENTS.md`,Memo 会自动将其拼接进系统提示词。
|
|
59
|
+
- Skills:Memo 会自动发现 `SKILL.md` 并把可用 skills 列表拼接进系统提示词。
|
|
55
60
|
- MCP 启动选择:当配置了 MCP server 时,启动会弹出多选以决定本次会话激活哪些 server。
|
|
56
61
|
- 会话标题:Memo 会基于首条用户输入生成简短标题,并在历史/恢复列表中展示。
|
|
57
62
|
|
|
@@ -111,6 +116,33 @@ memo mcp get remote
|
|
|
111
116
|
memo mcp remove remote
|
|
112
117
|
```
|
|
113
118
|
|
|
119
|
+
## Skills
|
|
120
|
+
|
|
121
|
+
Memo 支持 Agent Skills,并会在启动时自动发现 `SKILL.md`。
|
|
122
|
+
|
|
123
|
+
### 发现路径
|
|
124
|
+
|
|
125
|
+
- 项目级:项目根目录下 `.<agent>/skills`(例如:`.agents/skills`、`.claude/skills`、`.codex/skills`)
|
|
126
|
+
- 用户级:`$MEMO_HOME/skills`(或 `~/.memo/skills`)
|
|
127
|
+
- 不扫描:Memo Home 之外的 `~/.xxx/skills` 隐藏目录
|
|
128
|
+
|
|
129
|
+
### 最小 Skill 文件示例
|
|
130
|
+
|
|
131
|
+
```md
|
|
132
|
+
---
|
|
133
|
+
name: doc-writing
|
|
134
|
+
description: Generate and update technical documentation.
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
# Doc Writing
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Memo 会读取 frontmatter 的 `name` 和 `description`,并以元数据形式注入:
|
|
141
|
+
|
|
142
|
+
- `- <name>: <description> (file: <absolute-path-to-SKILL.md>)`
|
|
143
|
+
|
|
144
|
+
在对话里可通过 `$skill-name` 显式提及某个 skill(例如 `$doc-writing`)。
|
|
145
|
+
|
|
114
146
|
## 内置工具
|
|
115
147
|
|
|
116
148
|
- `exec_command` / `write_stdin`:执行命令(默认执行工具族)
|
|
@@ -139,15 +171,13 @@ memo mcp remove remote
|
|
|
139
171
|
|
|
140
172
|
## 会话历史
|
|
141
173
|
|
|
142
|
-
所有会话自动保存到 `~/.memo/sessions
|
|
174
|
+
所有会话自动保存到 `~/.memo/sessions/`,按项目绝对路径分层组织:
|
|
143
175
|
|
|
144
176
|
```
|
|
145
177
|
~/.memo/sessions/
|
|
146
|
-
└──
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
├── rollout-2026-02-08T02-21-18-abc123.jsonl
|
|
150
|
-
└── rollout-2026-02-08T02-42-09-def456.jsonl
|
|
178
|
+
└── -Users-mcell-Desktop-workspace-memo-code/
|
|
179
|
+
├── 2026-02-08T02-21-18-abc123.jsonl
|
|
180
|
+
└── 2026-02-08T02-42-09-def456.jsonl
|
|
151
181
|
```
|
|
152
182
|
|
|
153
183
|
JSONL 格式便于分析和调试。
|
|
@@ -171,6 +201,7 @@ pnpm run build # 生成 dist/index.js
|
|
|
171
201
|
|
|
172
202
|
```bash
|
|
173
203
|
pnpm test # 全量测试
|
|
204
|
+
pnpm run test:coverage # 带覆盖率测试(阈值:>=70%)
|
|
174
205
|
pnpm run test:core # 测试 core 包
|
|
175
206
|
pnpm run test:tools # 测试 tools 包
|
|
176
207
|
pnpm run test:tui # 测试 tui 包
|
|
@@ -200,6 +231,7 @@ memo-cli/
|
|
|
200
231
|
- `/help`:显示帮助与快捷键说明。
|
|
201
232
|
- `/models`:列出现有 Provider/Model,回车切换;支持直接 `/models deepseek` 精确选择。
|
|
202
233
|
- `/context`:弹出 80k/120k/150k/200k 选项并立即设置上限。
|
|
234
|
+
- `/review <prNumber>`:执行 GitHub PR 审查并直接发布评论(优先使用已激活的 GitHub MCP,失败时回退 `gh` CLI)。
|
|
203
235
|
- `/mcp`:查看当前会话加载的 MCP 服务器配置。
|
|
204
236
|
- `resume` 历史:输入 `resume` 查看并加载本目录的历史会话。
|
|
205
237
|
- 退出与清屏:`exit` / `/exit`,`Ctrl+L` 新会话,`Esc Esc` 取消运行或清空输入。
|