open-index/open-npm huggingface dataset:
npm package: @openmelontech/choosebuddy
Description: One-click Claude Code buddy pet configurator
Latest version: 0.1.3

# anybuddy

One-click Claude Code buddy configurator.

`anybuddy` lets you pick a specific Claude Code buddy by species and rarity, then applies a matching user ID to your local Claude configuration.

## Requirements

- Node.js 18 or newer
- Claude Code CLI installed: `npm install -g @anthropic-ai/claude-code`

## Usage

Run without installing globally:

```bash
npx @openmelontech/choosebuddy --list
```

Pick a buddy:

```bash
npx @openmelontech/choosebuddy --species duck --rarity legendary
```

Pick the exact buddy variant shown on AnyBuddy:

```bash
npx @openmelontech/choosebuddy --species turtle --rarity legendary --user-id 14a197f94a5767f008c89e62829f69374037680b6f424715fffc309eee535ca2
```

If you use **Claude Code with an API key** (no OAuth / no `setup-token` flow), only patch buddy fields in `~/.claude.json` and skip token capture:

```bash
npx @openmelontech/choosebuddy --species cat --rarity epic --skip-oauth
```

More examples:

```bash
npx @openmelontech/choosebuddy --species dragon --rarity epic
npx @openmelontech/choosebuddy --help
```

After a successful run:

- AnyBuddy looks up a matching user ID, or applies the exact one you provide
- **Default:** captures your Claude Code OAuth token, updates `~/.claude.json`, persists `CLAUDE_CODE_OAUTH_TOKEN` in your shell rc file — then restart your terminal, run `claude`, and use `/buddy`.
- **`--skip-oauth`:** only updates `~/.claude.json` (keeps your existing file if present); does not run `claude setup-token` or modify shell rc. Use when you authenticate via `ANTHROPIC_API_KEY` (or similar) instead of OAuth.

## Maintainers

From the repository root:

```bash
npm run pack:cli
npm run release:cli:dry
npm run release:cli
```

Before publishing a new version, bump `packages/cli/package.json` or run:

```bash
cd packages/cli
npm version patch --no-git-tag-version
```
npm package: @openmerch/agent
Description: OpenMerch Agent SDK — discover services, execute tasks, manage wallet
Author: OpenMerch
Latest version: 0.2.5

# @openmerch/agent

TypeScript SDK for OpenMerch agents. Discover services, execute tasks against providers, and manage wallet balances on the OpenMerch protocol.

`@openmerch/agent` is intended for clients and agents that need to discover and invoke machine payable services through OpenMerch and the <a href="https://mpp.dev/" target="_blank">Machine Payable Protocol (MPP)</a>. It focuses on the public agent-side contract: discovery, execution requests, and payment-aware integration points.

## Installation

```bash
npm install @openmerch/agent
```

## Overview

This package provides the type definitions and interfaces for building an OpenMerch agent. Agents interact with the network to:

- **Discover** available services by keyword, price, or execution mode
- **Execute** tasks against provider services (sync, async, or streaming)
- **Manage** wallet balances and track transaction history

## Usage

```ts
import type {
  AgentConfig,
  ServiceQuery,
  TaskRequest,
  TaskResult,
  WalletBalance,
} from "@openmerch/agent";

// Search for services
const query: ServiceQuery = {
  keyword: "translation",
  mode: "sync",
  maxPrice: "500",
  currency: "USD",
};

// Build a task request
const task: TaskRequest = {
  serviceId: "translation-v1",
  mode: "sync",
  payload: { text: "Hello", targetLang: "es" },
  maxPrice: "100",
};
```

## Exported Types

- `ServiceQuery` — filter criteria for service discovery
- `ServiceListing` — a service returned from discovery
- `ServiceQueryResult` — paginated discovery results
- `TaskRequest` — request to execute a task
- `TaskResult` — result from a sync execution
- `AsyncTaskHandle` — handle for polling async tasks
- `TaskStreamChunk` — a chunk from a streaming execution
- `WalletBalance` — current wallet balance
- `WalletTransaction` — a single transaction record
- `AgentConfig` — agent connection configuration

## Current Scope

This package currently exports type definitions and interfaces. Runtime client functionality is under active development.

**Payment support:** Pricing is expressed in USD-denominated units for accounting. Onchain settlement currently uses USDC on Base and Base Sepolia.

## License

[MIT](../../LICENSE)
npm package: @openmerch/provider
Description: OpenMerch Provider SDK — register services, handle sync/async/streaming executions
Author: OpenMerch
Latest version: 0.2.5

# @openmerch/provider

TypeScript SDK for OpenMerch service providers. Define services, set pricing, and handle execution requests from agents over the OpenMerch protocol.

`@openmerch/provider` is intended for services that want to expose machine payable capabilities through OpenMerch and the <a href="https://mpp.dev/" target="_blank">Machine Payable Protocol (MPP)</a>. It focuses on the public provider-side contract: service definition, execution interfaces, and payment-aware integration points.

## Installation

```bash
npm install @openmerch/provider
```

## Overview

This package provides the type definitions and interfaces for building an OpenMerch provider. Providers register services on the network and implement handlers for three execution modes:

- **Sync** — request/response, returns a result immediately
- **Async** — returns a job ID, result is retrieved later
- **Stream** — emits a sequence of chunks as the execution progresses

## Usage

```ts
import type {
  ProviderConfig,
  ServiceDefinition,
  SyncHandler,
  ExecutionRequest,
  ExecutionResult,
} from "@openmerch/provider";

// Define a service
const echoService: ServiceDefinition = {
  id: "echo",
  name: "Echo Service",
  description: "Returns the input payload unchanged",
  modes: ["sync"],
  pricing: { basePrice: "0", currency: "USD" },
};

// Implement a sync handler
const handleEcho: SyncHandler = async (req: ExecutionRequest): Promise<ExecutionResult> => ({
  requestId: req.requestId,
  success: true,
  data: req.payload,
});
```

## Exported Types

- `ServiceDefinition` — metadata for a service listing
- `PricingModel` — pricing attached to a service
- `ExecutionMode` — `"sync" | "async" | "stream"`
- `ExecutionRequest` — incoming request from an agent
- `ExecutionResult` — result from a sync execution
- `StreamChunk` — a single chunk in a streaming response
- `SyncHandler`, `AsyncHandler`, `StreamHandler` — handler function types
- `ExecutionHandlers` — map of mode to handler
- `ProviderConfig` — full provider configuration

## Current Scope

This package currently exports type definitions and interfaces. Runtime client functionality is under active development.

**Payment support:** Pricing is expressed in USD-denominated units for accounting. Onchain settlement currently uses USDC on Base and Base Sepolia.

## License

[MIT](../../LICENSE)
npm package: @openmesh-network/xnode-manager-sdk
Description: TypeScript Software Development Kit for interacting with Xnode Manager.
Latest version: 1.0.9

# Xnode Manager TypeScript SDK

TypeScript Software Development Kit for interacting with Xnode Manager.

## Related Repos

https://github.com/Openmesh-Network/xnode-manager

## Versioning

Follows the xnode-manager Major and Minor version, Patch version is independent.
npm package: @openmesh-network/xnode-manager-sdk-react
Description: React Software Development Kit for interacting with Xnode Manager.
Latest version: 1.0.15

# Xnode Manager React SDK

React Software Development Kit for interacting with Xnode Manager.

## Related Repos

https://github.com/Openmesh-Network/xnode-manager

## Versioning

Follows the xnode-manager Major and Minor version, Patch version is independent.
npm package: @openmessage/node
Description: An OpenMessage helper library
Author: David Roncancio
Latest version: 0.0.4

# openmessage

## Documentation

The documentation for OpenMessage API can be found at https://docs.openmessage.io/#hello

The documentation for OpenMessage Node library can be found https://github.com/OpenMessage/om-node/wiki

## Install

`npm install @openmessage/node`

## Usage

```javascript
const OM = require('@openmessage/node');

const om = await OM(process.env.API_KEY, process.env.API_SECRET);

const contact = await om.createContact({ phone, email });
```
npm package: @openmessage/qstream
Description: Topic-Based Messaging Queue on top of Redis Streams
Author: David Roncancio
Latest version: 0.1.0

# QStream
Topic-Based Messaging Queue on top of Redis Streams


## Example

### Producer

```javascript
const streams = require('@openmessage/qstream')();

streams.publish('your-topic', data);
```

see more at [examples](/example/producer.js)

### Consumer

```javascript
const streams = require('@openmessage/qstream')();

const group = await streams.group('your-topic', 'group/queue name');

group.consume(async (data) => {
    console.log({ data });
    return true;
});

```

see more at [examples](/example/consumer.js)

## Usage

### Connection

```javascript
const QStream = require('@openmessage/qstream');
const qstream = QStream(redisUrl);
```

**redisUrl**: Valid Redis URL format

### Publish/Produce/Emit

```javascript
qstream.publish('your-topic', data);
```

**data**: can be any valid javascript object, primitive values not supported

With extra args, like maxLen, that will cap the stream to the specified length:

```javascript
qstream.publish('your-topic', data, 10);
```

Or approximated maxLen:

```javascript
qstream.publish('your-topic', data, '~10');
```

By default streams will be capped to aprox 10000 (MAXLEN ~ 10000). If you don't want your stream to be capped, you have to explicitly set the last arg of publish to `null`.

### Consumer Group

```javascript
const group = await streams.group('your-topic', 'consumer-group/queue-name');
```

Consumers in the same consumer group will load balance jobs among them


### Subscrie/Consume/Listen

```javascript
group.consume(async (data) => {
    console.log({ data });
    return true;
});
```

The function passed to the consume method can be a promise

```javascript
group.consume(console.log, 10);
```

as a second parameter to the consume function it receives the number of concurrent jobs, defaults to 1


### Debug

This lib uses [debug](https://www.npmjs.com/package/debug) to debug the processing

```bash
DEBUG=qstream:* npm start
```


## Roadmap

- [x] Add proper logging debug?
- [ ] Add linting
- [ ] Add Tests
- [ ] Add CI / CD
- [ ] Handle unacked messages (CLAIM, PENDING)
- [ ] Add pub/sub case (fanout)
- [ ] Add timeline case
- [ ] Add documentation for history rebuild
- [ ] Improve docs