Skip to content
Merged

Scan #32

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 32 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

<p align="center">
<strong>A local-first control center for AI extensions.</strong><br />
Use, review, and discover Skills, MCP servers, slash commands, and CLI tools across agent harnesses.
Use, review, scan, and discover Skills, MCP servers, slash commands, and CLI tools across agent harnesses.
</p>

<p align="center">
Expand All @@ -30,12 +30,14 @@ AI extensions are scattered across harness-specific folders, MCP config files, s
|---|---|
| **In use** | Skill Manager controls the item and can enable or disable it across harnesses. |
| **Needs review** | Skill Manager found local state, config differences, or inventory issues that need a decision. |
| **Scan** | Run LLM-backed security checks against Skills before trusting them. |
| **Discover** | Browse marketplaces and preview external tools. |

## What you can do

- See what is in use, what needs review, and where extensions are active.
- Adopt local Skills into one shared inventory, then enable or disable them per harness.
- Scan Skills with a saved LLM provider configuration and review findings before use.
- Install or adopt MCP server configs, resolve differences, and enable them where supported.
- Manage reusable slash commands once, then sync them to supported harnesses.
- Discover Skills, MCP servers, and preview-only CLI tools from marketplace sources.
Expand All @@ -61,6 +63,23 @@ Typical flow:

![skill-market-skill-matrxi](./assets/skill-manager-skill-matrix.png)

### Skill scanning

Scan Skills with an LLM-backed security review before you rely on them.

Typical flow:

1. Add and validate an LLM scan configuration.
2. Switch Skills in use to the Scan view.
3. Run a scan for one Skill, selected Skills, or the full visible list.
4. Review severity, findings, snippets, and remediation guidance.

![skill-manager-scan-view](./assets/skill-manager-scan-view.svg)

Scan configurations are managed separately so you can save multiple providers, choose one active configuration, and keep API keys masked in list views.

![skill-manager-scan-config](./assets/skill-manager-scan-config.svg)

### MCP servers

Use MCP servers as one normalized config that can be written into each harness shape.
Expand Down Expand Up @@ -166,6 +185,8 @@ Actions that can change local state include:
- enabling or disabling a skill for a harness
- updating a source-backed skill
- removing or deleting a skill
- creating, updating, validating, activating, or deleting an LLM scan configuration
- running a Skill scan, which sends selected Skill context to the configured LLM provider
- installing an MCP server into a source harness
- adopting an existing MCP config
- enabling, disabling, resolving, or uninstalling an MCP server
Expand All @@ -182,6 +203,14 @@ Before adoption, each harness points at its own local skill folder. After adopti

![skill-market-overview](./assets/skill-manager-skill-unification.svg)

### Skill scans

Skill scans build a bounded prompt context from `SKILL.md`, manifest metadata, script and config files, and files referenced by the Skill instructions. Secret-bearing files such as `.env`, private keys, certificates, and credential files are excluded from the prompt context, and large files are skipped when they exceed scanner limits.

