open-index/open-npm huggingface dataset:
npm package: @tan-yong-sheng/cc-devkits
Description: Claude Code devkits - Google Search, web scraping, and push notifications via ntfy
Author: tan-yong-sheng
Latest version: 2.0.1

# cc-devkits

A Claude Code plugin providing ntfy notifications, Serper web search/scraping skills, and AI Vision MCP integration.

## 🚀 Quick Start

Get up and running in under 2 minutes:

### Step 1: Install the Plugin
```bash
# Add marketplace
/plugin marketplace add tan-yong-sheng/cc-devkits

# Install plugin
/plugin install cc-devkits@tan-yong-sheng
```

### Step 2: Install the CLI Tools
Install the unified cc-devkits package from npm:

```bash
npm install -g @tan-yong-sheng/cc-devkits
```

### Step 3: Set up API Keys
- **Serper API Key**: Get a free key at https://serper.dev (2,500 searches/month)
  ```bash
  export SERPER_API_KEY="your-key-here"
  ```

- **ntfy (optional)**: Configure for push notifications
  ```bash
  export NTFY_TOPIC="your-topic"
  export NTFY_API_KEY="your-api-key"  # if using private server
  ```

## Features

- **ntfy Hooks** - Get push notifications for Claude Code events (Session started, Task completed, etc.)
- **Serper Skills** - Google Search and web scraping with markdown extraction
- **AI Vision MCP** - Image and video analysis, object detection, and visual comparison

## 📚 Documentation

Detailed documentation has been moved to the `docs/` directory:

- **[Installation Guide](./docs/INSTALLATION.md)** - How to install from npm
- **[Environment Variables](./docs/ENVIRONMENT.md)** - Required API keys and configuration
- **[Development Guide](./docs/DEVELOPMENT.md)** - Project structure and contributing instructions
- **[Publishing Guide](./PUBLISHING.md)** - Guide for publishing to npmjs.com
- **[Architecture](./AGENTS.md)** - Deep dive into the package architecture

## Usage Examples

### cc-serper CLI
```bash
# Search Google
cc-serper search --query "TypeScript best practices" --gl us --hl en --num 10

# Scrape webpage with markdown
cc-serper scrape --url "https://example.com" --markdown

# JSON output for scripting
cc-serper search --query "AI news" --json | jq '.organic[].title'
```

### cc-ntfy CLI
```bash
# Send notification
cc-ntfy --title "Build Complete" --message "All tests passed" --priority high

# With emoji and click action
cc-ntfy --title "PR Opened" --message "New pull request" --tags bell --click "https://github.com/..."
```

### Library Usage
```typescript
// Import specific modules
import { search, scrape } from '@tan-yong-sheng/cc-devkits/serper';
import { send } from '@tan-yong-sheng/cc-devkits/ntfy';

// Search Google
const results = await search('TypeScript best practices', { num: 10 });

// Scrape webpage
const page = await scrape('https://example.com', { markdown: true });

// Send notification
await send({ title: 'Done', message: 'Task complete', priority: 'high' });
```

## License

MIT - See LICENSE file

## Author

tan-yong-sheng

## Resources

- **npm Package**: https://www.npmjs.com/package/@tan-yong-sheng/cc-devkits
- **Serper API**: https://serper.dev
- **ntfy**: https://ntfy.sh
- **Claude Code**: https://claude.com/code
npm package: @tan.ng/chart
Description: ## Project setup ``` yarn install ```
Latest version: 0.1.2

# vue-tsx

## Project setup
```
yarn install
```

### Compiles and hot-reloads for development
```
yarn serve
```

### Compiles and minifies for production
```
yarn build
```

### Run your unit tests
```
yarn test:unit
```

### Lints and fixes files
```
yarn lint
```

### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
npm package: @tan_/scanne-sdk
Description: SDK for Tan scanning functionality
Author: Tan
Latest version: 1.1.0

# Scanne SDK

## Configuration Options

### handleError Parameter (callback)

| Property | Type | Default Value | Description |
| ---- | ---- | ------ | ---- |
| - | `callback: (error: Error) => void` | - | All errors in the SDK will be thrown through the handleError function |

### createScanner Parameter (createOptions)

| Property | Type | Default Value | Description |
| ---- | ---- | ------ | ---- |
| - | `createOptions?: ReaderOptions` | `{}` | Configuration parameters when creating the scanner |


