open-index/open-npm huggingface dataset:
npm package: @kazuito/ga
Description: Git Agent
Author: kazuito
Latest version: 0.0.6

![ga](https://raw.githubusercontent.com/kazuito/ga/HEAD/assets/banner.png)

# ga - git agent

AI-powered CLI tool that automatically generates Conventional Commit messages for your Git commits.

## Quick Start

```bash
npm install -g @kazuito/ga
```

Set your Google Generative AI API key:

```bash
# ~/.zshrc or ~/.bashrc
export GOOGLE_GENERATIVE_AI_API_KEY="your-api-key-here"
```

Get your API key from [Google AI Studio](https://aistudio.google.com/app/api-keys).

## Usage

### Basic Usage

Stage your changes and generate a commit:

```bash
git add .
ga commit
```

You can also use the shorter aliases:

```bash
ga c
# or
ga ci
```

### Stage All Changes

To automatically stage all changes before committing:

```bash
ga commit --add-all
# or
ga commit -a
```

The tool analyzes your staged changes, generates a Conventional Commit message, and creates the commit automatically.

### Check API Key

Check if your Google Generative AI API key is valid:

```bash
ga check
```

This command tests your API key connection and provides clear feedback if there are any issues.

## Features

- **AI-Powered**: Uses Google's Gemini Flash Lite to generate commit messages
- **Safety Checks**: Detects potential secrets (API keys, tokens, certificates, SSH keys, env vars, passwords) and prompts for confirmation before committing
- **Conventional Commits**: Follows the [Conventional Commits](https://www.conventionalcommits.org/) specification
- **Smart Formatting**: Concise messages (max 72 characters) focused on intent

## Requirements

- Node.js 18+
- Git
- Google Generative AI API key

## License

MIT
npm package: @kazukinagata/react-nps-typescript
Description: Compnent for gathering Net Promoter Score surveys
Author: kazukinagata
Latest version: 2.1.0

# @kazukinagata/react-nps-typescript

> Compnent for gathering Net Promoter Score surveys. Created with [create-react-library](https://github.com/transitive-bullshit/create-react-library).

[![NPM](https://img.shields.io/npm/v/@kazukinagata/react-nps-typescript.svg)](https://www.npmjs.com/package/@kazukinagata/react-nps-typescript) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save @kazukinagata/react-nps-typescript
```
or
```bash
yarn add @kazukinagata/react-nps-typescript
```

## Usage

```tsx
import React, { Component } from 'react'

import NPS from '@kazukinagata/react-nps-typescript'
import '@kazukinagata/react-nps-typescript/dist/index.css'

const Example = () => {
  const [score, setScore] = React.useState<number | null>(null)
  const [dismissed, setDismissed] = React.useState(false)

  return (
    <NPS
      score={score}
      dismissed={dismissed}
      onSubmit={(score) => {console.log(`clicked ${score}`); setScore(score)}}
      onDismissed={() => setDismissed(true)}
    />
  )
}
```

## License

MIT © [kazukinagata](https://github.com/kazukinagata)

## Thanks
Initially inspired by [react-nps-input](https://github.com/SamyPesse/react-nps-input)
npm package: @kazuma1989/hello-npm
Description: npm trial
Author: kazuma1989
Latest version: 0.0.5

# hello-npm

For my personal training

## Getting started

npx from npm:

```bash
npx @kazuma1989/hello-npm
# Hello npm!
```

npx from GitHub:

```bash
npx kazuma1989/hello-npm
# Hello npm!
```

## Publish to npm

First, update the version of the package (major|minor|patch):

```bash
npm version patch
```

Or you can change the version field in `package.json` manually.

Then publish:

```bash
npm publish
```

You will get an email from npm when success.

# What I learned

### With npm

- Sign in before publishing.  
  Sign up via the npm website and run `npm adduser` in CLI terminal.
- Files to publish are not necessarily versioned by Git.
- Scoped packages (like `@scopename/xxx`) are **private** by default.  
  Use `npm publish --access public` command for the first time.  
  For following publish commands, the access option can be omitted.
- Scope name is reserved for each user or organization.  
  I could not publish `@k/hello-npm` (npm returns 401) because I am _@kazuma1989_.
- Local files are all published.  
  Write the `.npmignore` file carefully or follow the pattern in which paths are ignored by default.  
  I usually use a `._*` pattern for my local files without publishing or versioning.  
  Detail: http://npm.github.io/publishing-pkgs-docs/publishing/the-npmignore-file.html

### With GitHub

- You can use packages directly from GitHub without publishing to npm!  
  Use `npm install username/repo-name` format to reference the default branch or `npm install username/repo-name#branch` to specify some branch.
  - But sub directories are not referenced this way.  
    The above commands just downloads the tarball from the URL which is resolved from GitHub repo name, so without a URL from which we can download sub directories it is impossible to use sub directories (like Babel packages) as packages.
- **npx** has an escape hatch where we can use sub directories like packages.  
  In `package.json` the `bin` field may have multiple keys, so specify sub commands to point to binaries in sub directories, and call the sub commands with `npx -p username/repo-name sub-command`.
- GitHub Gist can also be used as a package.  
  Even though Gist cannot have directory structures, the `dependencies` field in `package.json` works well!
npm package: @kazuma1989/scaffold
Description: Copy any GitHub repo contents as a scaffold
Author: kazuma1989
Latest version: 0.0.2

# scaffold

Copy any GitHub repo contents as a scaffold.

## Usage

```bash
npx @kazuma1989/scaffold <username>/<repo>
```

Requirements: Node.js (including npx)

### Example

```bash
% npx @kazuma1989/scaffold kazuma1989/scaffold-react
% ls -1A
.gitignore
.prettierrc
.vscode
package-lock.json
package.json
src
tsconfig.json
```

You can now run `npm install && npm start` to start serving a web app.

The contents are not cloned but just downloaded, so:

```bash
% git status
fatal: not a git repository (or any of the parent directories): .git
```

## Limitations (open issues to feature request)

- Scaffold repo must be public.
- The target branch must be "master".
- There is no way to use sub directories as a scaffolding root.
- No replacement for interpolation syntax.
- No updating method (Caution! The command overwrites existing files!)
npm package: @kazumatakata/tiny
Description: Removes all spaces from a string
Latest version: 2.0.0

# kazumatakata/tiny

[![npm (scoped)](https://img.shields.io/npm/v/@bamblehorse/tiny.svg)](https://www.npmjs.com/package/@bamblehorse/tiny)
[![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/@bamblehorse/tiny.svg)](https://www.npmjs.com/package/@bamblehorse/tiny)

Removes all spaces from a string.

## Install

```
$ npm install @kazumatakata/tiny
```

## Usage

```js
const tiny = require('@kazumatakata/tiny')

tiny('So much space!')
//=> "Somuchspace!"

tiny(1337)
//=> Uncaught TypeError: Tiny wants a string!
//    at tiny (<anonymous>:2:41)
//    at <anonymous>:1:1
```
npm package: @kazumatu981/whenon
Description: Readable Mutli-Bifurcation interface.
Latest version: 1.0.0

# whenon

> this project is under constructed now....
> and not registered on `npm`

Readable multi-branch processing interface.

## Concept

I thought that it is not so *elegant* to write multi-baranch processing to be written in switch-case syntax.

### 🤢Ugly code style

For example......

```JavaScript
const food = getFood();
let animal = "unknown";
switch(food) {
    case "banana":
        animal = "monkey";
        break;
    case "chicken":
        animal = "crocodile";
        break;
    case "bread":
        animal = "human";
        break;
}
feedTo(animal);
```

NOT SO *elegant* !!!!

### 😊Elegant code sytle

And then I hope to write elegant syntax like bellow.

```JavaScript
const animal = when(getFood)
    .on("banana", "monkey")
    .on("chicken", "crocodile")
    .on("bread", "human")
    .otherwise("unknown");
feedTo(animal);
```
Yah! It's smarter!!
How do you think about?
If you feel so good, please use this libary.

## How to use

### 🚀Let's get started

#### first install this libray

```bash
npm install -save @kazumatu981/whenon
```


#### import this libray

```JavaScript
const { when }  = require('@kazumatu981/whenon');
```

or 

```JavaScript
import { when } form '@kazumatu981/whenon';
```
### ✒️re-write your code.

#### constant switch style

```JavaScript
const animal = when(getFood)
    .on("banana", "monkey")
    .on("chicken", "crocodile")
    .on("bread", "human")
    .otherwise("unknown");
feedTo(animal);
```

#### lambda expression style

```JavaScript
const bmi = calcBMI(hight, weight, age);

const obesity = when(bmi)
    .on(b => b < 18.5, "thin")
    .on(b => 18.5 <= b && b < 25, "normal")
    .on(b => 25.0 <= b && b < 30, "warning to fat")
    .on(b => 30 <= b, "fat")
    .resolved;
```

#### lazy evaluation style

```JavaScript
const combolution = when
    .on(x => 0 <= x && x < 0.5, x => 2 * x)
    .on(0.5 <= x && x <=1, x => 2 * (1 - x))
    .otherwize(_=> throw new Error("Out of Range."));
for(let i = 0, x = 0.3; i<100; i++) {
    console.log(`x = ${x}`);
    x = combolution(x);
}
```
npm package: @kazunori-kimura/koa-log4js
Description: logger middleware for koa
Author: kazunori.kimura.js@gmail.com
Latest version: 1.1.1

# @kazunori-kimura/koa-log4js

logger middleware for koa

## Install

```
npm install @kazunori-kimura/koa-log4js
```

## Usage

### ログ設定をJSONで渡す

```js
const koa = require("koa");
const app = koa();
const Log = require("../index.js");

const PORT = 3000;
const logfile = `${__dirname}/app.log`;

// set log4js configuration
const log = Log({ filename: logfile }, "INFO");
// get logger instance
const logger = log.logger;

// set logging middleware
app.use(log.logging);

app.use(function* (){
  this.body = "Hello, world!";
});

app.listen(PORT);
logger.info(`listen at http://localhost:${PORT}`);

const msg = "test log.";
logger.trace(msg);
logger.debug(msg);
logger.info(msg);
logger.warn(msg);
logger.error(msg);
logger.fatal(msg);
```

### 設定ファイルを使用

`config.json`

```json
{
  "appenders": [
    {
      "type": "dateFile",
      "category": "test",
      "filename": "test/system.log",
      "pattern": "-yyyy-MM-dd"
    },
    { "type": "console" }
  ],
  "levels": { "test": "INFO" }
}
```

上記JSONファイルを保存し、そのパスを渡してインスタンスを取得します

```js
const koa = require("koa");
const app = koa();
const Log = require("../index.js");

const PORT = 3000;

// set log4js configuration
const log = Log(`${__dirname}/config.json`);
// get logger instance
const logger = log.logger;

// set logging middleware
app.use(log.logging);

app.use(function* (){
  this.body = "Hello, world!";
});

app.listen(PORT);
logger.info("--- test-config.js ---");
logger.info(`listen at http://localhost:${PORT}`);

const msg = "test log.";
logger.trace(msg);
logger.debug(msg);
logger.info(msg);
logger.warn(msg);
logger.error(msg);
logger.fatal(msg);
```

#### 設定ファイルについて

`appenders` に複数の設定を記載した場合、使用されるのは先頭に記載した `appender` になります。


## LICENSE

MIT
npm package: @kazunori-kimura/react-awesome-table
Description: JSON配列をいい感じにテーブル表示する React Component
Author: kazunori-kimura
Latest version: 0.7.0

# react-awesome-table

JSON 配列をいい感じにテーブル表示する React Component

Demo: [components / Table - Sample ⋅ Storybook](https://kazunori-kimura.github.io/react-awesome-table/?path=/story/components-table--sample)
npm package: @kazuph/mcp-browser-tabs
Description: MCP server for retrieving Chrome browser tabs information
Author: kazuph
Latest version: 1.2.1

# MCP Browser Tabs

Model Context Protocol server for retrieving and managing Chrome browser tabs information. This allows Claude Desktop (or any MCP client) to fetch information about and control currently open Chrome tabs.

<a href="https://glama.ai/mcp/servers/wze1kc6emp"><img width="380" height="200" src="https://glama.ai/mcp/servers/wze1kc6emp/badge" alt="Browser Tabs Server MCP server" /></a>

## Quick Start (For Users)

To use this tool with Claude Desktop, simply add the following to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "tools": {
    "browser-tabs": {
      "command": "npx",
      "args": ["-y", "@kazuph/mcp-browser-tabs"]
    }
  }
}
```

This will automatically download and run the latest version of the tool when needed.

### Required Setup

1. Enable Accessibility for Chrome:
   - Open System Settings
   - Go to Privacy & Security > Accessibility
   - Click the "+" button
   - Add Google Chrome from your Applications folder
   - Turn ON the toggle for Chrome

This accessibility setting is required for AppleScript to interact with Chrome tabs.

## For Developers

The following sections are for those who want to develop or modify the tool.

### Prerequisites

- Node.js 18+
- macOS (for AppleScript operations)
- Google Chrome
- Claude Desktop (install from https://claude.ai/desktop)
- tsx (install via `npm install -g tsx`)

### Installation

```bash
git clone https://github.com/kazuph/mcp-browser-tabs.git
cd mcp-browser-tabs
npm install
npm run build
```

## Available Tools

- `get_tabs`: Retrieves all open tabs from Google Chrome browser, returning their titles and URLs. Tabs are grouped by window and displayed in a format like "Window 1-1" (Window 1, Tab 1).

- `close_tab`: Closes a specific tab in Google Chrome using window and tab indices.
  - Parameters:
    - windowIndex: Window number (starts from 1)
    - tabIndex: Tab number within the window (starts from 1)
  - Note: When closing multiple tabs, start from the highest index numbers to avoid index shifting. After closing tabs, use get_tabs to confirm the changes.

## Notes

- This tool is designed for macOS only due to its dependency on AppleScript.
- Requires Google Chrome to be installed and running.
- Accessibility permissions must be granted for Chrome.

## License

MIT License - see the [LICENSE](LICENSE) file for details
npm package: @kazuph/mcp-dialog
Description: MCP server for macOS native dialogs - choice, input, alert and more
Author: kazuph
Latest version: 0.9.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @kazuph/mcp-dialog

MCP (Model Context Protocol) server for macOS native dialogs. Show choice dialogs, input prompts, alerts, and confirmations directly from Claude Code.

## Features

- 🎯 **Choice Dialog**: Scrollable list selection for better UX
- 📝 **Input Dialog**: Get text input from users  
- ⚠️ **Alert Dialog**: Show information, warnings, or critical messages
- ✅ **Confirm Dialog**: Get yes/no confirmations

## Installation

```bash
npm install -g @kazuph/mcp-dialog
```

## Usage

Add to your `~/.claude.json`:

```json
{
  "mcpServers": {
    "dialog": {
      "command": "npx",
      "args": ["@kazuph/mcp-dialog"]
    }
  }
}
```

## Available Tools

### showChoice
Show a scrollable list dialog for selection:
```json
{
  "title": "mcp-dialog - Choose implementation approach",
  "prompt": "We need to decide how to implement the authentication system.\n\nOption 1: JWT tokens - Stateless, scalable, industry standard\nOption 2: Session-based - Traditional, server-side state\nOption 3: OAuth2 - Delegate to external providers",
  "choices": ["JWT tokens", "Session-based", "OAuth2"],
  "defaultChoice": 0
}
```

**Important notes:**
- Title format: `[Project/Context] - Question`
- Can support many choices (scrollable list)
- Choices can be descriptive (not limited to short labels)
- Put detailed explanations in the prompt
- System automatically adds "Other" as the last option
- If user selects "Other", use showInput for follow-up

### showInput  
Get text input from the user:
```json
{
  "title": "Project Name",
  "prompt": "Enter the name for your new project:",
  "defaultValue": "my-project"
}
```

### showAlert
Display an alert message:
```json
{
  "title": "Build Complete",
  "message": "Your project has been built successfully!",
  "type": "info"
}
```

### showConfirm
Get a yes/no confirmation:
```json
{
  "title": "Delete File",
  "message": "Are you sure you want to delete this file?",
  "defaultButton": "no"
}
```

## Requirements

- macOS (uses native AppleScript dialogs)
- Node.js 18+

## License

MIT
npm package: @kazuph/mcp-github-pera1
Description: Model Context Protocol server for GitHub code extraction using Pera1 service
Author: kazuph
Latest version: 1.1.6

# GitHub MCP Server for Pera1

A Model Context Protocol server that connects GitHub code to Claude.ai. This server utilizes the Pera1 service to extract code from GitHub repositories and provide better context to Claude.

<a href="https://glama.ai/mcp/servers/m2sd6ew3wf"><img width="380" height="200" src="https://glama.ai/mcp/servers/m2sd6ew3wf/badge" alt="@kazuph/mcp-github-pera1 MCP server" /></a>

### Setup

Add the following to your MCP config file (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@kazuph/mcp-github-pera1"]
    }
  }
}
```

Now you can ask Claude about GitHub code repositories.

### Parameters

- `url`: GitHub repository URL (required)
- `dir`: Filter files by directory paths (comma-separated)
- `ext`: Filter files by extensions (comma-separated)
- `mode`: Display mode (e.g., `tree` shows directory structure and README files only)
- `branch`: Specify the branch to fetch from
- `file`: Specify a single file to retrieve

### Usage Examples

You can ask Claude questions like:
```
Tell me about the implementation of GitHub repository https://github.com/username/repository
```

For specific directories:
```
Explain the components in https://github.com/username/repository?dir=src/components
```

For a specific file:
```
Show me the Button component from https://github.com/username/repository?file=src/components/Button.tsx
```

For directory structure with README files only:
```
Show me the structure of https://github.com/username/repository?mode=tree
```

For a specific branch:
```
Analyze the develop branch of https://github.com/username/repository?branch=develop
```

### License

MIT

### Author

kazuph (https://x.com/kazuph)
npm package: @kazuph/mcp-pocket
Description: Model Context Protocol server for Pocket API - Access and manage your Pocket articles through Claude
Author: kazuph
Latest version: 1.0.3
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# MCP Pocket

This is a connector to allow Claude Desktop (or any MCP client) to fetch your saved articles from Pocket API.

<a href="https://glama.ai/mcp/servers/1e2o9ooltu"><img width="380" height="200" src="https://glama.ai/mcp/servers/1e2o9ooltu/badge" alt="@kazuph/mcp-pocket MCP server" /></a>

## Prerequisites
- Node.js (install via `brew install node`)
- Claude Desktop (install from https://claude.ai/desktop)
- Pocket API credentials

## Quick Start

1. Modify your Claude Desktop config located here:
`~/Library/Application\ Support/Claude/claude_desktop_config.json`

You can easily find this through the Claude Desktop menu:
1. Open Claude Desktop
2. Click Claude on the Mac menu bar
3. Click "Settings"
4. Click "Developer"

If you don't have this config, you can create an empty file at this location.

Add the following to the config file, replacing the credentials with your own:

```json
{
  "mcpServers": {
    "pocket": {
      "command": "npx",
      "args": ["-y", "@kazuph/mcp-pocket"],
      "env": {
        "POCKET_CONSUMER_KEY": "your-pocket-consumer-key",
        "POCKET_ACCESS_TOKEN": "your-pocket-access-token"
      }
    }
  }
}
```

## Development Setup

1. Clone this repository and install dependencies:
```bash
git clone https://github.com/kazuph/mcp-pocket.git
cd mcp-pocket
npm install
```

2. For development, use this configuration instead:
```json
{
  "mcpServers": {
    "pocket": {
      "command": "npx",
      "args": ["tsx", "/path/to/mcp-pocket/index.ts"],
      "env": {
        "POCKET_CONSUMER_KEY": "your-pocket-consumer-key",
        "POCKET_ACCESS_TOKEN": "your-pocket-access-token"
      }
    }
  }
}
```

### Development Commands

```bash
# Build TypeScript
npm run build

# Watch mode for development
npm run watch

# Publish to npm
npm login
npm publish
```

## Available Commands

The following MCP tools will be available in Claude Desktop:

- `pocket_get_articles`: Fetch your saved articles from Pocket API. Returns title, URL, and excerpt for each article.
- `pocket_mark_as_read`: Mark a specific article as read (archived) in your Pocket account using its item ID.

## Getting Pocket API Credentials

For detailed instructions on obtaining your Pocket API credentials, please refer to [Issue #2](https://github.com/kazuph/mcp-pocket/issues/2).

Quick steps:
1. Create a new app at [Pocket Developer Portal](https://getpocket.com/developer/apps/new)
2. Follow the authentication process to get your Consumer Key and Access Token

## License

MIT
npm package: @kazuph/mcp-screenshot
Description: A Model Context Protocol server that provides screenshot and OCR capabilities
Author: kazuph
Latest version: 1.0.4

# MCP Screenshot

An MCP server that captures screenshots and performs OCR text recognition.

## Features

- Screenshot capture (left half, right half, full screen)
- OCR text recognition (supports Japanese and English)
- Multiple output formats (JSON, Markdown, vertical, horizontal)

## OCR Engines

This server uses two OCR engines:

1. [yomitoku](https://github.com/kazuph/yomitoku)
   - Primary OCR engine
   - High-accuracy Japanese text recognition
   - Runs as an API server

2. [Tesseract.js](https://github.com/naptha/tesseract.js)
   - Fallback OCR engine
   - Used when yomitoku is unavailable
   - Supports both Japanese and English recognition

## Installation

```bash
npx -y @kazuph/mcp-screenshot
```

## Claude Desktop Configuration

Add the following configuration to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "screenshot": {
      "command": "npx",
      "args": ["-y", "@kazuph/mcp-screenshot"],
      "env": {
        "OCR_API_URL": "http://localhost:8000"  // yomitoku API base URL
      }
    }
  }
}
```

## Environment Variables

| Variable Name | Description | Default Value |
|--------------|-------------|---------------|
| OCR_API_URL | yomitoku API base URL | http://localhost:8000 |

## Usage Example

You can use it by instructing Claude like this:

```
Please take a screenshot of the left half of the screen and recognize the text in it.
```

## Tool Specification

### capture

Takes a screenshot and performs OCR.

Options:
- `region`: Screenshot area ('left'/'right'/'full', default: 'left')
- `format`: Output format ('json'/'markdown'/'vertical'/'horizontal', default: 'markdown')

## License

MIT

## Author

kazuph
npm package: @kazuph/mcp-taskmanager
Description: Model Context Protocol server for Task Management
Author: kazuph
Latest version: 1.0.2

# MCP TaskManager

Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.

## Quick Start (For Users)

### Prerequisites
- Node.js 18+ (install via `brew install node`)
- Claude Desktop (install from https://claude.ai/desktop)

### Configuration

1. Open your Claude Desktop configuration file at:
`~/Library/Application Support/Claude/claude_desktop_config.json`

You can find this through the Claude Desktop menu:
1. Open Claude Desktop
2. Click Claude on the Mac menu bar
3. Click "Settings"
4. Click "Developer"

2. Add the following to your configuration:

```json
{
  "tools": {
    "taskmanager": {
      "command": "npx",
      "args": ["-y", "@kazuph/mcp-taskmanager"]
    }
  }
}
```

## For Developers

### Prerequisites
- Node.js 18+ (install via `brew install node`)
- Claude Desktop (install from https://claude.ai/desktop)
- tsx (install via `npm install -g tsx`)

### Installation

```bash
git clone https://github.com/kazuph/mcp-taskmanager.git
cd mcp-taskmanager
npm install
npm run build
```

### Development Configuration

1. Make sure Claude Desktop is installed and running.

2. Install tsx globally if you haven't:
```bash
npm install -g tsx
# or
pnpm add -g tsx
```

3. Modify your Claude Desktop config located at:
`~/Library/Application Support/Claude/claude_desktop_config.json`

Add the following to your MCP client's configuration:

```json
{
  "tools": {
    "taskmanager": {
      "args": ["tsx", "/path/to/mcp-taskmanager/index.ts"]
    }
  }
}
```

## Available Operations

The TaskManager supports two main phases of operation:

### Planning Phase
- Accepts a task list (array of strings) from the user
- Stores tasks internally as a queue
- Returns an execution plan (task overview, task ID, current queue status)

### Execution Phase
- Returns the next task from the queue when requested
- Provides feedback mechanism for task completion
- Removes completed tasks from the queue
- Prepares the next task for execution

### Parameters

- `action`: "plan" | "execute" | "complete"
- `tasks`: Array of task strings (required for "plan" action)
- `taskId`: Task identifier (required for "complete" action)
- `getNext`: Boolean flag to request next task (for "execute" action)

## Example Usage

```typescript
// Planning phase
{
  action: "plan",
  tasks: ["Task 1", "Task 2", "Task 3"]
}

// Execution phase
{
  action: "execute",
  getNext: true
}

// Complete task
{
  action: "complete",
  taskId: "task-123"
}
```
npm package: @kazuph/mcp-youtube
Description: Model Context Protocol server for YouTube - Extract subtitles from YouTube videos for Claude
Author: kazuph
Latest version: 1.0.5

# YouTube MCP Server

Uses `yt-dlp` to download subtitles from YouTube and connects it to claude.ai via [Model Context Protocol](https://modelcontextprotocol.io/introduction). Try it by asking Claude, "Summarize the YouTube video <<URL>>". Requires `yt-dlp` to be installed locally e.g. via Homebrew.

### How do I get this working?

Install `yt-dlp` (Homebrew and WinGet both work great here)

```bash
# macOS
brew install yt-dlp

# Windows
winget install yt-dlp
```

### Parameters

- `url`: YouTube video URL (required)
- `language`: Subtitle language code (optional, default: 'ja')
  - Uses [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) language codes
  - Common language codes:
    - `ja`: Japanese
    - `en`: English
    - `ko`: Korean
    - `zh`: Chinese
    - `fr`: French
  - Note: An error will occur if subtitles in the specified language do not exist

### Example

```json
{
  "mcpServers": {
    "youtube": {
      "command": "npx",
      "args": ["-y", "@kazuph/mcp-youtube"]
    }
  }
}
```
npm package: @kazuph/npmstat-cli
Description: Advanced CLI tool for comprehensive NPM package statistics and analytics
Author: kazuph
Latest version: 1.2.1

# NPM Stats Toolkit

A comprehensive toolkit for tracking NPM package statistics with CLI, MCP server, and macOS menu bar integration.

## Features

### 🖥️ CLI Tool
- Get monthly and weekly download statistics for NPM packages
- GitHub stars integration for comprehensive metrics
- Package rankings and detailed analytics
- Support for user-specific package aggregation
- Simple command-line interface

### 🔌 MCP Server
- Model Context Protocol server for Claude Code integration
- Fetch NPM statistics programmatically
- Structured data responses

### 📊 macOS Menu Bar Integration
- Real-time display of total downloads and stars using SwiftBar
- Shell script-based integration (recommended over xbar)
- Auto-refresh capabilities every 5 minutes

## Project Structure

```
npm-stats-toolkit/
├── cli/                    # Node.js CLI tool
├── mcp-server/            # MCP server implementation
├── xbar-scripts/          # SwiftBar/xbar shell scripts
├── shared/                # Shared utilities and types
└── docs/                  # Documentation
```

## Installation

### CLI Tool
```bash
# Install globally
npm install -g @kazuph/npmstat-cli

# Or use with npx
npx @kazuph/npmstat-cli kazuph
```

### Menu Bar Integration (SwiftBar)
**Recommended**: Use SwiftBar instead of xbar for better stability and performance.

```bash
# Install SwiftBar
brew install swiftbar

# Copy the shell script to SwiftBar's plugin directory
cp xbar-scripts/npm-stats.3h.sh ~/Library/Application\ Support/SwiftBar/

# Configure the username in the script
# Edit the USERNAME variable in npm-stats.3h.sh
```

SwiftBar is actively maintained and provides better compatibility with modern macOS versions compared to the original xbar.

## Usage

### CLI
```bash
# Get user statistics (default command)
npmstat kazuph

# Short summary (perfect for menu bar)
npmstat kazuph --short

# Show package rankings
npmstat kazuph --rankings

# Include GitHub stats (slower)
npmstat kazuph --github

# Get specific package stats
npmstat package react

# JSON output
npmstat kazuph --json
```

### MCP Server
Add to Claude Code configuration to enable NPM statistics queries.

### Menu Bar Integration
The SwiftBar script automatically refreshes every 3 hours and displays your total monthly downloads in the menu bar. Click to see detailed statistics.

## Development

This toolkit is built with:
- **CLI**: Node.js + TypeScript
- **MCP Server**: Node.js + TypeScript  
- **Menu Bar Integration**: Shell script for SwiftBar/xbar
- **Shared**: TypeScript definitions

## License

MIT License
npm package: @kazupon/github-label-preset
Description: GitHub label preset for github-label-setup
Author: kazuya kawaguchi
Latest version: 3.0.0

# :octopus: @kazupon/github-label-preset

GitHub label preset for [github-label-setup](https://github.com/azu/github-label-setup)

## :copyright: License

[MIT](http://opensource.org/licenses/MIT)
npm package: @kazupon/jts-utils
Description: Opinionated collection of JavaScript / TypeScript utils by @kazupon
Author: kazuya kawaguchi
Latest version: 0.17.0

# @kazupon/jts-utils

[![npm][npm-src]][npm-href]
[![JSR][jsr-src]][jsr-href]
[![CI][ci-src]][ci-href]

Opinionated collection of JavaScript / TypeScript utilities by @kazupon

## ✨ Features

- ✅️ **Modern:** ES Modules and respect Web Standard
- ✅️️ **Minimal:** Small and fully tree-shakable
- ✅️️ **Type Strong:** Written in TypeScript, with full JSdoc
- ✅️️ **Universal Runtime:** Support Browser, Node.js, Deno, Bun and other!

## 💿 Installation

### 🐢 Node.js

```sh
# Using npm
npm install @kazupon/jts-utils --save

# Using pnpm
pnpm add @kazupon/jts-utils

# Using yarn
yarn add @kazupon/jts-utils
```

### 🦕 Deno

```sh
deno add jsr:@kazupon/jts-utils
```

### 🥟 Bun

```sh
bun add @kazupon/jts-utils
```

### 🌍 Browser

in your HTML:

<!-- eslint-skip -->

```html
<script type="module">
  /**
   * you can install via other CDN URL such as skypack,
   * or, you can also use import maps
   */
  import { pascalize } from 'https://esm.sh/@kazupon/jts-utils'

  // something todo
  // ...
</script>
```

## 📚 API References

See the [API References](./docs/index.md)

## 🙌 Contributing guidelines

If you are interested in contributing to `@kazupon/jts-utils`, I highly recommend checking out [the contributing guidelines](/CONTRIBUTING.md) here. You'll find all the relevant information such as [how to make a PR](/CONTRIBUTING.md#pull-request-guidelines), [how to setup development](/CONTRIBUTING.md#development-setup)) etc., there.

## ©️ License

[MIT](http://opensource.org/licenses/MIT)

<!-- Badges -->

[npm-src]: https://img.shields.io/npm/v/@kazupon/jts-utils?style=flat
[npm-href]: https://npmjs.com/package/@kazupon/jts-utils
[jsr-src]: https://jsr.io/badges/@kazupon/jts-utils
[jsr-href]: https://jsr.io/@kazupon/jts-utils
[ci-src]: https://github.com/kazupon/jts-utils/actions/workflows/ci.yml/badge.svg
[ci-href]: https://github.com/kazupon/jts-utils/actions/workflows/ci.yml
npm package: @kazupon/nuxt-i18n-next
Description: ⚠️ This nuxt module is PoC of `@nuxtjs/i18n` next
Author: kazuya kawaguchi
Latest version: 0.0.13

# nuxt-i18n-next

⚠️ This nuxt module is PoC of `@nuxtjs/i18n` next

## ©️ LICENSE

MIT
npm package: @kazupon/prettier-config
Description: Prettier config for @kazupon
Author: kazuya kawaguchi
Latest version: 0.2.0

# @kazupon/prettier-config

Prettier config for @kauzpon

## 🚀 Usages

### 💿 Installation

```sh
# Using npm
npm install --save-dev @kazupon/prettier-config

# Using pnpm
pnpm add -D @kazupon/prettier-config

# Using yarn
yarn add --dev @kazupon/prettier-config
```

### ✏️ Edit `package.json`

```json
{
  // ...
  "prettier": "@kazupon/prettier-config"
}
```

## 🙌 Contributing guidelines

If you are interested in contributing to `@kazupon/prettier-config`, I highly recommend checking out [the contributing guidelines](/CONTRIBUTING.md) here. You'll find all the relevant information such as [how to make a PR](/CONTRIBUTING.md#pull-request-guidelines), [how to setup development](/CONTRIBUTING.md#development-setup)) etc., there.

## ©️ License

[MIT](http://opensource.org/licenses/MIT)
npm package: @kazupon/vp-config
Description: Vite Plus configuration for @kazupon
Author: kazuya kawaguchi
Latest version: 0.1.0

# @kazupon/vp-config

[![npm version][npm-version-src]][npm-version-href]
[![CI][ci-src]][ci-href]

Vite Plus configuration for @kazupon

## 🌟 Features

- `vp fmt` custom configuration
- `vp lint` custom cufiguration

## 💿 Installation

```sh
vp add -D @kazupon/vp-config
```

## 🚀 Usage

### Configurations

```ts
// vite.config.ts
import { defineConfig } from 'vite-plus'
import { defineFmtConfig, defineLintConfig } from '@kazupon/vp-config'

export default defineConfig({
  // ... something config

  fmt: defineFmtConfig({
    // Custom options of `vp fmt` (oxfmt) ...
  }),

  lint: defineLintConfig({
    // Custom options of `vp lint` (oxlint) and preset ...
  })

  // and something here ...
})
```

## 🔨 Enable oxlint built-in plugins & preset configurations

### Enable oxlint built-in plugins

- typescript
- import
- promise
- unicorn
- node

### Preset configurations

The following preset configurations are supported:

| Preset     | Powered by plugin or package                                                                     | Need to install oxlint / eslint plugin or package? |
| ---------- | ------------------------------------------------------------------------------------------------ | -------------------------------------------------- |
| `comments` | [`@kazupon/eslint-plugin`(comment config)](https://www.npmjs.com/package/@kazupon/eslint-plugin) | no (built-in)                                      |
| `vitest`   | oxlint built-in plugin                                                                           | no (built-in)                                      |

## 📚 API References

See the [API References](./docs/index.md)

## ©️ License

[MIT](http://opensource.org/licenses/MIT)

<!-- Badges -->

[npm-version-src]: https://img.shields.io/npm/v/@kazupon/vp-config?style=flat
[npm-version-href]: https://npmjs.com/package/@kazupon/vp-config
[ci-src]: https://github.com/kazupon/vp-config/actions/workflows/ci.yml/badge.svg
[ci-href]: https://github.com/kazupon/vp-config/actions/workflows/ci.yml
npm package: @kazura/lock-native-back
Description: lock-native-back
Author: kazura233
Latest version: 0.1.2

[npm]: https://img.shields.io/npm/v/@kazura/lock-native-back
[npm-url]: https://www.npmjs.com/package/@kazura/lock-native-back
[size]: https://packagephobia.now.sh/badge?p=@kazura/lock-native-back
[size-url]: https://packagephobia.now.sh/result?p=@kazura/lock-native-back
[license]: https://img.shields.io/badge/License-MIT-blue
[license-url]: https://github.com/kazura233/kazurajs/blob/master/LICENSE

[![npm][npm]][npm-url]
[![size][size]][size-url]
[![license][license]][license-url]

# @kazura/lock-native-back

web util

## Install

```sh
pnpm i @kazura/lock-native-back
```

## Usage

```javascript
import * as utils from '@kazura/lock-native-back'
```

## Author

👤 **kazura233**

- Website: https://github.com/kazura233
- Github: [@kazura233](https://github.com/kazura233)

## 🤝 Contributing

Contributions, issues and feature requests are welcome!<br />Feel free to check [issues page](https://github.com/kazura233/kazurajs/issues).

## Show your support

Give a ⭐️ if this project helped you!
npm package: @kazura/postmsg-builder
Description: postmsg-builder
Author: kazura233
Latest version: 2.0.0

[npm]: https://img.shields.io/npm/v/@kazura/postmsg-builder
[npm-url]: https://www.npmjs.com/package/@kazura/postmsg-builder
[size]: https://packagephobia.now.sh/badge?p=@kazura/postmsg-builder
[size-url]: https://packagephobia.now.sh/result?p=@kazura/postmsg-builder
[license]: https://img.shields.io/badge/License-MIT-blue
[license-url]: https://github.com/kazura233/kazurajs/blob/master/LICENSE

[![npm][npm]][npm-url]
[![size][size]][size-url]
[![license][license]][license-url]

# @kazura/postmsg-builder

postmsg builder

## Install

```sh
pnpm i @kazura/web-postmsg @kazura/postmsg-builder
```

## Usage

[Example](https://github.com/kazura233/kazurajs/tree/master/packages/web-postmsg/example)

## Author

👤 **kazura233**

- Website: https://github.com/kazura233
- Github: [@kazura233](https://github.com/kazura233)

## 🤝 Contributing

Contributions, issues and feature requests are welcome!<br />Feel free to check [issues page](https://github.com/kazura233/kazurajs/issues).

## Show your support

Give a ⭐️ if this project helped you!
npm package: @kazura/react-store
Description: react-store
Author: kazura233
Latest version: 1.0.1

<h1 align="center">Welcome to @kazura/react-store 👋</h1>
<p>
  <a href="https://www.npmjs.com/package/@kazura/react-store" target="_blank">
    <img alt="Version" src="https://img.shields.io/npm/v/@kazura/react-store.svg">
  </a>
  <a href="https://github.com/kazura233/react-store/blob/master/LICENSE" target="_blank">
    <img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-yellow.svg" />
  </a>
</p>

> react-store

### 🏠 [Homepage](https://github.com/kazura233/react-store)

## Install

```sh
yarn add @kazura/react-store
```

## Usage

[Example](https://github.com/kazura233/react-store/tree/master/example)

## Author

👤 **kazura233**

- Website: https://github.com/kazura233
- Github: [@kazura233](https://github.com/kazura233)

## 🤝 Contributing

Contributions, issues and feature requests are welcome!<br />Feel free to check [issues page](https://github.com/kazura233/react-store/issues).

## Show your support

Give a ⭐️ if this project helped you!

---

_This README was generated with ❤️ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_
npm package: @kazura/vue-portal
Description: vue-portal
Author: kazura233
Latest version: 0.0.1-alpha.2

<h1 align="center">Welcome to @kazura/vue-portal 👋</h1>
<p>
  <a href="https://www.npmjs.com/package/@kazura/vue-portal" target="_blank">
    <img alt="Version" src="https://img.shields.io/npm/v/@kazura/vue-portal.svg">
  </a>
  <a href="https://github.com/kazura233/vue-portal/blob/master/LICENSE" target="_blank">
    <img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-yellow.svg" />
  </a>
</p>

> vue-portal

### 🏠 [Homepage](https://github.com/kazura233/vue-portal)

## Install

```sh
yarn add @kazura/vue-portal
```

## Usage

```javascript
import { createComponent, destroyVM } from '@kazura/vue-portal'

const Component = {
  props: {
    title: String,
  },
  render(h) {
    return h('h1', this.title)
  },
}

const vm = createComponent(Component, { title: 'Test' }, true)
destroyVM(vm)
```

## Author

👤 **kazura233**

- Website: https://github.com/kazura233
- Github: [@kazura233](https://github.com/kazura233)

## 🤝 Contributing

Contributions, issues and feature requests are welcome!<br />Feel free to check [issues page](https://github.com/kazura233/vue-portal/issues).

## Show your support

Give a ⭐️ if this project helped you!

---

_This README was generated with ❤️ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_
npm package: @kazura/web-broadcast
Description: web-broadcast
Author: kazura233
Latest version: 0.2.0

[npm]: https://img.shields.io/npm/v/@kazura/web-broadcast
[npm-url]: https://www.npmjs.com/package/@kazura/web-broadcast
[size]: https://packagephobia.now.sh/badge?p=@kazura/web-broadcast
[size-url]: https://packagephobia.now.sh/result?p=@kazura/web-broadcast
[license]: https://img.shields.io/badge/License-MIT-blue
[license-url]: https://github.com/kazura233/kazurajs/blob/master/LICENSE

[![npm][npm]][npm-url]
[![size][size]][size-url]
[![license][license]][license-url]

# @kazura/web-broadcast

web broadcast

## Install

```sh
pnpm i @kazura/web-broadcast
```

## Usage

[Example](https://github.com/kazura233/kazurajs/tree/master/packages/web-broadcast/example)

## Author

👤 **kazura233**

- Website: https://github.com/kazura233
- Github: [@kazura233](https://github.com/kazura233)

## 🤝 Contributing

Contributions, issues and feature requests are welcome!<br />Feel free to check [issues page](https://github.com/kazura233/kazurajs/issues).

## Show your support

Give a ⭐️ if this project helped you!
npm package: @kazura/web-daemon
Description: web-daemon
Author: kazura233
Latest version: 0.0.1-alpha.5

<h1 align="center">Welcome to @kazura/web-daemon 👋</h1>
<p>
  <a href="https://www.npmjs.com/package/@kazura/web-daemon" target="_blank">
    <img alt="Version" src="https://img.shields.io/npm/v/@kazura/web-daemon.svg">
  </a>
  <a href="https://github.com/kazura233/web-daemon/blob/master/LICENSE" target="_blank">
    <img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-yellow.svg" />
  </a>
</p>

> web-daemon

### 🏠 [Homepage](https://github.com/kazura233/web-daemon)

## Install

```sh
yarn add @kazura/web-daemon
```

## Usage

```javascript
import WebDaemon from '@kazura/web-daemon'

let point = 1

const daemon = new WebDaemon((next) => {
  console.log(point++)
  next()
})

daemon.start()

daemon.pause()

WebDaemon.pauseAll()
```

## Author

👤 **kazura233**

- Website: https://github.com/kazura233
- Github: [@kazura233](https://github.com/kazura233)

## 🤝 Contributing

Contributions, issues and feature requests are welcome!<br />Feel free to check [issues page](https://github.com/kazura233/web-daemon/issues).

## Show your support

Give a ⭐️ if this project helped you!

---

_This README was generated with ❤️ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_
npm package: @kazura/web-postmsg
Description: web-postmsg
Author: kazura233
Latest version: 2.0.1

[npm]: https://img.shields.io/npm/v/@kazura/web-postmsg
[npm-url]: https://www.npmjs.com/package/@kazura/web-postmsg
[size]: https://packagephobia.now.sh/badge?p=@kazura/web-postmsg
[size-url]: https://packagephobia.now.sh/result?p=@kazura/web-postmsg
[license]: https://img.shields.io/badge/License-MIT-blue
[license-url]: https://github.com/kazura233/kazurajs/blob/master/LICENSE

[![npm][npm]][npm-url]
[![size][size]][size-url]
[![license][license]][license-url]

# @kazura/web-postmsg

web postmsg

## Install

```sh
pnpm i @kazura/web-postmsg @kazura/postmsg-builder
```

## Usage

[Example](https://github.com/kazura233/kazurajs/tree/master/packages/web-postmsg/example)

## Author

👤 **kazura233**

- Website: https://github.com/kazura233
- Github: [@kazura233](https://github.com/kazura233)

## 🤝 Contributing

Contributions, issues and feature requests are welcome!<br />Feel free to check [issues page](https://github.com/kazura233/kazurajs/issues).

## Show your support

Give a ⭐️ if this project helped you!
npm package: @kazuwombat/eslint-plugin-myao
Description: [手を動かしながら学ぶESLintルールの作り方](https://zenn.dev/kazuwombat/articles/2a870356528783)のテンプレートレポジトリ
Latest version: 1.0.1

[手を動かしながら学ぶESLintルールの作り方](https://zenn.dev/kazuwombat/articles/2a870356528783)のテンプレートレポジトリ