open-index/open-npm huggingface dataset:
npm package: @s4k4r1/cc-chat
Description: Global CLI command to run Claude Code chat interface from anywhere
Author: Your Name
Latest version: 0.1.0

# CC Chat

CC Chat はコマンドラインからどこからでもClaude Code チャットインターフェースを起動できるグローバルCLIツールです。

## インストール

### NPMでグローバルインストール (推奨)

```bash
npm install -g @s4k4r1/cc-chat
```

### 代替方法: ローカルでのリンク

```bash
git clone https://github.com/yourusername/cc-chat.git
cd cc-chat
bun install
bun link
```

## 使用方法

### 基本的な使用方法

どこからでもCC Chatを起動できます：

```bash
# どこからでも実行可能（サーバー起動）
cc-chat

# カスタムポートで起動
cc-chat --port 8080
cc-chat start -p 8080

# 手動でビルドを実行
cc-chat init

# ヘルプメッセージを表示
cc-chat --help
cc-chat -h
```

### コマンド

- **start** (デフォルト): CC Chatサーバーを起動
- **init**: CC Chatプロジェクトをビルド

### 機能

- **どこからでも起動**: ディレクトリに関係なくCC Chatを起動
- **自動ビルド**: 初回起動時やビルドが存在しない場合は自動でビルド
- **手動ビルド**: `init`コマンドで明示的にビルドを実行
- **カスタムポート**: `--port` オプションで任意のポートを指定
- **グレースフルシャットダウン**: Ctrl+C で安全にサーバーを停止
- **作業ディレクトリ対応**: コマンドを実行したディレクトリをプロジェクトディレクトリとして認識

### 例

```bash
# どこからでもCC Chatを起動
cc-chat

# 手動でビルドを実行
cc-chat init

# ポート8080でCC Chatを起動
cc-chat --port 8080

# startコマンドを明示的に使用
cc-chat start -p 8080

# サーバーにアクセス
# ブラウザで http://localhost:3004 (または指定したポート) を開く
```

## トラブルシューティング

### cc-chat コマンドが見つからない場合

NPMでインストールした場合：
```bash
npm install -g @s4k4r1/cc-chat
```

ローカルリンクの場合：
```bash
bun link  # プロジェクトディレクトリで再実行
```

### ポートが使用中の場合

```bash
cc-chat --port 3005
```

別のポートを指定してください。

## 開発者向け

CLIスクリプトは `bin/cc-chat` にあります。Node.js で実装されており、引数解析とプロセス管理を行います。

## ライセンス

MIT
npm package: @s4p/eslint-config
Description: ## `npm install`
Latest version: 5.2.0

# shang personal eslint config

## `npm install`

```bash
# npm
npx install-peerdeps --dev @s4p/eslint-config
# or pnpm
pnpx install-peerdeps -P --dev @s4p/eslint-config
# or yarn
npx install-peerdeps -Y --dev @s4p/eslint-config
```

## config `.eslintrc.js`

```js
module.exports = {
  extends: ["@s4p/eslint-config"],
  env: {
    // 你的环境变量（包含多个预定义的全局变量）
    // browser: true,
    // node: true,
    // mocha: true,
    // jest: true,
    // jquery: true
  },
  globals: {
    // 你的全局变量（设置为 false 表示它不允许被重新赋值）
  },
  rules: {
    // 自定义你的规则
  },
};
```
npm package: @s4p/kugou-lrc
Description: kugou lrc search, download, parse
Author: xinshangshangxin
Latest version: 0.2.0

# kugou-lrc