### start Method Parameter (startOption)

| Property | Type | Default Value | Description |
| ---- | ---- | ------ | ---- |
| `video` | `HTMLVideoElement` | - | The video element that must be passed in to display the camera image |
| `deviceId` | `string` | - | Optional, specifies the ID of the camera device to be used (can be obtained through the getDevices method) |
| `constraints` | `MediaTrackConstraints` | - | Optional, camera constraint configuration (such as resolution, frame rate, etc.) |
| `readerOptions` | `ReaderOptions` | - | Optional, camera constraint configuration (such as resolution, frame rate, etc.) |


### Scanner Instance Methods

| Method Name | Type | Description |
| ---- | ---- | ---- |
| `start` | `(startOption: StartOption) => Promise<void>` | Starts the scanner, passing in the video element and related configurations |
| `decodeData` | `callback: (result: ReadResult[], imageSource?: ImageData \| null) => void` | Method to get decoding results |
| `getDevices` | `() => Promise<MediaDeviceInfo[]>` | Gets the list of all available camera devices |
| `stop` | `() => void` | Stops decoding and Canvas drawing |
| `destroy` | `() => void` | Destroys the scanner instance, clearing elements, streams, and all properties |
npm package: @tan_hoang/test1
Description: Sub-components of Klaytn JavaScript SDKs.
Latest version: 0.0.9

# JavaScript Extension Core for Klaytn

Sub-components of Klaytn JavaScript SDKs.

> **_NOTE:_**
> @kaiachain/js-ext-core@^1.2.0 recommends node 22 or later if you have issues with ES Module resolution.