The scanner uses the active saved LLM configuration first. If none is active, it can fall back to supported environment variables such as `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `OPENROUTER_API_KEY`, `GEMINI_API_KEY`, `GOOGLE_API_KEY`, `AZURE_OPENAI_API_KEY`, `AWS_BEDROCK_MODEL`, or `OLLAMA_HOST`.

Scan reports show whether the Skill is safe, the maximum severity, findings, locations, snippets, and remediation text. The frontend caches completed reports in browser local storage so recent results remain visible after navigation.

### MCP servers

MCP servers are stored as normalized Skill Manager records, then translated into the config shape each harness expects:
Expand Down Expand Up @@ -222,6 +251,7 @@ Useful macOS paths:
- slash command library: `~/Library/Application Support/skill-manager/slash-commands/commands`
- slash command sync state: `~/Library/Application Support/skill-manager/slash-commands/sync-state.json`
- marketplace cache: `~/Library/Application Support/skill-manager/marketplace`
- app database and LLM scan configs: `~/Library/Application Support/skill-manager/skill-manager.db`
- app settings: `~/Library/Application Support/skill-manager/settings.json`

Useful Linux paths:
Expand All @@ -231,6 +261,7 @@ Useful Linux paths:
- slash command library: `${XDG_DATA_HOME:-~/.local/share}/skill-manager/slash-commands/commands`
- slash command sync state: `${XDG_DATA_HOME:-~/.local/share}/skill-manager/slash-commands/sync-state.json`
- marketplace cache: `${XDG_DATA_HOME:-~/.local/share}/skill-manager/marketplace`
- app database and LLM scan configs: `${XDG_DATA_HOME:-~/.local/share}/skill-manager/skill-manager.db`
- app settings: `${XDG_CONFIG_HOME:-~/.config}/skill-manager/settings.json`

Most users do not need to change these locations. If you manage skills in a custom environment, you can override individual skill roots with environment variables.
Expand Down
33 changes: 32 additions & 1 deletion README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

<p align="center">
<strong>面向 AI 扩展的本地优先控制中心。</strong><br />
在不同 agent harness 中统一使用、确认和发现 Skill、MCP 服务器、slash command 与 CLI 工具。
在不同 agent harness 中统一使用、确认、扫描和发现 Skill、MCP 服务器、slash command 与 CLI 工具。
</p>

<p align="center">
Expand All @@ -30,12 +30,14 @@ AI 扩展通常分散在各个 harness 自己的文件夹、MCP 配置文件、s
|---|---|
| **使用中** | Skill Manager 正在控制此项目,并可在不同 harness 中启用或停用。 |
| **待确认** | Skill Manager 发现了本地状态、配置差异或库存问题,需要你先做决定。 |
| **扫描** | 在信任某个 Skill 之前,使用 LLM 驱动的安全检查进行确认。 |
| **发现** | 浏览商城,并预览外部工具。 |

## 你可以做什么

- 查看哪些扩展正在使用、哪些需要确认,以及它们在哪些 harness 中启用。
- 将本地 Skill 采用到共享库存,再按 harness 启用或停用。
- 使用保存的 LLM provider 配置扫描 Skill,并在使用前查看发现项。
- 安装或采用 MCP 服务器配置,解决配置差异,并写入支持的 harness。
- 统一管理可复用的 slash command,并同步到支持的 harness。
- 从商城来源发现 Skill、MCP 服务器,以及仅预览的 CLI 工具。
Expand All @@ -61,6 +63,23 @@ AI 扩展通常分散在各个 harness 自己的文件夹、MCP 配置文件、s

![skill-market-skill-matrxi](./assets/skill-manager-skill-matrix.png)

### Skill 扫描

在依赖某个 Skill 之前,可以使用 LLM 驱动的安全确认流程先扫描它。

典型流程:

1. 添加并验证一个 LLM 扫描配置。
2. 将使用中的 Skill 切换到扫描视图。
3. 对单个 Skill、已选 Skill 或当前可见列表运行扫描。
4. 查看严重程度、发现项、代码片段和修复建议。

![skill-manager-scan-view](./assets/skill-manager-scan-view.svg)

扫描配置单独管理,因此你可以保存多个 provider,选择一个当前配置,并且在列表中只显示隐藏后的 API Key。

![skill-manager-scan-config](./assets/skill-manager-scan-config.svg)

### MCP 服务器

MCP 服务器会被规范化为 Skill Manager 记录,再转换为各 harness 期望的配置形状。
Expand Down Expand Up @@ -136,6 +155,8 @@ Skill Manager 是本地配置管理工具。它在你的机器上运行,并读
- 为某个 harness 启用或停用 Skill
- 更新带来源信息的 Skill
- 移除或删除 Skill
- 创建、更新、验证、激活或删除 LLM 扫描配置
- 运行 Skill 扫描,这会将所选 Skill 上下文发送给已配置的 LLM provider
- 将 MCP 服务器安装到来源 harness
- 采用已有 MCP 配置
- 启用、停用、解决差异或卸载 MCP 服务器
Expand All @@ -152,6 +173,14 @@ Skill Manager 是本地配置管理工具。它在你的机器上运行,并读

![skill-market-overview](./assets/skill-manager-skill-unification.svg)

### Skill 扫描

Skill 扫描会从 `SKILL.md`、manifest 元数据、脚本与配置文件,以及 Skill 指令引用的文件中构建受限 prompt 上下文。`.env`、私钥、证书和 credential 文件等可能包含 secret 的文件会从 prompt 上下文中排除;超过扫描器限制的大文件也会被跳过。

扫描器优先使用当前激活的已保存 LLM 配置。如果没有激活配置,也可以回退到支持的环境变量,例如 `ANTHROPIC_API_KEY`、`OPENAI_API_KEY`、`OPENROUTER_API_KEY`、`GEMINI_API_KEY`、`GOOGLE_API_KEY`、`AZURE_OPENAI_API_KEY`、`AWS_BEDROCK_MODEL` 或 `OLLAMA_HOST`。

扫描报告会展示 Skill 是否安全、最高严重程度、发现项、位置、片段和修复建议。前端会将已完成报告缓存在浏览器 localStorage 中,因此最近结果在页面切换后仍可查看。

### MCP 服务器

MCP 服务器以规范化 Skill Manager 记录保存,再转换为每个 harness 需要的配置形状:
Expand Down Expand Up @@ -192,6 +221,7 @@ CLI marketplace 条目仅用于预览。
- slash command 库:`~/Library/Application Support/skill-manager/slash-commands/commands`
- slash command 同步状态:`~/Library/Application Support/skill-manager/slash-commands/sync-state.json`
- 商城缓存:`~/Library/Application Support/skill-manager/marketplace`
- 应用数据库和 LLM 扫描配置:`~/Library/Application Support/skill-manager/skill-manager.db`
- 应用设置:`~/Library/Application Support/skill-manager/settings.json`

常用 Linux 路径:
Expand All @@ -201,6 +231,7 @@ CLI marketplace 条目仅用于预览。
- slash command 库:`${XDG_DATA_HOME:-~/.local/share}/skill-manager/slash-commands/commands`
- slash command 同步状态:`${XDG_DATA_HOME:-~/.local/share}/skill-manager/slash-commands/sync-state.json`
- 商城缓存:`${XDG_DATA_HOME:-~/.local/share}/skill-manager/marketplace`
- 应用数据库和 LLM 扫描配置:`${XDG_DATA_HOME:-~/.local/share}/skill-manager/skill-manager.db`
- 应用设置:`${XDG_CONFIG_HOME:-~/.config}/skill-manager/settings.json`

大多数用户不需要修改这些位置。如果你在自定义环境中管理 Skill,可以用环境变量覆盖单个 Skill 根目录。
Expand Down
81 changes: 81 additions & 0 deletions assets/skill-manager-scan-config.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading