open-index/open-npm huggingface dataset:
npm package: @pinchbot/openclaw-channel
Description: Pinch channel plugin for OpenClaw
Latest version: 0.1.1

# @pinchbot/openclaw-channel

OpenClaw channel plugin for [Pinch](https://pinchbot.com) — a companion creature that lives on your Apple Watch and iPhone.

## What it does

- Connects your OpenClaw agent to the Pinch app via WebSocket relay
- Receives chat messages and health summaries from the Pinch app
- Sends creature state updates (mood, thought bubbles) to the app in real-time
- Manages creature pairing, pinch acknowledgment, and heartbeat check-ins

## Install

```bash
openclaw plugins install @pinchbot/openclaw-channel
```

Restart the gateway after installing.

## Setup

1. Ask your agent to set up Pinch — it will generate a 6-digit pairing code
2. Enter the code in the Pinch iPhone app
3. Your creature appears and the WebSocket channel is live

## Config

The plugin reads from `channels.pinch` in your OpenClaw config:

```json5
{
  channels: {
    pinch: {
      enabled: true,
      gatewayToken: "<generated during pairing>"
    }
  }
}
```

The `gatewayToken` is created automatically when your agent runs the pairing tool for the first time.

## Agent Tools

All tools are registered as `optional` and `ownerOnly`.

| Tool | Description |
|------|-------------|
| `pinch_pair` | Generate a pairing code for the Pinch app |
| `pinch_creature_state` | Read current creature state (mood, stage, metrics) |
| `pinch_creature_update` | Update creature mood and thought bubble |
| `pinch_pinches_get` | List unacknowledged pinches |
| `pinch_pinches_ack` | Acknowledge pinches by ID |

To enable these tools, add `pinch` to your agent's tool allowlist:

```json5
{
  agents: {
    list: [
      {
        id: "main",
        tools: { allow: ["pinch"] }
      }
    ]
  }
}
```

## Requirements

- OpenClaw 2026.3.7 or later
- Pinch iPhone app (TestFlight)
- Apple Watch with Pinch app (optional, for creature on wrist)

## Links

- [Pinch](https://pinchbot.com)
- [OpenClaw](https://openclaw.ai)
npm package: @pinclaw/host-connect
Description: PinClaw host enrollment and relay bootstrap command package
Author: cyDione
Latest version: 0.1.25

# @pinclaw/host-connect

PinClaw 主机接入命令包，用于生成主机身份、兑换 enrollment token、写入长期主机凭据，并输出主机上线后的隧道信息。

对应版本会随 `PinClaw` 仓库的 `v*` 标签发布流程自动发布到 npm。

## 当前范围

1. `src/cli.ts` 负责参数解析、注册执行、凭据写入与上线结果输出。
2. `src/enrollment.ts` 负责主机注册请求结构与注册响应类型。
3. `src/host-identity.ts` 负责生成 Ed25519 主机身份、指纹与主机标识。
4. `src/relay-client.ts` 负责主机出站隧道计划结构。

## 命令示例

```bash
npx @pinclaw/host-connect \
  --relay-url https://relay-manager.example \
  --enrollment-token pct_enr_xxx \
  --host-label mac-mini
```

命令执行成功后，会输出主机在线状态、主机身份摘要、主机凭据引用与后续 `wss` 隧道地址。

执行期间会先调用 `openclaw --version`。如果本机 `~/.openclaw/openclaw.json` 尚未登记 `pinclaw` 渠道插件，命令会安装 `@pinclaw/pinclaw-plugin`；如果已登记 `pinclaw`，则跳过重复插件管理。随后命令会写入 `~/.openclaw/pinclaw-relay-host.json`，并执行 `openclaw config set channels.pinclaw.enabled true --strict-json` 激活渠道账户。整个流程不再调用 `openclaw gateway health` 或 `openclaw gateway restart`。
npm package: @pinclaw/openclaw-relay-plugin
Description: PinClaw relay channel plugin for OpenClaw
Author: cyDione
Latest version: 0.1.23

# @pinclaw/openclaw-relay-plugin

PinClaw 的 OpenClaw relay channel 插件包，负责在 OpenClaw 中注册 `channels.pinclaw`，并维护活动桌宠会话筛选。

## 安装

如果该版本已经发布到 npm：

```bash
openclaw plugins install @pinclaw/openclaw-relay-plugin
```

如果从本地归档安装：

```bash
openclaw plugins install ./pinclaw-openclaw-relay-plugin-<version>.tgz
```

## 当前行为

1. 注册 `channels.pinclaw` 渠道账户，并由 `gateway.startAccount` 生命周期托管主机隧道。
2. 提供活动桌宠路由器，只接受平台裁定的当前桌宠会话请求。
3. 提供主机隧道最小运行时，默认每 `10` 秒发送一次 `host.heartbeat` 帧，并把活动桌宠请求转发到 OpenClaw 进程内受信运行时。
4. 主机凭据文件 `~/.openclaw/pinclaw-relay-host.json` 在运行中被重写后，插件会自动侦测主机标识、凭据或隧道地址变化，并按最新主机凭据重新建立平台隧道。
5. 插件与 OpenClaw 之间不再建立第二条本地 Gateway WebSocket，而是通过官方 `openclaw/plugin-sdk/*` 子路径读取会话、历史与事件。

插件在 OpenClaw 配置中的标识为 `pinclaw`。如果本机启用了 `plugins.allow` 白名单，应当填写 `pinclaw`；渠道账户标识固定为 `channels.pinclaw`。
npm package: @pinclaw/pinclaw-plugin
Description: PinClaw relay channel plugin for OpenClaw
Author: cyDione
Latest version: 0.1.29

# @pinclaw/pinclaw-plugin

PinClaw 的 OpenClaw relay channel 插件包，负责在 OpenClaw 中注册 `channels.pinclaw`，并维护活动桌宠会话筛选。

## 安装

如果该版本已经发布到 npm：

```bash
openclaw plugins install @pinclaw/pinclaw-plugin
```

如果从本地归档安装：

```bash
openclaw plugins install ./pinclaw-pinclaw-plugin-<version>.tgz
```

## 当前行为

1. 注册 `channels.pinclaw` 渠道账户，并由 `gateway.startAccount` 生命周期托管主机隧道。
2. 提供活动桌宠路由器，只接受平台裁定的当前桌宠会话请求。
3. 提供主机隧道最小运行时，默认每 `10` 秒发送一次 `host.heartbeat` 帧，并把活动桌宠请求转发到 OpenClaw 进程内受信运行时。
4. 主机凭据文件 `~/.openclaw/pinclaw-relay-host.json` 在运行中被重写后，插件会自动侦测主机标识、凭据或隧道地址变化，并按最新主机凭据重新建立平台隧道。
5. 插件与 OpenClaw 之间不再建立第二条本地 Gateway WebSocket，而是通过官方 `openclaw/plugin-sdk/*` 子路径读取会话、历史与事件。

插件在 OpenClaw 配置中的标识为 `pinclaw`。如果本机启用了 `plugins.allow` 白名单，应当填写 `pinclaw`；渠道账户标识固定为 `channels.pinclaw`。
npm package: @pindakaasman/exploding-error
Description: Provides unhandled errors with an explosion sound
Author: Ramon Gebben
Latest version: 1.0.4


<h1 style="text-align: center">Exploding Errors</h1>

> Hear explosions on errors

![awesome](https://img.shields.io/badge/awesomeness-100%25-ff96b4.svg)
![explosion](https://i.imgur.com/rkvEyUl.jpg)

## Usage

The only thing you need to do when you want to hear explosions on errors is include the module in your entry point.
By example:

```javascript
require('@pindakaasman/exploding-error');
// ... The rest of your program.
```

## Creds

- Explosion sound from [Freesoundeffects.com](https://www.freesoundeffects.com/free-track/explosion-3-466448/)
npm package: @pindakaasman/mergify
Description: Gitlab CLI for viewing merge requests"
Author: Ramon Gebben
Latest version: 0.3.3

# Mergify
A very simple cli to check merge requests on Gitlab.

![npm](http://img.shields.io/npm/v/@pindakaasman/mergify.svg)
[![Build Status](https://travis-ci.org/RamonGebben/mergify.svg?branch=master)](https://travis-ci.org/RamonGebben/mergify)
[![Coverage Status](https://coveralls.io/repos/github/RamonGebben/mergify/badge.svg?branch=master)](https://coveralls.io/github/RamonGebben/mergify?branch=master)
[![Known Vulnerabilities](https://snyk.io/test/npm/@pindakaasman/mergify/badge.svg)](https://snyk.io/test/npm/@pindakaasman/mergify)

## Install

```
yarn global add @pindakaasman/mergify
```

## Usage

Just grab up the help menu by using `mergify --help` and you will be presented with the help dialog.
```
  Usage: mergify [options]

  Options:

    -V, --version   output the version number
    -a --assigned   Get all open merge request assigned to you
    -s --submitted  Get all open merge request submitted to you
    -c --configure  Setup or update required config
    -v --verify     Verify your config is correct
    -h, --help      output usage information
```

## Configure

To complete setup you will need to run the `configure` command to provide access to the Gitlab API.

```
mergify --configure
```

### Finding your userid

You Gitlab `userid` is **not** your `username`!

You can find your `userid` by going to [the profile page](https://gitlab.com/profile).
It will be located on the right.

![Example of userid](https://user-images.githubusercontent.com/921666/38989234-6d7ff064-43d6-11e8-8758-f90bddf7dbe5.png)

### Getting a Gitlab access token

Complete documentation on how to get a private token can be [found at Gitlab](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html).

You will need to go to you [access tokens page](https://gitlab.com/profile/personal_access_tokens) and provide at least **api** access.

See Screenshot for an example of access token creation  :

<img width="611" alt="screen shot 2018-04-20 at 1 09 40 pm" src="https://user-images.githubusercontent.com/921666/39047997-4022dfa2-449c-11e8-9bec-12039ad94d94.png">
npm package: @pindakaasman/react-reset-css
Description: Reset CSS utils and components
Author: Ramon Gebben
Latest version: 1.0.2

# React Reset CSS

## Why?

When creating React based application it's very common nowadays to use things like Emotion and Styled Component.
However when the need arises to do a reset CSS we fall back on things `injectGlobal` which kinda clutters that application code.
This is why I created `react-reset-css`.

## Installation

```bash
yarn add @pindakaasman/react-reset-css
# or
npm i @pindakaasman/react-reset-css
```

## Usage

**As Component**
```js
const MyApp = () => {
  return (
    <ResetCSS>
     // ...My app
    </ResetCSS>
  )
}
```

**As Higher order component**
```js
const MyApp = () => {
  return (
    <div />
  )
};

export default withResetCSS(MyApp);
```

**As Hook**
```js
const MyApp = () => {
  useResetCSS();

  return (
    <>
     // ...My app
    </>
  )
}
```

## Credit

- [Andy Bell](https://github.com/hankchizljaw) for writing the article ["A Modern CSS Reset"](https://dev.to/hankchizljaw/a-modern-css-reset-6p3) which inspired me to create a component for it.


## TODO:
- Write tests
- More
npm package: @pindoba/astro-panel
Description: An Astro panel component for the Pindoba design system.
Latest version: 0.0.0-alpha-20260320034942

# @pindoba/astro-panel

An Astro panel component for the Pindoba design system.

```sh
npm install @pindoba/astro-panel
```

## Usage

```astro
---
import Panel from "@pindoba/astro-panel";
---

<Panel> Content goes here </Panel>
```

## Project Structure

```text
/
├── index.ts
├── src
│   └── Panel.astro
├── tsconfig.json
├── package.json
```

The `index.ts` file is the entry point for the package. Import the component from `@pindoba/astro-panel`.

## Commands

All commands are run from the root of the project, from a terminal:

| Command       | Action                                                                                                                                                                                                                           |
| :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `npm link`    | Registers this package locally. Run `npm link my-component-library` in an Astro project to install your components                                                                                                               |
| `npm publish` | [Publishes](https://docs.npmjs.com/creating-and-publishing-unscoped-public-packages#publishing-unscoped-public-packages) this package to NPM. Requires you to be [logged in](https://docs.npmjs.com/cli/v8/commands/npm-adduser) |
npm package: @pindoba/svelte-tab
Description: A complete, accessible tab component system for Svelte 5 applications.
Latest version: 0.0.0-alpha-20260320034942

# @pindoba/svelte-tab

A complete, accessible tab component system for Svelte 5 applications.

## Features

- **Accessible**: Built with ARIA attributes and keyboard navigation support
- **Flexible**: Supports multiple layouts (horizontal/vertical tabs)
- **Customizable**: PassThrough props for complete styling control
- **Type-safe**: Full TypeScript support with Svelte 5
- **Composable**: Use individual components or the convenience wrapper

## Installation

```bash
pnpm add @pindoba/svelte-tab
```

## Usage

### Basic Example

```svelte
<script>
  import { Tab } from "@pindoba/svelte-tab";
</script>

<Tab
  items={[
    { id: "tab1", label: "First Tab" },
    { id: "tab2", label: "Second Tab" },
    { id: "tab3", label: "Third Tab" },
  ]}
  defaultTab="tab1"
>
  {#snippet tab1()}
    <p>Content for first tab</p>
  {/snippet}

  {#snippet tab2()}
    <p>Content for second tab</p>
  {/snippet}

  {#snippet tab3()}
    <p>Content for third tab</p>
  {/snippet}
</Tab>
```

### Composable Components

```svelte
<script>
  import { TabGroup, TabNav, TabPanel } from "@pindoba/svelte-tab";

  let selectedTab = $state("tab1");
</script>

<TabGroup bind:selectedTab>
  <TabNav
    tabs={[
      { id: "tab1", label: "First" },
      { id: "tab2", label: "Second" },
    ]}
  />

  <TabPanel id="tab1">
    <p>First tab content</p>
  </TabPanel>

  <TabPanel id="tab2">
    <p>Second tab content</p>
  </TabPanel>
</TabGroup>
```

## Components

### Tab

Main wrapper component that combines TabGroup, TabNav, and TabPanel.

### TabGroup

Container that manages tab state and provides context to children.

### TabNav

Navigation bar with radio-button based tabs.

### TabPanel

Content panel that shows/hides based on selection.

## License

MIT