For dApp developers and blockchain users, use the SDKs like [@kaiachain/ethers-ext](https://www.npmjs.com/package/@kaiachain/ethers-ext) and [@kaiachain/web3js-ext](https://www.npmjs.com/package/@kaiachain/web3js-ext).

- `FieldSetFactory` to easily build custom RLP-encodable types
- `AccountKeyFactory` for Klaytn account objects
- `KlaytnTxFactory` for Klaytn transaction objects
- `AccountKeyType` and `TxType` enums
- `getRpcTxObject` to normalize `eth_call` RPC parameters
- `getCompressedPublicKey` and `getSignatureTuple` to normalize cryptographic data
- `splitKeystoreKIP3` for handling KIP-3 JSON keystore
- `formatKlay` and `parseKlay` to convert KLAY denominations
- `asyncOpenApi` to promisify [@kaiachain/web3rpc](https://www.npmjs.com/package/@kaiachain/web3rpc) methods

## Install

```
npm install --save @kaiachain/js-ext-core
```

## Usage

See test.
npm package: @tan_hoang/test3
Description: Sub-components of Klaytn JavaScript SDKs.
Latest version: 0.0.7

# JavaScript Extension Core for Klaytn

Sub-components of Klaytn JavaScript SDKs.

> **_NOTE:_**
> @kaiachain/js-ext-core@^1.2.0 recommends node 22 or later if you have issues with ES Module resolution.

For dApp developers and blockchain users, use the SDKs like [@kaiachain/ethers-ext](https://www.npmjs.com/package/@kaiachain/ethers-ext) and [@kaiachain/web3js-ext](https://www.npmjs.com/package/@kaiachain/web3js-ext).

- `FieldSetFactory` to easily build custom RLP-encodable types
- `AccountKeyFactory` for Klaytn account objects
- `KlaytnTxFactory` for Klaytn transaction objects
- `AccountKeyType` and `TxType` enums
- `getRpcTxObject` to normalize `eth_call` RPC parameters
- `getCompressedPublicKey` and `getSignatureTuple` to normalize cryptographic data
- `splitKeystoreKIP3` for handling KIP-3 JSON keystore
- `formatKlay` and `parseKlay` to convert KLAY denominations
- `asyncOpenApi` to promisify [@kaiachain/web3rpc](https://www.npmjs.com/package/@kaiachain/web3rpc) methods

## Install

```
npm install --save @kaiachain/js-ext-core
```

## Usage

See test.
npm package: @tan_hoang/web3js-test-1
Description: web3.js extension for kaiachain blockchain
Latest version: 0.0.1

# Web3.js Extension for kaia

Web3.js Extension for kaia offers:

- Drop-in replacement to `new Web3(...)` that supports both Ethereum and kaia transaction types involving AccountKey and TxTypes. See [Modifications to the Web3 object](#modifications-to-the-web3-object) section for details

## Install

> **_NOTE:_**
> @kaiachain/web3js-ext@^1.2.0 recommends node 22 or later if you have issues with ES Module resolution.

### Node.js

- Install
    ```sh
    npm install --save @kaiachain/web3js-ext
    ```
- ESM or TypeScript
    ```ts
    import { Web3 } from "@kaiachain/web3js-ext";
    const web3 = new Web3("https://public-en-kairos.node.kaia.io");
    ```
- CommonJS
    ```js
    const { Web3 } = require("@kaiachain/web3js-ext");
    const web3 = new Web3("https://public-en-kairos.node.kaia.io");
    ```

### Browser

It is not recommended to use CDNs in production, But you can use below for quick prototyping.

```html
<script src="https://cdn.jsdelivr.net/npm/@kaiachain/web3js-ext@latest/dist/web3js-ext.bundle.js"></script>
<script>
const web3 = new web3_ext.Web3(window.klaytn);
</script>
```

## Usage

See [example](./example) and [test](./test).

## Modifications to the Web3 object

See [DESIGN](./DESIGN.md) for source code organization.

### Accounts

- Following functions can handle Klaytn TxTypes. See [src/account/index.ts](./src/account/index.ts)
  ```js
  // account independent functions
  web3.eth.accounts.recoverTransaction(rlp)
  web3.eth.accounts.signTransaction(obj or rlp)
  web3.eth.accounts.signTransactionAsFeePayer(obj or rlp)

  // account-bound functions
  var account = web3.eth.accounts.create()
  var account = web3.eth.accounts.privateKeyToAccount(priv)
  var account = web3.eth.accounts.decrypt(keystore)
  account.signTransaction(obj or rlp)
  account.signTransactionAsFeePayer(obj or rlp)
  ```
- Following functions can handle the [KIP-3 Klaytn keystore format v4](https://kips.kaia.io/KIPs/kip-3)
  ```js
  web3.eth.accounts.decrypt(keystore)
  web3.eth.accounts.decryptList(keystore)
  ```

### Eth RPC wrappers

- Following functions calls different RPC, and handle Klaytn TxTypes. See [src/eth/index.ts](./src/eth/index.ts)
  ```js
  // Try klay_protocolVersion, falls back to eth_protocolVersion
  web3.eth.getProtocolVersion()

  // klay_sendTransaction if Klaytn TxType, otherwise eth_sendTransaction
  // Additional treatment for Kaikas compatibility
  web3.eth.sendTransaction(obj)

  // klay_sendRawTransaction if Klaytn TxType, otherwise eth_sendRawTransaction
  web3.eth.sendSignedTransaction(rlp)

  // klay_signTransaction if Klaytn TxType, otherwise eth_signTransaction
  // Additional treatment for Kaikas compatibility
  web3.eth.signTransaction(obj)
  ```

### Klaytn RPCs

- Following functions calls Klaytn RPCs. See [src/web3.ts](./src/web3.ts)
  ```js
  web3.klay.blockNumber() // klay_blockNumber
  web3.net.networkID() // net_networkID
  ```
npm package: @tanagram/cli
Description: Tanagram - Catch sloppy code before it ships
Author: Tanagram
Latest version: 0.6.25

# Tanagram CLI

## Quick Start

```bash
# Install
npm install -g @tanagram/cli

# Log in
tanagram login
```

## Commands

```bash
tanagram login     # Log in to your Tanagram account
tanagram logout    # Log out of your Tanagram account
tanagram whoami    # Show identity/session details from your auth token
tanagram version   # Show the CLI version
tanagram help      # Show available commands
```

## Authentication

`tanagram login` opens your browser to authorize the CLI with your Tanagram account. The CLI starts a temporary localhost server to receive the authorization callback from the browser. Once authorized, a session token is stored at `~/.tanagram/token`.

Set `TANAGRAM_TOKEN` to skip interactive login (useful for CI/CD).

For local development, you can override service hosts with environment variables:

- `TANAGRAM_WEB_URL` for browser login
- `TANAGRAM_API_URL` for normal CLI API requests and the LLM proxy
- `TANAGRAM_LORE_URL` only for Lore upload session create/complete requests

## Requirements

- Node.js >= 14.0.0

---

Built by [@MattMolinar](https://x.com/MattMolinar) and the [Tanagram](https://web.tanagram.ai) team.