@geminilight/mindos 0.5.43 → 0.5.45
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 +42 -257
- package/README_zh.md +43 -261
- package/app/app/api/ask-sessions/route.ts +6 -4
- package/app/app/api/update-status/route.ts +19 -0
- package/app/components/CreateSpaceModal.tsx +87 -13
- package/app/components/DirPicker.tsx +2 -1
- package/app/components/GuideCard.tsx +38 -26
- package/app/components/HomeContent.tsx +6 -13
- package/app/components/ask/AskContent.tsx +10 -3
- package/app/components/ask/SessionHistory.tsx +39 -3
- package/app/components/explore/ExploreContent.tsx +50 -19
- package/app/components/explore/use-cases.ts +41 -13
- package/app/components/panels/DiscoverPanel.tsx +89 -99
- package/app/components/settings/SettingsContent.tsx +1 -1
- package/app/components/settings/UpdateTab.tsx +145 -28
- package/app/hooks/useAskSession.ts +24 -0
- package/app/lib/i18n-en.ts +25 -4
- package/app/lib/i18n-zh.ts +25 -4
- package/app/lib/utils.ts +11 -0
- package/bin/cli.js +87 -15
- package/bin/lib/startup.js +4 -0
- package/bin/lib/update-status.js +115 -0
- package/package.json +1 -1
- package/scripts/fix-postcss-deps.cjs +4 -2
package/README.md
CHANGED
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
<p align="center">
|
|
16
16
|
<a href="https://tianfuwang.tech/MindOS"><img src="https://img.shields.io/badge/Website-MindOS-0ea5e9.svg?style=for-the-badge" alt="Website"></a>
|
|
17
17
|
<a href="https://www.npmjs.com/package/@geminilight/mindos"><img src="https://img.shields.io/npm/v/@geminilight/mindos.svg?style=for-the-badge&color=f59e0b" alt="npm version"></a>
|
|
18
|
+
<a href="https://www.npmjs.com/package/@geminilight/mindos"><img src="https://img.shields.io/npm/dw/@geminilight/mindos.svg?style=for-the-badge&color=10b981" alt="npm downloads"></a>
|
|
19
|
+
<a href="https://github.com/GeminiLight/MindOS/stargazers"><img src="https://img.shields.io/github/stars/GeminiLight/MindOS.svg?style=for-the-badge&color=f59e0b" alt="GitHub Stars"></a>
|
|
18
20
|
<a href="#wechat"><img src="https://img.shields.io/badge/WeChat-Group-07C160.svg?style=for-the-badge&logo=wechat&logoColor=white" alt="WeChat"></a>
|
|
19
21
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-6366f1.svg?style=for-the-badge" alt="MIT License"></a>
|
|
20
22
|
</p>
|
|
@@ -84,14 +86,15 @@ All that experience from your conversations — gone the moment you close the wi
|
|
|
84
86
|
|
|
85
87
|
- **Security**: Bearer Token auth, path sandboxing, INSTRUCTION.md write-protection, atomic writes.
|
|
86
88
|
- **Knowledge Graph**: dynamically parses and visualizes inter-file references and dependencies.
|
|
89
|
+
- **Backlinks View**: displays all files that reference the current file, helping you understand how a note fits into the knowledge network.
|
|
87
90
|
- **Git Time Machine**: Git auto-sync (commit/push/pull), records every edit by both humans and Agents. One-click rollback, cross-device sync.
|
|
91
|
+
- **Desktop App**: native macOS/Windows/Linux app with system tray, auto-start, and local process management.
|
|
88
92
|
|
|
89
93
|
<details>
|
|
90
94
|
<summary><strong>Coming Soon</strong></summary>
|
|
91
95
|
|
|
92
96
|
- [ ] ACP (Agent Communication Protocol): connect external Agents (e.g., Claude Code, Cursor) and turn the knowledge base into a multi-Agent collaboration hub
|
|
93
97
|
- [ ] Deep RAG integration: retrieval-augmented generation grounded in your knowledge base for more accurate, context-aware AI responses
|
|
94
|
-
- [ ] Backlinks View: display all files that reference the current file, helping you understand how a note fits into the knowledge network
|
|
95
98
|
- [ ] Agent Inspector: render Agent operation logs as a filterable timeline to audit every tool call in detail
|
|
96
99
|
|
|
97
100
|
</details>
|
|
@@ -131,84 +134,10 @@ npm link # registers the `mindos` command globally
|
|
|
131
134
|
mindos onboard
|
|
132
135
|
```
|
|
133
136
|
|
|
134
|
-
The setup wizard
|
|
135
|
-
1. Knowledge base path → default `~/MindOS`
|
|
136
|
-
2. Choose template (en / zh / empty / custom)
|
|
137
|
-
3. Ports (Web UI + MCP)
|
|
138
|
-
4. Auth token (auto-generated or passphrase-seeded)
|
|
139
|
-
5. Web UI password (optional)
|
|
140
|
-
6. AI Provider (Anthropic / OpenAI) + API Key — or **skip** to configure later via `mindos config set`
|
|
141
|
-
7. Start mode — **Background service** (recommended, auto-starts on boot) or Foreground
|
|
142
|
-
|
|
143
|
-
Config is saved to `~/.mindos/config.json` automatically.
|
|
144
|
-
|
|
145
|
-
<!-- For Agents: Before running setup, if the user has not provided LLM configuration, ask them:
|
|
146
|
-
1. AI Provider — `anthropic` or `openai` (compatible)?
|
|
147
|
-
2. API Key — the key for the chosen provider
|
|
148
|
-
3. Custom Base URL? — only needed for proxies or OpenAI-compatible endpoints; skip if using official API
|
|
149
|
-
4. Model ID — or use the default
|
|
150
|
-
Or skip the wizard and edit `~/.mindos/config.json` manually (see Config Reference below).
|
|
151
|
-
-->
|
|
152
|
-
|
|
153
|
-
<details>
|
|
154
|
-
<summary>Config Reference (~/.mindos/config.json)</summary>
|
|
155
|
-
|
|
156
|
-
```json
|
|
157
|
-
{
|
|
158
|
-
"mindRoot": "~/MindOS",
|
|
159
|
-
"port": 3456,
|
|
160
|
-
"mcpPort": 8781,
|
|
161
|
-
"authToken": "",
|
|
162
|
-
"webPassword": "",
|
|
163
|
-
"startMode": "daemon",
|
|
164
|
-
"ai": {
|
|
165
|
-
"provider": "anthropic",
|
|
166
|
-
"providers": {
|
|
167
|
-
"anthropic": { "apiKey": "sk-ant-...", "model": "claude-sonnet-4-6" },
|
|
168
|
-
"openai": { "apiKey": "sk-...", "model": "gpt-5.4", "baseUrl": "" }
|
|
169
|
-
}
|
|
170
|
-
},
|
|
171
|
-
"sync": {
|
|
172
|
-
"enabled": true,
|
|
173
|
-
"provider": "git",
|
|
174
|
-
"remote": "origin",
|
|
175
|
-
"branch": "main",
|
|
176
|
-
"autoCommitInterval": 30,
|
|
177
|
-
"autoPullInterval": 300
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
| Field | Default | Description |
|
|
183
|
-
| :--- | :--- | :--- |
|
|
184
|
-
| `mindRoot` | `~/MindOS` | **Required**. Absolute path to the knowledge base root. |
|
|
185
|
-
| `port` | `3456` | Optional. Web app port. |
|
|
186
|
-
| `mcpPort` | `8781` | Optional. MCP server port. |
|
|
187
|
-
| `authToken` | — | Optional. Protects App `/api/*` and MCP `/mcp` with bearer token auth. For Agent / MCP clients. Recommended when exposed to a network. |
|
|
188
|
-
| `webPassword` | — | Optional. Protects the web UI with a login page. For browser access. Independent from `authToken`. |
|
|
189
|
-
| `startMode` | `start` | Start mode: `daemon` (background service, auto-starts on boot), `start` (foreground), or `dev`. |
|
|
190
|
-
| `ai.provider` | `anthropic` | Active provider: `anthropic` or `openai`. |
|
|
191
|
-
| `ai.providers.anthropic.apiKey` | — | Anthropic API key. |
|
|
192
|
-
| `ai.providers.anthropic.model` | `claude-sonnet-4-6` | Anthropic model ID. |
|
|
193
|
-
| `ai.providers.openai.apiKey` | — | OpenAI API key. |
|
|
194
|
-
| `ai.providers.openai.model` | `gpt-5.4` | OpenAI model ID. |
|
|
195
|
-
| `ai.providers.openai.baseUrl` | — | Optional. Custom endpoint for proxy or OpenAI-compatible APIs. |
|
|
196
|
-
| `sync.enabled` | `false` | Enable/disable automatic Git sync. |
|
|
197
|
-
| `sync.provider` | `git` | Sync provider (currently only `git`). |
|
|
198
|
-
| `sync.remote` | `origin` | Git remote name. |
|
|
199
|
-
| `sync.branch` | `main` | Git branch to sync. |
|
|
200
|
-
| `sync.autoCommitInterval` | `30` | Seconds after file change to auto-commit+push. |
|
|
201
|
-
| `sync.autoPullInterval` | `300` | Seconds between auto-pull from remote. |
|
|
202
|
-
|
|
203
|
-
Multiple providers can be configured simultaneously — switch between them by changing `ai.provider`. Shell env vars (`ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, etc.) take precedence over config file values.
|
|
204
|
-
|
|
205
|
-
</details>
|
|
206
|
-
|
|
207
|
-
> [!NOTE]
|
|
208
|
-
> If you want the MindOS GUI to be reachable from other devices, make sure the port is open in firewall/security-group settings and bound to an accessible host/network interface.
|
|
137
|
+
The setup wizard guides you through knowledge base path, template, ports, auth, AI provider, and start mode — all with sensible defaults. Config is saved to `~/.mindos/config.json`. See **[docs/en/configuration.md](docs/en/configuration.md)** for all fields.
|
|
209
138
|
|
|
210
139
|
> [!TIP]
|
|
211
|
-
>
|
|
140
|
+
> Choose "Background service" during onboard for auto-start on boot. Run `mindos update` anytime to upgrade.
|
|
212
141
|
|
|
213
142
|
Open the Web UI in your browser:
|
|
214
143
|
|
|
@@ -228,124 +157,24 @@ mindos open
|
|
|
228
157
|
|
|
229
158
|
### 4. Make Any Agent Ready (MCP + Skills)
|
|
230
159
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
<!-- For Agents: Register MindOS MCP as global (user-level) config by default, so all projects share the same knowledge base. -->
|
|
234
|
-
|
|
235
|
-
Run one command to auto-install MCP config into your Agent:
|
|
160
|
+
**MCP** (connection) — one command to auto-install:
|
|
236
161
|
|
|
237
162
|
```bash
|
|
238
|
-
mindos mcp install
|
|
163
|
+
mindos mcp install # interactive
|
|
164
|
+
mindos mcp install -g -y # one-shot, global scope
|
|
239
165
|
```
|
|
240
166
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
**Local (Agent and MindOS on the same machine)**
|
|
244
|
-
|
|
245
|
-
Use `stdio` transport — no server process needed, most reliable:
|
|
167
|
+
**Skills** (workflow) — install one based on your language:
|
|
246
168
|
|
|
247
169
|
```bash
|
|
248
|
-
#
|
|
249
|
-
mindos
|
|
250
|
-
|
|
251
|
-
# One-shot, global scope (shared across all projects)
|
|
252
|
-
mindos mcp install -g -y
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
**Remote (Agent on a different machine)**
|
|
256
|
-
|
|
257
|
-
Use `http` transport — MindOS must be running (`mindos start`) on the remote machine:
|
|
258
|
-
|
|
259
|
-
```bash
|
|
260
|
-
mindos mcp install--transport http --url http://<server-ip>:8781/mcp --token your-token -g
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
> [!NOTE]
|
|
264
|
-
> For remote access, ensure port `8781` is open in your firewall/security-group.
|
|
265
|
-
|
|
266
|
-
> Add `-g` to install globally — MCP config is shared across all projects instead of the current directory only.
|
|
267
|
-
|
|
268
|
-
> The MCP port defaults to `8781`. To use a different port, run `mindos onboard` and set `mcpPort`.
|
|
269
|
-
|
|
270
|
-
<details>
|
|
271
|
-
<summary>Manual config (JSON snippets)</summary>
|
|
272
|
-
|
|
273
|
-
**Local via stdio** (no server process needed):
|
|
274
|
-
|
|
275
|
-
```json
|
|
276
|
-
{
|
|
277
|
-
"mcpServers": {
|
|
278
|
-
"mindos": {
|
|
279
|
-
"type": "stdio",
|
|
280
|
-
"command": "mindos",
|
|
281
|
-
"args": ["mcp"],
|
|
282
|
-
"env": { "MCP_TRANSPORT": "stdio" }
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
**Local via URL:**
|
|
289
|
-
|
|
290
|
-
```json
|
|
291
|
-
{
|
|
292
|
-
"mcpServers": {
|
|
293
|
-
"mindos": {
|
|
294
|
-
"url": "http://localhost:8781/mcp",
|
|
295
|
-
"headers": { "Authorization": "Bearer your-token" }
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
**Remote:**
|
|
302
|
-
|
|
303
|
-
```json
|
|
304
|
-
{
|
|
305
|
-
"mcpServers": {
|
|
306
|
-
"mindos": {
|
|
307
|
-
"url": "http://<server-ip>:8781/mcp",
|
|
308
|
-
"headers": { "Authorization": "Bearer your-token" }
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
}
|
|
170
|
+
npx skills add https://github.com/GeminiLight/MindOS --skill mindos -g -y # English
|
|
171
|
+
npx skills add https://github.com/GeminiLight/MindOS --skill mindos-zh -g -y # Chinese
|
|
312
172
|
```
|
|
313
173
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
</details>
|
|
317
|
-
|
|
318
|
-
#### 4.2 Install MindOS Skills
|
|
319
|
-
|
|
320
|
-
| Skill | Description |
|
|
321
|
-
|-------|-------------|
|
|
322
|
-
| `mindos` | Knowledge base operation guide (English) — read/write notes, search, manage SOPs, maintain Profiles |
|
|
323
|
-
| `mindos-zh` | Knowledge base operation guide (Chinese) — same capabilities, Chinese interface |
|
|
324
|
-
|
|
325
|
-
Install one skill only (choose based on your preferred language):
|
|
326
|
-
|
|
327
|
-
```bash
|
|
328
|
-
# English
|
|
329
|
-
npx skills add https://github.com/GeminiLight/MindOS --skill mindos -g -y
|
|
330
|
-
|
|
331
|
-
# Chinese (optional)
|
|
332
|
-
npx skills add https://github.com/GeminiLight/MindOS --skill mindos-zh -g -y
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
MCP = connection capability, Skills = workflow capability. Enabling both gives the complete MindOS agent experience.
|
|
336
|
-
|
|
337
|
-
#### 4.3 Common Pitfalls
|
|
338
|
-
|
|
339
|
-
- Only MCP, no Skills: tools are callable, but best-practice workflows are missing.
|
|
340
|
-
- Only Skills, no MCP: workflow guidance exists, but the Agent cannot operate your local knowledge base.
|
|
341
|
-
- `MIND_ROOT` is not an absolute path: MCP tool calls will fail.
|
|
342
|
-
- No `authToken` set: your API and MCP server are exposed on the network without protection.
|
|
343
|
-
- No `webPassword` set: anyone who can reach your server can access the web UI.
|
|
174
|
+
> For remote access, manual JSON config, and common pitfalls, see **[docs/en/supported-agents.md](docs/en/supported-agents.md)**.
|
|
344
175
|
|
|
345
176
|
## ⚙️ How It Works
|
|
346
177
|
|
|
347
|
-
A fleeting idea becomes shared intelligence through three interlocking loops:
|
|
348
|
-
|
|
349
178
|
```mermaid
|
|
350
179
|
graph LR
|
|
351
180
|
H["👤 Human<br/><sub>thinks · reviews · evolves</sub>"]
|
|
@@ -367,42 +196,30 @@ graph LR
|
|
|
367
196
|
|
|
368
197
|
> **Both sides evolve.** Humans gain new insights from accumulated knowledge; Agents extract SOPs and get smarter. MindOS sits at the center — the shared second brain that grows with every interaction.
|
|
369
198
|
|
|
370
|
-
**Collaboration Loop (Human + Multi-Agent)**
|
|
371
|
-
|
|
372
|
-
1. Human reviews and updates notes/SOPs in the MindOS GUI (single source of truth).
|
|
373
|
-
2. Other Agent clients (OpenClaw, Claude Code, Cursor, etc.) connect through MCP and read the same memory/context.
|
|
374
|
-
3. With Skills enabled, those Agents execute workflows and SOP tasks in a guided way.
|
|
375
|
-
4. Execution results are written back to MindOS so humans can audit and refine continuously.
|
|
376
|
-
|
|
377
|
-
**Who is this for?**
|
|
378
|
-
|
|
379
|
-
- **Independent Developer** — Store personal SOPs, tech stack preferences, and project context in MindOS. Any Agent instantly inherits your work habits.
|
|
380
|
-
- **Knowledge Worker** — Manage research materials with bi-directional links. Your AI assistant answers questions grounded in your full context, not generic knowledge.
|
|
381
|
-
- **Team Collaboration** — Share a MindOS knowledge base across team members as a single source of truth. Humans and Agents read from the same playbook, keeping everyone aligned.
|
|
382
|
-
- **Automated Agent Operations** — Write standard workflows as Agent-Ready documents. Agents execute directly, humans audit the results.
|
|
383
|
-
|
|
384
199
|
---
|
|
385
200
|
|
|
386
201
|
## 🤝 Supported Agents
|
|
387
202
|
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
|
391
|
-
|
|
392
|
-
|
|
|
393
|
-
|
|
|
394
|
-
|
|
|
395
|
-
|
|
|
396
|
-
|
|
|
397
|
-
|
|
|
398
|
-
|
|
|
399
|
-
|
|
|
400
|
-
|
|
|
401
|
-
|
|
|
203
|
+
> Full list with MCP config paths and manual setup: **[docs/en/supported-agents.md](docs/en/supported-agents.md)**
|
|
204
|
+
|
|
205
|
+
| Agent | MCP | Skills |
|
|
206
|
+
|:------|:---:|:------:|
|
|
207
|
+
| MindOS Agent | ✅ | ✅ |
|
|
208
|
+
| OpenClaw | ✅ | ✅ |
|
|
209
|
+
| Claude Desktop / Code | ✅ | ✅ |
|
|
210
|
+
| CodeBuddy | ✅ | ✅ |
|
|
211
|
+
| Cursor | ✅ | ✅ |
|
|
212
|
+
| Windsurf | ✅ | ✅ |
|
|
213
|
+
| Cline | ✅ | ✅ |
|
|
214
|
+
| Trae | ✅ | ✅ |
|
|
215
|
+
| Gemini CLI | ✅ | ✅ |
|
|
216
|
+
| GitHub Copilot | ✅ | ✅ |
|
|
217
|
+
| iFlow | ✅ | ✅ |
|
|
402
218
|
|
|
403
219
|
---
|
|
404
220
|
|
|
405
|
-
|
|
221
|
+
<details>
|
|
222
|
+
<summary><strong>📁 Project Structure</strong></summary>
|
|
406
223
|
|
|
407
224
|
```bash
|
|
408
225
|
MindOS/
|
|
@@ -420,56 +237,24 @@ MindOS/
|
|
|
420
237
|
└── mind/ # Your private knowledge base (default: ~/MindOS/mind, customizable on onboard)
|
|
421
238
|
```
|
|
422
239
|
|
|
423
|
-
|
|
240
|
+
</details>
|
|
424
241
|
|
|
425
242
|
## ⌨️ CLI Commands
|
|
426
243
|
|
|
244
|
+
> Full command reference: **[docs/en/cli-commands.md](docs/en/cli-commands.md)**
|
|
245
|
+
|
|
427
246
|
| Command | Description |
|
|
428
247
|
| :--- | :--- |
|
|
429
248
|
| `mindos onboard` | Interactive setup (config, template, start mode) |
|
|
430
|
-
| `mindos start` | Start app + MCP server (foreground
|
|
431
|
-
| `mindos start --daemon` |
|
|
432
|
-
| `mindos
|
|
433
|
-
| `mindos
|
|
434
|
-
| `mindos
|
|
435
|
-
| `mindos
|
|
436
|
-
| `mindos
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
| `mindos token` | Show auth token and per-agent MCP config snippets |
|
|
440
|
-
| `mindos sync` | Show sync status (alias for `sync status`) |
|
|
441
|
-
| `mindos sync init` | Interactive setup for Git remote sync |
|
|
442
|
-
| `mindos sync status` | Show sync status: last sync, unpushed commits, conflicts |
|
|
443
|
-
| `mindos sync now` | Manually trigger a full sync (commit + push + pull) |
|
|
444
|
-
| `mindos sync on` | Enable automatic sync |
|
|
445
|
-
| `mindos sync off` | Disable automatic sync |
|
|
446
|
-
| `mindos sync conflicts` | List unresolved conflict files |
|
|
447
|
-
| `mindos gateway install` | Install background service (systemd on Linux, LaunchAgent on macOS) |
|
|
448
|
-
| `mindos gateway uninstall` | Remove background service |
|
|
449
|
-
| `mindos gateway start` | Start the background service |
|
|
450
|
-
| `mindos gateway stop` | Stop the background service |
|
|
451
|
-
| `mindos gateway status` | Show background service status |
|
|
452
|
-
| `mindos gateway logs` | Tail background service logs |
|
|
453
|
-
| `mindos doctor` | Health check (config, ports, build, daemon status) |
|
|
454
|
-
| `mindos update` | Update MindOS to the latest version |
|
|
455
|
-
| `mindos uninstall` | Fully uninstall MindOS (stop, remove daemon, npm uninstall) |
|
|
456
|
-
| `mindos logs` | Tail service logs (`~/.mindos/mindos.log`) |
|
|
457
|
-
| `mindos config show` | Print current config (API keys masked) |
|
|
458
|
-
| `mindos config validate` | Validate config file |
|
|
459
|
-
| `mindos config set <key> <val>` | Update a single config field |
|
|
460
|
-
| `mindos` | Start using the mode saved in `~/.mindos/config.json` |
|
|
461
|
-
|
|
462
|
-
---
|
|
463
|
-
|
|
464
|
-
## ⌨️ Keyboard Shortcuts
|
|
465
|
-
|
|
466
|
-
| Shortcut | Function |
|
|
467
|
-
| :--- | :--- |
|
|
468
|
-
| `⌘ + K` | Global Search |
|
|
469
|
-
| `⌘ + /` | Call AI Assistant / Sidebar |
|
|
470
|
-
| `E` | Press `E` in View mode to quickly enter Edit mode |
|
|
471
|
-
| `⌘ + S` | Save current edit |
|
|
472
|
-
| `Esc` | Cancel edit / Close dialog |
|
|
249
|
+
| `mindos start` | Start app + MCP server (foreground) |
|
|
250
|
+
| `mindos start --daemon` | Start as background OS service |
|
|
251
|
+
| `mindos open` | Open Web UI in browser |
|
|
252
|
+
| `mindos mcp install` | Auto-install MCP config into your Agent |
|
|
253
|
+
| `mindos sync init` | Setup Git remote sync |
|
|
254
|
+
| `mindos update` | Update to latest version |
|
|
255
|
+
| `mindos doctor` | Health check |
|
|
256
|
+
|
|
257
|
+
**Keyboard shortcuts:** `⌘K` Search · `⌘/` AI Assistant · `E` Edit · `⌘S` Save · `Esc` Close
|
|
473
258
|
|
|
474
259
|
---
|
|
475
260
|
|