open-index/open-npm huggingface dataset:
npm package: @jcheng-publish/skillrepo-cli
Description: A CLI tool for managing agent skills
Latest version: 0.1.1

# skillrepo-cli

一个用于管理 AI Agent Skills 的命令行工具。通过统一的命令行界面，在多个 AI 编码 Agent 之间搜索、安装、删除和更新 Skills。

## 支持的 Agent

| Agent | 项目级 Skills 目录 | 全局 Skills 目录 |
|---|---|---|
| Claude Code | `.claude/skills` | `~/.claude/skills` |
| Cursor | `.agents/skills` | `~/.cursor/skills` |
| OpenClaw | `skills` | `~/.openclaw/skills` |
| Qoder | `.qoder/skills` | `~/.qoder/skills` |

## 安装

```bash
npm install -g skillrepo-cli
```

要求 Node.js >= 18。

## 使用方法

```bash
skillrepo <command> [options]
```

### 搜索 Skill

从远程仓库搜索 Skills：

```bash
skillrepo search <query>
```

### 安装 Skill

通过 `author/slug` 格式安装 Skill。CLI 会自动检测系统上已安装的 Agent，也可以手动指定目标：

```bash
# 自动检测 Agent 并安装
skillrepo install <author/slug>

# 安装到指定 Agent
skillrepo install awspace/pdf --agent claude-code
skillrepo install awspace/pdf -a cursor windsurf

# 全局安装（用户级别）
skillrepo install awspace/pdf -g

# 跳过确认提示
skillrepo install awspace/pdf -y
```

安装时，Skill 文件会先存放到主目录（`.agents/skills/`），然后通过符号链接关联到各 Agent 的 Skill 目录。如果符号链接创建失败，CLI 会回退为文件复制。

### 查看已安装 Skill

```bash
# 查看项目级 Skills（默认）
skillrepo list

# 查看全局 Skills
skillrepo list -g

# 按 Agent 过滤
skillrepo list -a claude-code

# 以 JSON 格式输出
skillrepo list --json
```

### 删除 Skill

删除已安装的 Skills。不指定名称时会进入交互式选择：

```bash
# 交互式选择
skillrepo remove

# 删除指定 Skill
skillrepo remove <skill-name>
skillrepo remove skill1 skill2

# 从全局作用域删除
skillrepo remove -g <skill-name>

# 删除所有 Skills
skillrepo remove --all

# 跳过确认提示
skillrepo remove <skill-name> -y
```

### 检查更新

```bash
skillrepo check
```

### 更新 Skills

```bash
skillrepo update
```

## 环境变量

| 变量 | 说明 | 默认值 |
|---|---|---|
| `SKILLREPO_API_URL` | API 基础地址 | `https://skillhub.linkedmalls.com` |
| `SKILLREPO_SEARCH_URL` | 搜索 API 地址 | `${SKILLREPO_API_URL}/api/v1/search` |

## 工作原理

1. **搜索** -- 调用远程 Skill 仓库 API（`/api/v1/search`），按安装量排序返回匹配结果。
2. **安装** -- 先通过详情接口（`/api/v1/skills/{author}/{slug}`）获取 Skill 信息，再通过下载接口（`/api/v1/skills/{author}/{slug}/download`）获取下载地址，下载 zip 压缩包后解压到临时目录，将文件复制到主 Skills 目录（`.agents/skills/<name>`），然后通过符号链接（或复制）分发到各目标 Agent 的 Skill 目录。全局安装的 Skill 会记录在锁文件（`.skill-lock.json`）中，用于版本管理。
3. **删除** -- 清理各 Agent 目录中的符号链接/副本，删除主 Skill 目录，并更新锁文件。
4. **版本检查/更新** -- 将本地锁文件中记录的版本与远程 API 进行比对，报告可用更新。

## 开发

```bash
# 安装依赖
npm install

# 开发模式运行
npm run dev

# 构建
npm run build

# 类型检查
npm run type-check

# 运行测试
npm test
```

