Compare commits

...

11 Commits

Author SHA1 Message Date
siujamo c855a52b8c ci: use corepack instead of npm install -g pnpm
Deploy / build (push) Successful in 34s
Deploy / deploy-vercel (push) Successful in 57s
Deploy / deploy-onixbyte (push) Successful in 21s
Node 24 bundles pnpm via corepack, so npm install -g fails with EEXIST.
2026-06-23 11:39:25 +08:00
siujamo e2679393ee ci: add trailing newline when writing SSH key
Deploy / build (push) Failing after 12s
Deploy / deploy-vercel (push) Has been skipped
Deploy / deploy-onixbyte (push) Has been skipped
2026-06-23 11:37:50 +08:00
siujamo e072280560 ci: downgrade artifact actions to v3 for Gitea compatibility
Deploy / build (push) Successful in 36s
Deploy / deploy-vercel (push) Successful in 1m15s
Deploy / deploy-onixbyte (push) Failing after 16s
2026-06-23 10:56:48 +08:00
siujamo 34785e2abe ci: fix deploy-onixbyte — install rsync, pass key via env
Deploy / build (push) Failing after 33s
Deploy / deploy-vercel (push) Has been skipped
Deploy / deploy-onixbyte (push) Has been skipped
apt-get install rsync since the runner image lacks it. Pass DEPLOY_SSH_KEY through an env var so the secret value is not printed in the script block.
2026-06-23 10:54:16 +08:00
siujamo 3efbd77892 ci: merge deploy workflows into single file with three jobs
Deploy / build (push) Failing after 35s
Deploy / deploy-vercel (push) Has been skipped
Deploy / deploy-onixbyte (push) Has been skipped
Split into build, deploy-vercel, and deploy-onixbyte jobs sharing a build artifact.
2026-06-23 10:51:34 +08:00
siujamo 7c03c5d420 ci: add Gitea Actions workflow for deploying to onixbyte.cn
Deploy to OnixByte.cn / deploy (push) Failing after 36s
Deploy to Vercel / deploy (push) Successful in 1m20s
Sync doc_build/ to the onixbyte.cn server via rsync over SSH.
2026-06-23 10:50:32 +08:00
siujamo cf0658235d docs(blogs): add source attribution to driver backup guide
Deploy to Vercel / deploy (push) Successful in 1m17s
Add citation linking to the Douyin video tutorial that the guide is based on.
2026-06-23 10:47:18 +08:00
siujamo 458b22af3b docs(blogs): add Windows driver backup and restore guide
Deploy to Vercel / deploy (push) Successful in 1m35s
2026-06-23 10:29:19 +08:00
siujamo 40a6f65585 docs(projects): add Claude Code Skills Manager documentation
Deploy to Vercel / deploy (push) Successful in 2m43s
- Add en-gb and zh-hans project pages covering installation, usage, and marketplace creation
- Add CCSM entry to projects index under new Developer Tools section
2026-06-22 16:27:44 +08:00
siujamo 7de2a54f7f docs: update git repo url
Deploy to Vercel / deploy (push) Successful in 1m39s
2026-06-08 16:25:06 +08:00
siujamo 4c11976eb7 ci: replace GitHub Pages action with Gitea Actions for Vercel deployment
Deploy to Vercel / deploy (push) Successful in 1m24s
Switch from GitHub Pages deployments to Vercel via Gitea Actions CLI.
2026-06-04 13:02:30 +08:00
12 changed files with 696 additions and 64 deletions
+68
View File
@@ -0,0 +1,68 @@
name: Deploy
on:
push:
branches: [main]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 24
- name: Setup pnpm
run: corepack enable pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm build
- uses: actions/upload-artifact@v3
with:
name: doc-build
path: doc_build/
deploy-vercel:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
with:
name: doc-build
path: doc_build/
- name: Deploy to Vercel
run: npx vercel deploy --prod --yes --token ${{ secrets.VERCEL_TOKEN }}
env:
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
deploy-onixbyte:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v3
with:
name: doc-build
path: doc_build/
- name: Deploy to OnixByte.cn
env:
DEPLOY_KEY: ${{ secrets.DEPLOY_SSH_KEY }}
run: |
apt-get update -qq && apt-get install -y -qq rsync
mkdir -p ~/.ssh
printf '%s\n' "$DEPLOY_KEY" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan onixbyte.cn >> ~/.ssh/known_hosts
rsync -avz --delete doc_build/ root@onixbyte.cn:${{ vars.DEPLOY_PATH }}
-49
View File
@@ -1,49 +0,0 @@
name: Deploy to GitHub Pages
# This action is used to deploy site to GitHub Pages.
on:
push:
branches: [main]
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: pages
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: latest
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm build
- uses: actions/upload-pages-artifact@v3
with:
path: doc_build
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- uses: actions/deploy-pages@v4
@@ -0,0 +1,85 @@
---
title: Backup and Restore Windows Drivers When Reinstalling the System
tags:
- windows
- driver
- backup
- system-reinstall
- dism
author:
name: Zihlu Wang
email: real@zihluwang.me
---
import { Kbd } from "@rspress/core/theme"
One of the most tedious parts of reinstalling Windows is getting all the drivers back — graphics, network, audio, Bluetooth, touchpad, chipset — missing any one of them disrupts your workflow. Windows Update can fetch some automatically, but the versions are often outdated, and niche hardware drivers may not be found at all.
Fortunately, Windows' built-in DISM tool provides driver export and restore functionality. Spend one minute backing up before the reinstall, and you can restore every driver in a single command afterwards.
## Before Reinstalling: Back Up All Drivers
Open a terminal as **Administrator** (PowerShell or Command Prompt) and run:
```powershell
dism /online /export-driver /destination:D:\DriverBackup
```
Replace `D:\DriverBackup` with your desired backup path. It is best to save the backup to an external drive, USB stick, or a non-system partition so it survives the reformat.
The command enumerates every third-party driver installed on the system and exports them to the destination folder. The whole process typically completes within a minute. You should see output similar to:
```
The operation completed successfully.
```
Keep the backup directory safe, and you are ready to reinstall.
### What gets backed up?
The command exports **third-party drivers** — i.e. drivers that are not built into Windows. This covers graphics cards, audio, network adapters, chipsets, Bluetooth, card readers, and any other drivers you have installed over the lifetime of the system. Generic inbox drivers that ship with Windows are skipped, as they will be restored automatically after the reinstall.
## After Reinstalling: Restore All Drivers
### Method 1: One-command restore (recommended)
This is the most convenient approach. Open a terminal as **Administrator** and run:
```powershell
dism /online /add-driver /driver:D:\DriverBackup /recurse
```
The `/recurse` flag tells DISM to search all subfolders within the backup directory and install every driver it finds. **You must restart the computer** afterwards for the changes to take effect.
### Method 2: Via Device Manager (GUI)
If you prefer a graphical interface or only need to restore specific drivers:
1. Press <Kbd>Win</Kbd> + <Kbd>X</Kbd> and select **Device Manager**
2. Locate devices marked with a yellow exclamation mark (missing drivers)
3. Right-click the device and choose **Update driver**
4. Select **Browse my computer for drivers**
5. Point the path to your driver backup directory and tick **Include subfolders**
6. Click Next — Windows will search and install the matching driver
Repeat for each device until all are restored.
## Common Issues
### "The driver package could not be installed"
In rare cases, certain drivers may fail to install via DISM due to signature issues or version incompatibility. As a workaround, locate the corresponding `.inf` file in the backup directory, right-click it, and select **Install**.
### Some devices still lack drivers after restore
DISM only backs up drivers that were currently installed. If a device was already undriven before the backup, its driver will obviously not be included. It is worth checking Device Manager beforehand to ensure all hardware is properly functional.
### Can I restore across Windows versions?
Restoring drivers from Windows 10 to Windows 11 on the same machine is generally viable, but migrating driver backups across different hardware is not recommended. Each machine should have its own independent backup.
## Summary
The key advantage of this workflow is **zero third-party dependencies** — DISM is a built-in Windows component, and no extra software is required. One minute to export before reinstalling, one command to restore afterwards. Far more efficient than manually downloading and installing each driver one by one. Make driver backup a habit before every system reinstall, and each migration will be that much smoother.
> This guide is based on a video tutorial by Douyin user [@科技碎碎念](https://v.douyin.com/Cbf0ruVdbUM/).
+5 -8
View File
@@ -7,25 +7,22 @@ hero:
actions:
- theme: brand
text: Explore Projects
link: https://github.com/onixbyte
- theme: alt
text: Try Dev Lab
link: https://dev-lab.onixbyte.dev
link: https://git.onixbyte.com/onixbyte
features:
- title: OnixByte Toolbox
details: A versatile Java library providing common utilities for modern development with seamless Spring integration. Published on Maven Central.
icon: ☕
link: https://github.com/onixbyte/onixbyte-toolbox
link: https://git.onixbyte.com/explore/repos?q=onixbyte-toolbox&topic=1
- title: Dev Lab
details: A collection of practical web tools built with Vite and React. Features a JSON Path viewer, BMI calculator, and JSON-to-table converter.
icon: 🛠️
link: https://dev-lab.onixbyte.dev
link: https://dev-lab.onixbyte.com
- title: Helix
details: An evolving full-stack template combining Spring Boot with React, designed to help you ship applications faster.
icon: 🌀
link: https://github.com/onixbyte
link: https://git.onixbyte.com/explore/repos?q=helix&topic=1
- title: Delta Force Guide
details: A community-oriented guide for Delta Force, delivering game news, tips, and strategic insights for fellow operators.
icon: 🎯
link: https://github.com/onixbyte/delta-force-guide-web
link: https://git.onixbyte.com/explore/repos?q=delta-force-guide&topic=1
---
@@ -0,0 +1,216 @@
---
title: Claude Code Skills Manager
---
import { Tabs, Tab } from "@rspress/core/theme"
## Introduction
Claude Code Skills Manager (`ccsm`) is a CLI tool for discovering, installing, and managing Claude Code skills from Git-based marketplace repositories. It lets you register any public Git repository that exposes a `skills.json` manifest as a skill source, then search, install, update, and remove skills through a single command-line interface.
Skills are deployed directly into Claude Code's own skills directory (`~/.claude/skills/`), where Claude Code picks them up automatically at startup.
## Installation
<Tabs>
<Tab label="Pre-built binaries">
Download the latest binary for your platform from the [Releases page](https://onixbyte.dev/onixbyte/claude-code-skill-manager/releases).
| Platform | Binary |
|----------|--------|
| Linux (amd64) | `ccsm-linux-amd64` |
| macOS (amd64) | `ccsm-darwin-amd64` |
| Windows (amd64) | `ccsm-windows-amd64.exe` |
Place the binary somewhere on your `PATH` and rename it to `ccsm` (or `ccsm.exe` on Windows).
</Tab>
<Tab label="Cargo install">
```bash
git clone https://onixbyte.dev/onixbyte/claude-code-skill-manager.git
cd claude-code-skill-manager
cargo install --path .
```
Requires a Rust toolchain (install via [rustup.rs](https://rustup.rs)).
</Tab>
<Tab label="Build from source">
```bash
git clone https://onixbyte.dev/onixbyte/claude-code-skill-manager.git
cd claude-code-skill-manager
cargo build --release
```
The binary will be at `target/release/ccsm` (or `ccsm.exe` on Windows).
</Tab>
</Tabs>
## Quick Start
### Registering a marketplace
A marketplace is any public Git repository with a `skills.json` manifest at its root. Register one with:
```bash
ccsm marketplace add https://github.com/example/skills
```
CCSM fetches the manifest and caches it locally. You can register as many marketplaces as you need.
### Browsing and installing skills
```bash
# Search across all registered marketplaces
ccsm search
# Search with a keyword filter
ccsm search git
# Install a skill by name
ccsm install my-awesome-skill
# If the same name exists in multiple marketplaces, disambiguate
ccsm install my-skill --marketplace my-marketplace
```
### Managing installed skills
```bash
# List installed skills
ccsm list
# Show details about an installed skill
ccsm info my-awesome-skill
# Update all installed skills to their latest versions
ccsm update
# Update a specific skill
ccsm update my-awesome-skill
# Remove a skill
ccsm remove my-awesome-skill
```
### Marketplace management
```bash
# List all registered marketplaces
ccsm marketplace list
# Refresh cached manifests (all marketplaces)
ccsm marketplace update
# Refresh a specific marketplace
ccsm marketplace update my-marketplace
# Remove a marketplace
ccsm marketplace remove my-marketplace
```
### Install modes
CCSM supports two deploy modes:
| Mode | Behaviour | Use case |
|------|-----------|----------|
| `copy` (default) | Files are physically copied to `~/.claude/skills/<name>/` | Normal use — safe and self-contained |
| `link` | A symlink is created pointing to the local store | Skill development — changes to source files are picked up immediately |
Set the default mode in your config, or override per install:
```bash
ccsm install my-skill --link
```
## Creating Your Own Skill Marketplace
A marketplace is simply a public Git repository containing a `skills.json` manifest. There is no server component, no authentication, and no API key — CCSM reads the manifest directly from the Git forge's raw file endpoint.
### Marketplace repository structure
```
your-marketplace-repo/
skills.json # Required: the manifest
README.md # Optional
```
### The `skills.json` manifest
```json
{
"name": "My Marketplace",
"version": "1.0.0",
"skills": [
{
"name": "my-skill",
"description": "A short description shown in search results",
"repository": "https://github.com/user/skill-repo",
"branch": "main"
},
{
"name": "another-skill",
"description": "A skill that lives in a monorepo subdirectory",
"repository": "https://github.com/user/monorepo",
"branch": "main",
"path": "skills/another-skill"
}
]
}
```
**Top-level fields:**
| Field | Required | Description |
|-------|----------|-------------|
| `name` | Yes | Marketplace display name |
| `version` | No | Arbitrary version string for your own tracking |
| `skills` | No | Array of skill entries (defaults to `[]`) |
**Skill entry fields:**
| Field | Required | Description |
|-------|----------|-------------|
| `name` | Yes | Unique skill identifier (used with `ccsm install <name>`) |
| `description` | Yes | One-line summary shown in `ccsm search` output |
| `repository` | Yes | Public Git repository URL for the skill |
| `branch` | No | Git branch to install from (tries `main` first, falls back to `master`) |
| `path` | No | Subdirectory within the repository where the skill files live — enables monorepos hosting multiple skills |
### How it works
1. **Manifest fetching** — CCSM constructs a raw-file URL from the marketplace repository URL and fetches `skills.json` from either the `main` or `master` branch. This works with GitHub, Gitea, GitLab, and any Git forge that exposes raw file endpoints.
2. **Skill downloading** — When a user installs a skill, CCSM downloads the skill repository archive (ZIP or tar.gz) from the Git forge, extracts it, and deploys the files to `~/.claude/skills/<name>/`.
3. **Monorepo support** — If a skill entry specifies a `path`, CCSM navigates into that subdirectory after extraction before deploying, so a single repository can host multiple skills.
### What goes in a skill repository
Each skill repository is a standard Claude Code skill directory. At minimum it should contain a `SKILL.md` manifest file:
```
my-skill-repo/
SKILL.md # Claude Code skill manifest
script.py # Supporting files
templates/
template.txt
```
### Publishing steps
1. Create a **public** Git repository with a `skills.json` at the root, following the format above.
2. Push it.
3. Anyone can register it with `ccsm marketplace add <url>`.
## How CCSM Stores Data
| Path | Purpose |
|------|---------|
| `~/.claude/skills/` | Claude Code's skills directory — where skills are deployed |
| `~/.config/ccsm/config.json` | CCSM configuration (registered marketplaces, default mode) |
| `~/.config/ccsm/marketplaces/` | Cached marketplace manifests |
| `~/.config/ccsm/skills/` | Downloaded skill files (local store) |
On Windows, `~/.config/` resolves to `C:\Users\<user>\AppData\Roaming\`.
## Licence
Claude Code Skills Manager is open-source software released under the MIT Licence.
+4
View File
@@ -16,6 +16,10 @@ Explore open-source projects developed by OnixByte.
- **[Helix](/projects/helix)** — An enterprise application template with Spring Boot backend and React frontend, featuring JWT auth, RBAC, user and organisation management, and Microsoft Entra ID integration.
- **[Delta Force Guide](/projects/delta-force-guide)** — A web app providing a searchable library of firearm modification codes for the game _Delta Force: Havvk Ops_, with a React SPA and Spring Boot REST API.
## Developer Tools
- **[Claude Code Skills Manager](/projects/claude-code-skill-manager)** — A CLI tool for discovering, installing, and managing Claude Code skills from Git-based marketplace repositories.
## Vite Plugins
- **[Port Checker](/projects/vite-plugins/port-checker)** — Warns when the Vite dev server listens on a browser-restricted port, preventing silent connection failures.
@@ -0,0 +1,85 @@
---
title: 通过备份驱动的方式重装系统后一键恢复驱动
tags:
- windows
- driver
- backup
- system-reinstall
- dism
author:
name: Zihlu Wang
email: real@zihluwang.me
---
import { Kbd } from "@rspress/core/theme"
重装 Windows 系统后,最让人头疼的环节之一就是安装驱动程序——显卡、网卡、声卡、蓝牙、触摸板……缺少任何一个都会影响正常使用。Windows Update 能自动拉取一部分,但往往版本老旧或根本找不到某些小众硬件的驱动。
好在 Windows 内置的 DISM 工具提供了驱动导出和恢复功能,只需在重装前花一分钟备份,重装后就能一键恢复所有驱动。
## 重装前:备份所有驱动
以**管理员身份**打开终端(PowerShell 或命令提示符均可),执行以下命令:
```powershell
dism /online /export-driver /destination:D:\DriverBackup
```
将 `D:\DriverBackup` 替换为你的备份目标路径。建议放到外置硬盘、U 盘或非系统盘,确保重装时不会被格式化。
命令执行后会遍历系统中所有已安装的第三方驱动,逐个导出到目标目录。整个过程通常在一分钟左右完成。导出完成后,你会看到类似如下的输出:
```
The operation completed successfully.
```
将该备份目录妥善保存即可进行系统重装。
### 备份了什么?
该命令导出的是**第三方驱动程序**(即非 Windows 内置驱动),包括显卡、声卡、网卡、芯片组、蓝牙、读卡器等所有你在系统使用过程中安装过的驱动。Windows 自带的通用驱动不会被导出,这部分系统重装后会自动回归。
## 重装后:一键恢复所有驱动
### 方法一:命令行一键恢复(推荐)
这是最省心的方式。同样以**管理员身份**打开终端,执行:
```powershell
dism /online /add-driver /driver:D:\DriverBackup /recurse
```
`/recurse` 参数会递归搜索备份目录下的所有子文件夹,将每一个驱动都安装到新系统中。执行完成后**必须重启电脑**使其生效。
### 方法二:通过设备管理器逐个安装
如果你更偏好图形界面,或者只需要恢复特定驱动:
1. 按 <Kbd>Win</Kbd> + <Kbd>X</Kbd>,选择**设备管理器**
2. 找到带有黄色感叹号的设备(即缺失驱动的设备)
3. 右键点击该设备,选择**更新驱动程序**
4. 选择**浏览我的电脑以查找驱动程序**
5. 将路径指向你的驱动备份目录,勾选**包括子文件夹**
6. 点击下一步,系统会自动搜索并安装匹配的驱动
重复以上步骤直到所有设备都恢复正常。
## 常见问题
### 显示 "The driver package could not be installed"
少数情况下,某些驱动可能因为签名问题或版本不兼容而无法通过 DISM 安装。这时可以尝试手动安装:在备份目录中找到对应的 `.inf` 文件,右键选择**安装**。
### 恢复后仍有设备缺失驱动
DISM 备份的仅是当前系统上已安装的驱动。如果重装前就有设备未被正确驱动,这些设备的驱动自然不会存在于备份中。建议在备份前先用设备管理器确认所有设备都已正常工作。
### 能否跨 Windows 版本恢复?
同一台电脑从 Windows 10 升级到 Windows 11 的驱动恢复通常是可行的,但不建议在不同硬件配置的电脑间迁移驱动备份。每台机器的驱动应独立备份。
## 小结
这套流程的核心优势在于**零第三方工具依赖**——DISM 是 Windows 内建组件,无需安装任何额外软件。重装前花一分钟导出,重装后一条命令恢复,比手动逐个下载安装驱动高效得多。养成重装前先备份驱动的习惯,能让每次系统迁移都轻松不少。
> 本文内容参考自抖音用户 [@科技碎碎念](https://v.douyin.com/Cbf0ruVdbUM/) 的视频教程。
+5 -5
View File
@@ -7,22 +7,22 @@ hero:
actions:
- theme: brand
text: 探索项目
link: https://github.com/onixbyte
link: https://git.onixbyte.com/onixbyte
features:
- title: OnixByte Toolbox
details: 一个多功能 Java 类库,为现代 Java 开发提供通用工具,无缝集成 Spring 生态。已上架 Maven Central。
icon: ☕
link: https://github.com/onixbyte/onixbyte-toolbox
link: https://git.onixbyte.com/explore/repos?q=onixbyte-toolbox&topic=1
- title: Dev Lab
details: 基于 Vite 和 React 构建的实用在线工具集。包含 JSON Path 查看器、BMI 计算器以及 JSON 转表格工具。
icon: 🛠️
link: https://dev-lab.onixbyte.dev
link: https://dev-lab.onixbyte.com
- title: Helix
details: 一个不断演进的前后端模版项目,结合 Spring Boot 与 React,助你快速构建应用。
icon: 🌀
link: https://github.com/onixbyte
link: https://git.onixbyte.com/explore/repos?q=helix&topic=1
- title: Delta Force Guide
details: 社区向的《三角洲行动》游戏指南,提供最新游戏资讯、实用技巧和战术策略。
icon: 🎯
link: https://github.com/onixbyte/delta-force-guide-web
link: https://git.onixbyte.com/explore/repos?q=delta-force-guide&topic=1
---
@@ -0,0 +1,216 @@
---
title: Claude Code Skills Manager
---
import { Tabs, Tab } from "@rspress/core/theme"
## 介绍
Claude Code Skills Manager`ccsm`)是一个 CLI 工具,用于从基于 Git 的 Marketplace 仓库中发现、安装和管理 Claude Code Skills。你可以将任何公开的、包含 `skills.json` 清单的 Git 仓库注册为 Skill 来源,然后通过统一的命令行界面搜索、安装、更新和移除 Skills。
Skills 会被直接部署到 Claude Code 自身的 Skills 目录(`~/.claude/skills/`)中,Claude Code 启动时会自动加载。
## 安装
<Tabs>
<Tab label="预编译二进制">
从 [Releases 页面](https://onixbyte.dev/onixbyte/claude-code-skill-manager/releases) 下载对应平台的最新二进制文件。
| 平台 | 二进制文件 |
|------|-----------|
| Linux (amd64) | `ccsm-linux-amd64` |
| macOS (amd64) | `ccsm-darwin-amd64` |
| Windows (amd64) | `ccsm-windows-amd64.exe` |
将二进制文件放到 `PATH` 中的某个目录,并重命名为 `ccsm`Windows 上为 `ccsm.exe`)。
</Tab>
<Tab label="Cargo 安装">
```bash
git clone https://onixbyte.dev/onixbyte/claude-code-skill-manager.git
cd claude-code-skill-manager
cargo install --path .
```
需要 Rust 工具链(通过 [rustup.rs](https://rustup.rs) 安装)。
</Tab>
<Tab label="从源码构建">
```bash
git clone https://onixbyte.dev/onixbyte/claude-code-skill-manager.git
cd claude-code-skill-manager
cargo build --release
```
二进制文件位于 `target/release/ccsm`Windows 上为 `ccsm.exe`)。
</Tab>
</Tabs>
## 快速开始
### 注册 Marketplace
Marketplace 可以是任何在根目录包含 `skills.json` 清单的公开 Git 仓库。通过以下命令注册:
```bash
ccsm marketplace add https://github.com/example/skills
```
CCSM 会拉取清单并缓存到本地。你可以根据需要注册任意数量的 Marketplace。
### 浏览和安装 Skills
```bash
# 搜索所有已注册 Marketplace 中的 Skills
ccsm search
# 通过关键词过滤
ccsm search git
# 按名称安装 Skill
ccsm install my-awesome-skill
# 如果多个 Marketplace 中存在同名 Skill,可指定 Marketplace
ccsm install my-skill --marketplace my-marketplace
```
### 管理已安装的 Skills
```bash
# 列出已安装的 Skills
ccsm list
# 查看已安装 Skill 的详细信息
ccsm info my-awesome-skill
# 更新所有已安装的 Skills 到最新版本
ccsm update
# 更新指定 Skill
ccsm update my-awesome-skill
# 移除 Skill
ccsm remove my-awesome-skill
```
### Marketplace 管理
```bash
# 列出所有已注册的 Marketplace
ccsm marketplace list
# 刷新缓存的清单(所有 Marketplace
ccsm marketplace update
# 刷新指定 Marketplace
ccsm marketplace update my-marketplace
# 移除 Marketplace
ccsm marketplace remove my-marketplace
```
### 安装模式
CCSM 支持两种部署模式:
| 模式 | 行为 | 适用场景 |
|------|------|----------|
| `copy`(默认) | 将文件物理复制到 `~/.claude/skills/<name>/` | 日常使用 — 安全且自包含 |
| `link` | 创建指向本地存储的符号链接 | Skill 开发 — 对源文件的修改会立即生效 |
可在配置中设置默认模式,也可在安装时单独指定:
```bash
ccsm install my-skill --link
```
## 自建 Skill Marketplace
Marketplace 本质上就是一个包含 `skills.json` 清单的公开 Git 仓库。不需要服务器组件,不需要认证,也不需要 API 密钥 —— CCSM 会直接从 Git 托管平台的 raw 文件端点读取清单。
### Marketplace 仓库结构
```
your-marketplace-repo/
skills.json # 必需:清单文件
README.md # 可选
```
### `skills.json` 清单格式
```json
{
"name": "My Marketplace",
"version": "1.0.0",
"skills": [
{
"name": "my-skill",
"description": "在搜索结果中显示的简短描述",
"repository": "https://github.com/user/skill-repo",
"branch": "main"
},
{
"name": "another-skill",
"description": "位于 monorepo 子目录中的 Skill",
"repository": "https://github.com/user/monorepo",
"branch": "main",
"path": "skills/another-skill"
}
]
}
```
**顶层字段:**
| 字段 | 必需 | 说明 |
|------|------|------|
| `name` | 是 | Marketplace 的显示名称 |
| `version` | 否 | 用于自行追踪的任意版本号 |
| `skills` | 否 | Skill 条目数组(默认为 `[]` |
**Skill 条目字段:**
| 字段 | 必需 | 说明 |
|------|------|------|
| `name` | 是 | Skill 的唯一标识符(用于 `ccsm install <name>` |
| `description` | 是 | 在 `ccsm search` 输出中显示的一行摘要 |
| `repository` | 是 | Skill 的公开 Git 仓库 URL |
| `branch` | 否 | 安装时使用的 Git 分支(先尝试 `main`,再回退到 `master` |
| `path` | 否 | 仓库中 Skill 文件所在的子目录 — 支持单个仓库托管多个 Skills |
### 工作原理
1. **清单拉取** — CCSM 根据 Marketplace 仓库 URL 构建 raw 文件 URL,从 `main` 或 `master` 分支获取 `skills.json`。兼容 GitHub、Gitea、GitLab 以及任何提供 raw 文件端点的 Git 托管平台。
2. **Skill 下载** — 当用户安装 Skill 时,CCSM 从 Git 托管平台下载 Skill 仓库的归档文件(ZIP 或 tar.gz),解压后将文件部署到 `~/.claude/skills/<name>/`。
3. **Monorepo 支持** — 如果 Skill 条目指定了 `path`,CCSM 会在解压后进入该子目录再进行部署,从而支持单个仓库托管多个 Skills。
### Skill 仓库的内容
每个 Skill 仓库都是一个标准的 Claude Code Skill 目录。至少需要包含一个 `SKILL.md` 清单文件:
```
my-skill-repo/
SKILL.md # Claude Code Skill 清单
script.py # 辅助文件
templates/
template.txt
```
### 发布步骤
1. 创建一个**公开**的 Git 仓库,在根目录放置符合上述格式的 `skills.json`。
2. 推送上去。
3. 任何人都可以通过 `ccsm marketplace add <url>` 注册使用。
## 数据存储位置
| 路径 | 用途 |
|------|------|
| `~/.claude/skills/` | Claude Code 的 Skills 目录 —— Skills 的部署目标 |
| `~/.config/ccsm/config.json` | CCSM 配置文件(已注册的 Marketplace、默认模式) |
| `~/.config/ccsm/marketplaces/` | 缓存的 Marketplace 清单 |
| `~/.config/ccsm/skills/` | 下载的 Skill 文件(本地存储) |
在 Windows 上,`~/.config/` 对应 `C:\Users\<user>\AppData\Roaming\`。
## 许可证
Claude Code Skills Manager 是采用 MIT 许可证发布的开源软件。
+4
View File
@@ -16,6 +16,10 @@ title: 项目
- **[Helix](/projects/helix)** — 企业级应用模板,后端使用 Spring Boot,前端使用 React,集成 JWT 认证、RBAC 权限管理、用户与组织管理以及 Microsoft Entra ID 集成。
- **[Delta Force Guide](/projects/delta-force-guide)** — 为游戏《三角洲行动》提供可搜索枪械改装代码库的 Web 应用,包含 React 单页应用和 Spring Boot REST API。
## 开发者工具
- **[Claude Code Skills Manager](/projects/claude-code-skill-manager)** — 用于从基于 Git 的 Marketplace 仓库中发现、安装和管理 Claude Code Skills 的 CLI 工具。
## Vite 插件
- **[Port Checker](/projects/vite-plugins/port-checker)** — 当 Vite 开发服务器监听浏览器限制的端口时发出警告,避免无响应的连接失败。
+7 -2
View File
@@ -12,9 +12,14 @@ export default defineConfig({
themeConfig: {
socialLinks: [
{
icon: "gitlab",
icon: "github",
mode: "link",
content: "https://git.onixbyte.cn/onixbyte/homepage",
content: "https://git.onixbyte.com/onixbyte/homepage",
},
{
icon: "x",
mode: "link",
content: "https://x.com/onixbyte",
},
],
},
+1
View File
@@ -1,4 +1,5 @@
{
"outputDirectory": "doc_build",
"redirects": [
{
"source": "/:path(.*)",