
之前分享过很多次关于技能管理的想法,核心还是软链接。本来也开发了差不多了,就差 CLI(agent友好)和桌面端这两步,最近把这两步补齐了。

它是什么
Skill Port 维护一个本地 Hub (~/.skill-port),所有 Skill 只在这里存一份。然后通过 enable 操作,把 Skill 暴露到需要它的项目或全局 Agent 目录。同一个 Hub 可以服务多个项目,CLI 和 Desktop 共享同一套数据和 schema。
- Desktop(Electron 应用)给人用:选目录、点按钮、看状态。
- CLI 给 Agent 用:装好以后,你可以直接让 Agent 替你管理。CLI 安装时会自动向
~/.agents/skills/skill-port注册一个内置管理 Skill,兼容的 Agent 在新会话中就能发现sklp,无需你手动修改AGENTS.md。
实际效果


CLI 安装之后桌面端的效果: 
设计思路
核心模型:Hub 是唯一的真相来源
Skill Port 有三个关键概念:
| 概念 | 是什么 | 示例 |
|---|---|---|
| Hub | 所有 Skill 的物理存储(~/.skill-port),基于 SQLite 维护状态 |
一份 baoyu-translate 只存在于 Hub |
| Enablement | 将 Skill 暴露到目标的动作,项目级或全局 | sklp enable baoyu-translate --global |
| Source | Skill 的来源:Git 仓库、本地目录复制(install)、本地目录链接(link) | sklp install https://github.com/owner/skill.git |

Hub 不扫描文件系统来发现 Skill。每个 Skill 必须显式地 install 或 link 到 Hub,再显式地 enable 到目标。这个设计来自一个明确的选择:显式优于隐式。Agent Skill 目录是共享资源,如果你允许自动发现,就无法保证每个入口都有明确的所有者和可追溯的来源。
install vs link:两个不同的所有权模型
当你想把一个本地 Skill 加入 Hub 时,有两种模式:
sklp install ~/skills/my-skill:把 Skill 目录复制到 Hub 内。Hub 成为这份 Skill 的唯一管理者。适合不需要再改动的 Skill,或者来自 Git 仓库的 Skill。sklp link ~/skills/my-skill:在 Hub 中创建一个指向原始目录的符号链接。你继续在原目录维护 Skill,Hub 只负责分发。适合你正在开发的 Skill,或者你希望保留外部所有权的 Skill。
这个区分直接关系到卸载行为:sklp uninstall 会清空 Hub 内的复制 Skill,但永远不会删除 Hub 外的 linked 源目录。

project vs global:两种分发范围
- 项目级 (
sklp enable my-skill):Skill 启用到<project>/.agents/skills/。只对该项目生效。 - 全局 (
sklp enable my-skill --global):Skill 启用到~/.agents/skills/。所有项目都能用。
两者的启用入口由 Hub 的 enablement 记录追踪。删除 Skill 时(sklp remove --force),Skill Port 只移除自己管理的入口;~/.agents/skills/ 中非 Skill Port 创建的文件和链接不会被触碰。

Desktop 如何复用 CLI 核心
Desktop 不是 CLI 的 GUI 外壳------它不解析 stdout。Desktop 使用 Electron 43,渲染进程完全沙箱化(无 Node、无文件系统、无原始 IPC),通过受限 preload 将请求发到主进程,再由独立的 utility 进程调用 DesktopSkillPort 应用层 facade。所有持久化行为最终走与 CLI 相同的 SkillPort 服务类,共享同一 Hub 和 SQLite schema。
这意味着你可以在 CLI 里装一个 Skill,用 Desktop 启用它,反过来也完全兼容。

快速开始
环境要求:Node.js ≥ 22.16。从 Git 仓库安装 Skill 时还需要系统 Git。
让 Agent 帮你装
把下面这句话发给能够执行终端命令的编码 Agent:
参考 github.com/kanelogger/... 帮我全局安装 Skill Port CLI。先检查 Node.js 是否满足版本要求,再执行
sklp --version和sklp agent setup验证安装;遇到权限或 PATH 问题时先报告,不要自行绕过。
桌面端