## License

MIT
npm package: @jchiam/eslint-plugin-css-in-js
Description: A CSS-in-JS plugin for ESLint.
Author: Jonathan Chiam
Latest version: 1.0.0

[![npm](https://img.shields.io/npm/v/@jchiam/eslint-plugin-css-in-js.svg)](https://npmjs.org/package/@jchiam/eslint-plugin-css-in-js)
[![Codecov](https://img.shields.io/codecov/c/github/jchiam/eslint-plugin-css-in-js.svg)](https://github.com/jchiam/eslint-plugin-css-in-js)
[![GitHub last commit](https://img.shields.io/github/last-commit/jchiam/eslint-plugin-css-in-js.svg)](https://github.com/jchiam/eslint-plugin-css-in-js/)
[![license](https://img.shields.io/github/license/jchiam/eslint-plugin-css-in-js.svg)](https://opensource.org/licenses/MIT)

# eslint-plugin-css-in-js

This plugin provides a collection of ESLint rules that help with linting CSS-in-JS codebases.

## Requirements

- ESLint 9 or 10
- Node.js >= 22

## Installation

```sh
npm i -D eslint @jchiam/eslint-plugin-css-in-js
```

## Usage

Add the plugin to your `eslint.config.js`:

```js
import cssInJs from '@jchiam/eslint-plugin-css-in-js';

export default [
  {
    plugins: {
      '@jchiam/css-in-js': cssInJs
    },
    rules: {
      '@jchiam/css-in-js/css-concentric-order': 'warn'
    }
  }
];
```

No rules are enabled by default — add only the rules you need.

## Supported Rules

- [css-concentric-order](https://github.com/jchiam/eslint-plugin-css-in-js/tree/master/src/rules/css-concentric-order#readme) — enforce concentric ordering of CSS-in-JS properties

## Breaking Changes

### v0 (legacy) to current

Migrated to [ESLint flat config](https://eslint.org/docs/latest/use/configure/configuration-files) (required for ESLint 9+). The `.eslintrc` format is no longer supported.

Plugin registration changes from `.eslintrc`:

```json
{
  "plugins": ["@jchiam/eslint-plugin-css-in-js"],
  "rules": {
    "@jchiam/css-in-js/css-concentric-order": "warn"
  }
}
```

To `eslint.config.js`:

```js
import cssInJs from '@jchiam/eslint-plugin-css-in-js';

export default [
  {
    plugins: { '@jchiam/css-in-js': cssInJs },
    rules: { '@jchiam/css-in-js/css-concentric-order': 'warn' }
  }
];
```
npm package: @jchinc/ng-multiselect
Description: Control de selección múltiple de elementos
Author: José Chin
Latest version: 1.0.6

# ng-multiselect
Control HTML SELECT ampliado con características de búsqueda, etc...

## Dependencias
- Material-Icons
- Lodash. En caso de que en la búsqueda se requiera omitir los acentos.

## tsconfig.json
Archivo para configuración typescript durante el desarrollo. Intellisense, etc...

    ### tsconfig-esm2015.json
    Configuración typescript para compilación EcmaScript 2015.

    ### compilerOptions.rootDir
    Se utiliza para indicar el directorio base donde se considerarán los archivos indicados en "files".

    ### angularCompilerOptions.skipTemplateCodegen
    Evita la creación de los archivos .ngfactory.js y .ngsummary.json

    ### angularCompilerOptions.flatModuleOutFile, angularCompilerOptions.flatModuleId
    Archivo e ID para generar el archivo FESM2015 (archivo que integra todos los módulos en un único archivo)

## ROLLUP
Agrupa los módulos, clases en un sólo archivo. Reconoce formato ES2015 y ES5. Los archivos ya deben venir en el formato deseado y rollup únicamente los agrupa.

    ### rollup external:[]
    Se utiliza para evitar que las librerías externas utilizadas se intenten compilar como parte de la librería. Considerarlos tal cual, como externas.

    ### rollup globals
    Se utiliza para compilación en UMD, para que las referencias las lea del objeto global (window).

## Saber cúal archivo se utilizará para cada plataforma
    "main": "./bundles/ng-message.umd.js",
    "module": "./esm5/ng-message.js",
    "es2015": "./esm2015/ng-message.js",
    "typings": "./ng-message.d.ts",

## Pasos
    "clean": "rm -rf ./dist",
    "build:inline": "mkdir tmp && cp -r *.ts ./tmp && node inlineAssets.js",
    "build:esm2015": "ngc -p tsconfig-esm2015.json",
    "build:fesm2015": "rollup -c rollup-esm2015.conf.js",
    "build:esm5": "ngc -p tsconfig-esm5.json",
    "build:fesm5": "rollup -c rollup-esm5.conf.js",
    "build:umd": "rollup -c rollup-umd.conf.js",
    "build:min": "uglifyjs ./dist/bundles/ng-message.umd.js -c -m -o ./dist/bundles/ng-message.umd.min.js",
    "move:assets": "cp -r ./tmp/esm2015/*.d.ts ./tmp/esm2015/src ./tmp/esm2015/*.json ./package.json README.md ./dist && rm -rf ./tmp"
npm package: @jchinc/ng-select
Description: Control de selección de elementos, con opción de seleccionar varios
Author: José Chin
Latest version: 1.0.17

# ng-select
Control HTML SELECT ampliado con características de búsqueda, etc...

## Dependencias
- Material-Icons
- Lodash. En caso de que en la búsqueda se requiera omitir los acentos.

## tsconfig.json
Archivo para configuración typescript durante el desarrollo. Intellisense, etc...

    ### tsconfig-esm2015.json
    Configuración typescript para compilación EcmaScript 2015.

    ### compilerOptions.rootDir
    Se utiliza para indicar el directorio base donde se considerarán los archivos indicados en "files".

    ### angularCompilerOptions.skipTemplateCodegen
    Evita la creación de los archivos .ngfactory.js y .ngsummary.json

    ### angularCompilerOptions.flatModuleOutFile, angularCompilerOptions.flatModuleId
    Archivo e ID para generar el archivo FESM2015 (archivo que integra todos los módulos en un único archivo)

## ROLLUP
Agrupa los módulos, clases en un sólo archivo. Reconoce formato ES2015 y ES5. Los archivos ya deben venir en el formato deseado y rollup únicamente los agrupa.

    ### rollup external:[]
    Se utiliza para evitar que las librerías externas utilizadas se intenten compilar como parte de la librería. Considerarlos tal cual, como externas.

    ### rollup globals
    Se utiliza para compilación en UMD, para que las referencias las lea del objeto global (window).

## Saber cúal archivo se utilizará para cada plataforma
    "main": "./bundles/ng-message.umd.js",
    "module": "./esm5/ng-message.js",
    "es2015": "./esm2015/ng-message.js",
    "typings": "./ng-message.d.ts",

## Pasos
    "clean": "rm -rf ./dist",
    "build:inline": "mkdir tmp && cp -r *.ts ./tmp && node inlineAssets.js",
    "build:esm2015": "ngc -p tsconfig-esm2015.json",
    "build:fesm2015": "rollup -c rollup-esm2015.conf.js",
    "build:esm5": "ngc -p tsconfig-esm5.json",
    "build:fesm5": "rollup -c rollup-esm5.conf.js",
    "build:umd": "rollup -c rollup-umd.conf.js",
    "build:min": "uglifyjs ./dist/bundles/ng-message.umd.js -c -m -o ./dist/bundles/ng-message.umd.min.js",
    "move:assets": "cp -r ./tmp/esm2015/*.d.ts ./tmp/esm2015/src ./tmp/esm2015/*.json ./package.json README.md ./dist && rm -rf ./tmp"