为 AI 编程助手打造的 Skill 桌面管理工具
Scroll三层结构:React 前端通过 Tauri IPC 与 Rust 后端通信。前端零文件系统、零网络访问,所有交互走类型化 Rust 命令;后端管理文件系统与外部服务。
覆盖 Skill 的完整生命周期,从发现、安装到编辑、维护。6 大功能模块提供完整管理体验。
3D 透视卡片轮播展示精选仓库,自动播放,悬停暂停。最近访问记录与推荐仓库列表,多个入口帮你发现感兴趣的 Skill。
支持批量勾选安装,右侧滑出预览面板即时查看 SKILL.md。支持强制刷新下载,ZIP 缓存 24 小时 TTL。
侧边栏分类(收藏/我的/仓库分组),网格与列表双视图,支持按名称、仓库、更新时间排序及关键字搜索。
四标签页:Markdown 渲染、文本编辑、可拖拽分屏、文件树浏览。YAML frontmatter 自动解析为信息表格,内含安全审计面板。
从零创建新 Skill,分屏实时预览编辑效果。自动写入 SSOT 目录并为选中 Agent 创建符号链接。
主题切换、语言运行时切换、Agent 路径可见性管理,以及 Skill 批量更新与重新扫描,所有配置集中管理。
三项核心原则定义了 Skill Zoo 的架构方向与实现边界。
缓存从文件系统重建,而非反过来。用户拖入文件夹即发现,rm 即感知。notify crate 实时监听变化,1.5 秒防抖后自动重建缓存并推送事件至前端。
~/.agents/skills/ 为规范存储。Agent 目录仅含符号链接,永不存放副本。远程安装复制至 SSOT 后链接;用户本地 Skill 保留原位不动,防止副本漂移。
前端零文件系统访问、零 GitHub API 调用、零 git 执行。所有外部交互通过 33 个类型化 Rust Tauri 命令完成。路径遍历严格验证,拒绝绝对路径与 ..。
从乐观更新到骨架屏,从 3D 动画到错误恢复,每个细节都经过精心设计。
onMutate: 取消进行中查询 → 快照当前缓存 → 立即修改 UI onError: 回滚至快照状态 onSettled: 失效相关查询,触发后台重新获取
以收藏为例:点击星标瞬间 UI 已更新,API 在后台发出。请求失败则快照回滚,用户看到的始终是正确状态。mutation 错误由 sonner toast 短暂弹出,不打断当前操作。
ZIP 24h TTL、SHA-256 按 mtime 缓存、React Query staleTime/gcTime,层层减少不必要网络请求。
骨架屏精确镜像真实布局:侧边栏 4 行变宽占位 + 6 个卡片,而非粗糙的全局 spinner。Hero 区域独立骨架屏防止布局偏移。
后端 notify crate 监听文件变化,1.5s 防抖后推送 events。用户在终端修改 Skill 文件后无需手动刷新。
即使重新扫描只需 200ms,加载状态也会持续至少 800ms,避免一闪而过,让每次操作都感觉真实可靠。
从多语言支持到异常恢复,从数据校验到路径防护,每一层都经过仔细考量。
翻译资源构建时编译为 JS 模块,不依赖运行时网络,离线也能即时切换语言。用户选择持久化到 localStorage,下次启动自动恢复。检测顺序:localStorage → 浏览器语言 → 默认英文。
渲染崩溃与数据错误走两套独立恢复路径。ErrorBoundary 兜底组件异常,显示"重试"按钮而非白屏;每个页面自行接管 API 失败,一个页面出错,其余照常可用。
SHA-256 校验文件完整性并去重,写入走原子路径防止崩溃丢数据。CSP 限制脚本来源,路径遍历严格验证,破坏性操作必经确认。ZIP 下载强制 50MB 上限,内置 skills.sh 安全审计面板。