[![npm](https://img.shields.io/npm/v/@s4p/kugou-lrc.svg?label=%40s4p%2Fkugou-lrc&style=flat-square)](https://www.npmjs.com/package/@s4p/kugou-lrc)
![build](https://gitlab.com/shang-music/kugou-lrc/badges/develop/build.svg)
![coverage](https://gitlab.com/shang-music/kugou-lrc/badges/develop/coverage.svg)

## how to use

`npm install @s4p/kugou-lrc`

**see [test folder](https://github.com/xinshangshangxin/music/tree/5.x/kugou-lrc/test) to learn more**

### get

```ts
function get(params: { keyword: string; milliseconds: number; fmt: Format.krc }): Promise<KrcInfo>;
function get(params: { keyword: string; milliseconds: number; fmt: Format.lrc }): Promise<LrcInfo>;
function get(params: { hash: string; fmt: Format.krc }): Promise<KrcInfo>;
function get(params: { hash: string; fmt: Format.lrc }): Promise<LrcInfo>;
function get(params: { keyword: string; milliseconds: number }): Promise<KrcInfo>;
function get(params: { hash: string }): Promise<KrcInfo>;

const lrc = await get({
  keyword: '小さな恋のうた',
  milliseconds: 325000,
  fmt: Format.lrc,
});
```

### search

```ts
function search(params: { keyword: string; milliseconds: number }): Promise<KugouLrc[]>;
function search(params: { hash: string }): Promise<KugouLrc[]>;

await search({ keyword: '小さな恋のうた', milliseconds: 325000 });
```

### download

```ts
function download(option: LrcDownloadOption): Promise<string>;

await download({ id, accesskey, fmt: Format.krc });
```

### parse

```ts
function parseKrc(content: string): KrcInfo;
function parseLrc(content: string): LrcInfo;

const krc = await parseKrc(krcStr);
```

## Thanks

[kugou-lyric](https://github.com/kangkang520/kugou-lyric)
[酷狗歌词 API](https://blog.csdn.net/u010752082/article/details/50810190)
npm package: @s4p/music-api
Description: music api for kugou,netease
Author: xinshangshangxin
Latest version: 2.3.3

# music-api

[![npm](https://img.shields.io/npm/v/@s4p/music-api.svg?label=%40s4p%2Fmusic-api&style=flat-square)](https://www.npmjs.com/package/@s4p/music-api)
![build](https://gitlab.com/shang-music/music-api/badges/develop/build.svg)
![coverage](https://gitlab.com/shang-music/music-api/badges/develop/coverage.svg)

## how to use

`npm install @s4p/music-api`

**see [test folder](https://github.com/shang-music/api/tree/develop/test) to learn more**

### search

```ts
function search(
  query: string | ISearchQuery,
  provider?: Provider | Provider[]
): Promise<ISearchItem[]>;

await search("Aragaki Yui");
```

### getSong

```ts
function getSong(id: string, provider: Provider, br?: BitRate): Promise<ISong>;

await getSong("A781023E25C4D09EABCB307BE8BD12E8", Provider.kugou);
```

### rank

```ts
function rank(
  provider: Provider,
  rankType: RankType,
  limit?: number,
  skip?: number
): Promise<ISearchItem[]>;

await rank(Provider.kugou, RankType.hot);
```

### playlist

```ts
function playlist(provider: Provider, id: string): Promise<ISearchItem[]>;

await playlist(Provider.kugou, "235427");
```

### album

```ts
function album(provider: Provider, id: string): Promise<ISearchItem[]>;

await album(Provider.kugou, "976931");
```

### Proxy

if you set environment variable `MUSIC_API_PROXY`, it will let all provider use this proxy string.

```bash
MUSIC_API_PROXY="http://your_proxy" npm run test
```

if you want to control special provider, you can use `setRequestOptions`

```ts
function setRequestOptions(
  options?: { proxy: string },
  providers = [Provider.kugou, Provider.netease]
): void;

// disable all proxy, use system request
setRequestOptions();

// use proxy for all providers
setRequestOptions({ proxy: "http://your_proxy" });

// use proxy only for kugou
setRequestOptions({ proxy: "http://your_proxy" }, [Provider.kugou]);
```

### Adapter

```ts
// https://github.com/jsososo/QQMusicApi
const config = {
  provider: "jsososo",
  search: {
    url: "/search",
    qs: { key: "{{keyword}}" },
    // https://jqplay.org/
    result:
      "[.data.list[] |  { id: .songmid, name: .songname, artists: [.singer[] |  { name: .name, id: .mid }] }]",
  },
  // song...
  // url...
  request: {
    baseUrl: "https://api.qq.jsososo.com",
    json: true,
    timeout: 10000,
    headers: {
      "User-Agent":
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36",
    },
  },
};
const adapter = new Adapter(config);

await adapter.search("泪了 曾沛慈");
await adapter.getSong("000pnwNj24cMHw");
await adapter.getUrl("000pnwNj24cMHw");
```

## TODO

- 第三方接口适配
  - [y444](http://music.y444.cn/)
  - [liumingye](http://tool.liumingye.cn/music/)