open-index/open-npm huggingface dataset:
npm package: @openpets/21st-dev
Description: Generate beautiful UI components using 21st.dev Magic - AI-powered component generation based on the 21st.dev component library. Uses the official @21st-dev/magic MCP server.
Latest version: 1.0.0

# 21st.dev

AI-powered UI component generation for OpenPets. Generate beautiful, modern UI components using 21st.dev Magic - inspired by the v0 approach.

## Features

- **AI Component Generation**: Create UI components by describing them in natural language
- **Logo Search**: Find and add company logos from the SVGL library
- **Component Inspiration**: Browse and get inspired by existing 21st.dev components
- **Component Refinement**: Improve and refine existing UI components

## Setup

### 1. Get an API Key

Visit [21st.dev Magic Console](https://21st.dev/magic/console) and generate a new API key.

### 2. Configure Environment

Add your API key to `.env`:

```
21ST_DEV_ACCESS_TOKEN=your-api-key-here
```

Or export it in your shell:
```bash
export 21ST_DEV_ACCESS_TOKEN=your-api-key-here
```

### 3. Build and Test

```bash
bun install
pets build
```

## Available Tools

### Test Connection
- `twenty-first-dev-test-connection` - Test the 21st.dev connection and configuration status

### UI Component Generation
- `21st-dev-21st-magic-component-builder` - Create new UI components from natural language descriptions
- `21st-dev-21st-magic-component-inspiration` - Browse and get inspiration from 21st.dev component library
- `21st-dev-21st-magic-component-refiner` - Refine and improve existing UI components

### Logo Search
- `21st-dev-logo-search` - Search for company logos in JSX, TSX, or SVG format

## Usage Examples

### Create a Component
```
Create a modern navigation bar with responsive design
```

### Search for Logos
```
Search for GitHub and Discord logos in TSX format
```

### Get Inspiration
```
Show me examples of beautiful card components
```

### Refine a Component
```
Improve the styling of this button component
```

## Pricing

During the beta period, all features are free. Check [21st.dev](https://21st.dev/magic) for current pricing.

## Links

- [21st.dev](https://21st.dev)
- [Magic Console](https://21st.dev/magic/console)
- [Documentation](https://21st.dev/docs)
- [Discord Community](https://discord.gg/Qx4rFunHfm)
npm package: @openpets/fal
Description: FAL AI image and video generation plugin for OpenCode - text-to-image, image-to-image, text-to-video, and image-to-video using Flux, Stable Diffusion, Kling, and more
Latest version: 1.0.2

# FAL AI Image & Video Generation

FAL AI image and video generation plugin for OpenCode - text-to-image, image-to-image, text-to-video, and image-to-video using Flux, Stable Diffusion, Kling, and more.

## Features

- **Text-to-Image**: Generate images from text descriptions using Flux, Stable Diffusion, and other models
- **Image-to-Image**: Transform existing images with style transfer, editing, and variations
- **Text-to-Video**: Create videos from text prompts using Kling, Runway Gen-3, and more
- **Image-to-Video**: Animate static images with camera movements and effects

## Installation

```bash
npm install openpets/fal
```

## Setup

1. Get your FAL AI API key from [https://fal.ai](https://fal.ai)
2. Create a `.env` file in the plugin directory:

```bash
FAL_KEY=your-api-key-here
```

## Usage

### Generate an image

```bash
opencode run "generate an image of a sunset over the ocean"
```

### Transform an image

```bash
opencode run "transform this image into watercolor style"
```

### Generate a video

```bash
opencode run "generate a video of clouds drifting across the sky"
```

### Animate an image

```bash
opencode run "animate this image with a camera pan"
```

## Available Tools

- `fal-generate-image`: Generate images using FAL AI text-to-image models
- `fal-transform-image`: Transform images using FAL AI image-to-image models
- `fal-generate-video`: Generate videos using FAL AI text-to-video models
- `fal-animate-image`: Animate static images using FAL AI image-to-video models

## Testing

Run individual test scripts:

```bash
npm run test:generate-image
npm run test:transform-image
npm run test:generate-video
npm run test:animate-image
```

## License

MIT
npm package: @openpets/featurebase
Description: Integrate with Featurebase to manage boards, posts, comments, changelogs, and more. Collect and prioritize user feedback, publish changelogs, and manage your product feedback loop.
Latest version: 1.0.0

# Featurebase

Integrate with [Featurebase](https://featurebase.app) to manage boards, posts, comments, changelogs, and more. Collect and prioritize user feedback, publish changelogs, and manage your product feedback loop.

## Setup

1. Get your API key from [Featurebase Settings > Integrations > API](https://featurebase.app/dashboard/settings/integrations/api)
2. Copy `.env.example` to `.env` and add your API key:

```bash
cp .env.example .env
```

3. Set `FEATUREBASE_API_KEY=sk_your_key_here` in `.env`

## Environment Variables

| Variable | Required | Description |
|---|---|---|
| `FEATUREBASE_API_KEY` | Yes | API key (Bearer token, starts with `sk_`) |
| `FEATUREBASE_HOST` | No | Custom host URL (default: `https://do.featurebase.app`) |
| `FEATUREBASE_VERSION` | No | API version (default: `2026-01-01.nova`) |

## Tools (27)

### Connection
- `featurebase-test-connection` - Verify API credentials and organization access

### Boards
- `featurebase-list-boards` - List all boards (post categories)
- `featurebase-get-board` - Get board details by ID

### Posts
- `featurebase-list-posts` - List/search posts with filtering (board, status, tags, query)
- `featurebase-get-post` - Get post details by ID
- `featurebase-create-post` - Create a new post in a board
- `featurebase-update-post` - Update post properties
- `featurebase-delete-post` - Delete a post
- `featurebase-list-voters` - List voters on a post
- `featurebase-add-voter` - Add a voter to a post
- `featurebase-remove-voter` - Remove a voter from a post

### Post Statuses
- `featurebase-list-post-statuses` - List all configured post statuses

### Comments
- `featurebase-list-comments` - List comments with optional post filtering

### Custom Fields
- `featurebase-list-custom-fields` - List all custom fields

### Changelogs
- `featurebase-list-changelogs` - List changelogs (release notes)
- `featurebase-get-changelog` - Get changelog details by ID

### Organization
- `featurebase-list-admins` - List all admins
- `featurebase-list-teams` - List all teams

### Users
- `featurebase-list-contacts` - List contacts (users)
- `featurebase-list-companies` - List companies
- `featurebase-create-company` - Create or update a company

### Conversations
- `featurebase-list-conversations` - List messenger conversations

### Webhooks
- `featurebase-list-webhooks` - List all webhooks
- `featurebase-create-webhook` - Create a new webhook
- `featurebase-get-webhook` - Get webhook details
- `featurebase-update-webhook` - Update webhook configuration
- `featurebase-delete-webhook` - Delete a webhook

## Example Queries

```
list all boards in Featurebase
list posts from a specific board
search posts with a query
create a new post
list all changelogs
test Featurebase connection
```
npm package: @openpets/find-tender
Description: Access UK government procurement notices from Find a Tender (FTS). Search for public sector tender opportunities, filter by date, stage, and more. Data is provided under the Open Government Licence.
Latest version: 0.1.0

# Find a Tender Plugin

Access UK government procurement notices from the Find a Tender service (FTS).

## Features

- **Search tenders** with date, stage, and pagination filters
- **Get tender details** by notice ID or OCID (Open Contracting ID)
- **Public data** - no API key required
- **OCDS format** - Open Contracting Data Standard 1.1.5

## Setup

No configuration required. The plugin uses the public Find a Tender API.

### Optional Environment Variables

| Variable | Description | Default |
|----------|-------------|---------|
| `FIND_TENDER_BASE_URL` | API base URL | `https://www.find-tender.service.gov.uk` |

## Tools

### find-tender-test-connection
Test API connectivity and configuration status.

### find-tender-search
Search for UK government procurement notices with filters:
- `updatedFrom` / `updatedTo` - Date range filters
- `stages` - Filter by stage (planning, tender, award)
- `limit` - Number of results (1-100, default: 25)
- `cursor` - Pagination token

### find-tender-get-by-notice-id
Get a specific tender by notice ID (format: nnnnnn-yyyy, e.g., 001060-2020).

### find-tender-get-by-ocid
Get tender records by OCID (format: ocds-h6vhtk-hhhhhh).

## Examples

```
# Search for IT tenders published recently
Search for IT procurement tenders published this month

# Find defence contracts at tender stage
Find defence contracts at tender stage

# Get specific tender details
Get tender details for notice 123456-2024

# Search with date filters
Search planning stage tenders updated from 2024-01-01 to 2024-12-31
```

## Data License

All notice data is available under the [Open Government Licence v3.0](http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/).

## API Documentation

- [Find a Tender Developer Documentation](https://www.find-tender.service.gov.uk/Developer/Documentation)
- [OCDS Release Packages API](https://www.find-tender.service.gov.uk/apidocumentation/1.0/GET-ocdsReleasePackages)
- [OCDS Record Packages API](https://www.find-tender.service.gov.uk/apidocumentation/1.0/GET-ocdsRecordPackages)
npm package: @openpets/maps
Description: Comprehensive geocoding, places search, directions, and more
Latest version: 1.0.15

# Maps Plugin

Comprehensive geocoding, places search, directions, and mapping services plugin for OpenCode.

## Features

- **Geocoding**: Convert addresses to coordinates and vice versa
- **Places Search**: Find nearby restaurants, attractions, and businesses
- **Directions**: Get driving, walking, and transit directions
- **Multiple Providers**: Support for Google Maps, Mapbox, and OpenStreetMap

## Setup

### Environment Variables

Optional environment variables for enhanced functionality:

```bash
# Google Maps API key (recommended for best results)
GOOGLE_MAPS_API_KEY=your_google_maps_api_key

# Mapbox access token (alternative provider)
MAPBOX_API_KEY=your_mapbox_access_token

# OpenStreetMap email (improves rate limits)
OSM_EMAIL=your_email@example.com
```

## Usage Examples

### Basic Queries

```bash
# Find coordinates
"find the coordinates of Times Square, New York"

# Search for places
"search for restaurants near Central Park, New York"
```

### Scenarios

#### Geocoding Workflow
```bash
"find the coordinates of Times Square, New York"
"now get the timezone for those coordinates"
"check if street view is available there"
```

#### Trip Planning
```bash
"find the coordinates of Eiffel Tower, Paris"
"search for restaurants within 500 meters of those coordinates"
"get directions from Eiffel Tower to the first restaurant"
```

#### Multi-city Route
```bash
"get directions from Times Square to Central Park"
"now get walking directions for the same route"
"calculate the distance between New York and Boston"
```

## Testing

```bash
# Test basic queries
npm run test:queries

# Test scenarios
npm run test:scenarios

# Run all tests
npm run test:all

# Quick start demo
npm run quickstart
```

## API Providers

The plugin supports multiple mapping providers:

1. **Google Maps** (Priority 1) - Most comprehensive features
2. **Mapbox** (Priority 2) - Good alternative with competitive pricing
3. **OpenStreetMap** (Priority 3) - Free and open-source option

Configure API keys in your environment to enable specific providers.
npm package: @openpets/polar
Description: Polar API integration for OpenCode - manage products, customers, and orders
Latest version: 1.0.1

# @opencode/polar

Polar API integration for OpenCode, enabling management of products, customers, and orders through the Polar platform.

## Installation

```bash
npm install @opencode/polar
```

## Setup

1. Get your Polar API token from [Polar Dashboard](https://polar.sh)
2. Find your Organization ID in your Polar settings
3. Set your credentials as environment variables:

```bash
export POLAR_TOKEN=polar_oat_your_token_here
export POLAR_ORG_ID=your_organization_id_here
```

Or create a `.env` file:

```bash
cp .env.example .env
# Edit .env and add your credentials
```

## Available Tools

### `polar-get-all-products`
Get all products from your Polar organization.

**Example:**
```typescript
{}
```

### `polar-get-product`
Get detailed information about a specific product.

**Example:**
```typescript
{
  id: "prod_123abc"
}
```

### `polar-get-all-organizations`
Get all organizations accessible with your token.

**Example:**
```typescript
{}
```

### `polar-get-all-customers`
Get all customers from your Polar organization.

**Example:**
```typescript
{}
```

### `polar-get-all-orders`
Get all orders from your Polar organization.

**Example:**
```typescript
{}
```

## Features

- ✅ Full Polar SDK integration
- ✅ Automatic pagination handling
- ✅ Type-safe responses
- ✅ Comprehensive error handling
- ✅ Environment-based configuration

## Response Format

All tools return formatted JSON strings:

```json
[
  {
    "id": "prod_123",
    "name": "Product Name",
    "description": "Product description",
    "prices": [...],
    "created_at": "2024-01-01T00:00:00Z"
  }
]
```

## Dependencies

- `@polar-sh/sdk` - Official Polar SDK
- `dotenv` - Environment variable management

## License

MIT
npm package: @openpets/polarsteps
Description: Blocked OpenPets stub for Polarsteps. No official public API or usable official spec is currently available.
Latest version: 0.0.0

# Polarsteps

This pet is intentionally blocked.

## Current Status

- `petStatus.state`: `incomplete`
- `integrationStatus.decision`: `blocked`
- `integrationStatus.blocker`: No official public API or usable official spec is currently available.

## Why It Is Blocked

Public investigation found no official API reference, no OpenAPI/Swagger spec, and no official MCP server. Community tooling depends on undocumented endpoints and a browser remember_token cookie.

## Risk Notes

- No public developer portal or API reference found
- robots.txt disallows /api/*
- Community integrations are explicitly unofficial

## What Would Unblock It

1. Contact Polarsteps for official API or partner access
2. Revisit if an official API, OpenAPI spec, or MCP server is published

Recommended next step: Obtain official API or partner access before implementing this pet.
npm package: @openpets/post-bridge
Description: OpenAPI-based Post Bridge integration for listing social accounts, creating posts, managing media, monitoring post results, and syncing analytics.
Latest version: 1.0.0

# Post Bridge Pet

OpenAPI-based OpenPets plugin for the official Post Bridge API.

This pet is generated from Post Bridge's official Scalar API reference at `https://api.post-bridge.com/reference` and includes:
- auto-generated endpoint tools (`openapi-tools.ts`)
- shared API client utilities (`openapi-client.ts`)
- a custom `post-bridge-test-connection` tool with graceful not-configured behavior

## Why `openapi.json` is committed

Post Bridge currently publishes docs through Scalar but does not expose a stable public `openapi.json` URL in the reference page.
To keep generation deterministic and avoid scraping at runtime, the embedded official spec is extracted once and stored as `openapi.json` in this pet.

## Setup

1. Copy `.env.example` to `.env`
2. Set `POST_BRIDGE_API_KEY`
3. (Optional) Set `POST_BRIDGE_HOST` to override the API base URL

## Build and test

```bash
bun run pets validate pets/post-bridge
bun run pets build post-bridge
bun run test:pet -- post-bridge --query "test post-bridge connection"
```

## Example queries

- `test post-bridge connection`
- `list my post bridge social accounts`
- `list my recent post bridge posts`
- `create a draft post in post bridge`
npm package: @openpets/songsterr
Description: Search and retrieve guitar, bass, and drums tabs and chords from Songsterr's extensive music library. NOTE: Songsterr public API is currently returning 404 errors.
Latest version: 1.0.0

# Songsterr Plugin (API Deprecated)

> ⚠️ **Important**: The Songsterr public API appears to have been deprecated or changed. The endpoints documented in various sources are no longer returning data. This plugin is marked as incomplete until the API can be verified to work.

Search and retrieve guitar, bass, and drums tabs and chords from Songsterr's extensive music library.

## Features

- **Search Songs** - Find songs by title or artist name
- **Get Tabs** - Retrieve all available tabs for a specific song
- **Artist Tabs** - Get all tabs for a specific artist
- **Chord Search** - Find songs with chord charts
- **Best Match** - Quick lookup for specific songs

## Installation

This plugin does not require any API keys. The Songsterr public API was free to use.

```bash
pets install songsterr
```

## API Status

The Songsterr public API (`/a/ra/*`) is currently returning 404 errors. This may be a temporary issue or the API may have been deprecated. 

Alternative services to consider:
- **Ultimate Guitar** - Major guitar tab service with API access
- **Chordify** - Chord and tab service with API

## Usage

### Search for tabs

```bash
opencode run "search for tabs for Stairway to Heaven"
```

### Find tabs by artist

```bash
opencode run "find tabs by artist Metallica"
```

### Get chords for a song

```bash
opencode run "search for chord tabs for Wonderwall"
```

## Tools

- `songsterr-search-songs` - Search for songs in the Songsterr database
- `songsterr-get-tabs` - Get all available tabs for a specific song
- `songsterr-get-tabs-by-artist` - Get all songs and tabs for a specific artist
- `songsterr-search-chords` - Search for songs with chord charts
- `songsterr-best-match` - Get the best matching song for a search query

## Requirements

- No API key required (was free public API)
- Internet connection to access Songsterr API

## License

This plugin is not affiliated with Songsterr. Data was provided by Songsterr's public API.
npm package: @openpets/ticket-tailor
Description: Access Ticket Tailor box office data including event series, events, orders, issued tickets, memberships, discounts, stores, vouchers, and reporting endpoints.
Latest version: 1.0.0

# Ticket Tailor

Ticket Tailor pet for OpenPets.

This pet uses a hand-authored OpenAPI specification derived from the official Ticket Tailor REST docs at `https://developers.tickettailor.com/docs/api/ticket-tailor-api`.

## Status

This is an initial scaffold focused on high-value read endpoints plus a connection check. The underlying spec can be expanded over time as more request and response details are captured from the docs.

## Setup

1. Generate an API key in your Ticket Tailor box office settings.
2. Add it to `.env`:

```bash
TICKET_TAILOR_API_KEY=your_api_key_here
```

## Authentication

Ticket Tailor uses HTTP Basic Auth with the API key as the username and an empty password. The pet config uses `basicAuthFormat: "apikey-colon"` so requests are sent as `Authorization: Basic base64(api_key:)`.

## Included API Areas

- ping and overview
- events and event series
- orders and issued tickets
- membership types and issued memberships
- discounts, holds, checkout forms, products, stores, vouchers, and voucher codes
- check-ins, overrides, and waitlist signups

## Commands

```bash
bun run generate
bun run build
bun run test:connection
```

## Notes

- The official Ticket Tailor docs do not currently expose an OpenAPI or Swagger document.
- This pet uses a local `openapi-spec.yaml` file so the spec can evolve inside the repository.
- Ticket Tailor rate limits the API to 5000 requests per 30 minutes, with lower limits on some endpoints.
npm package: @openpets/ticketmaster
Description: Search for events, attractions, venues, and classifications using the Ticketmaster Discovery API. Find concerts, sports, arts, and more with powerful filtering by location, date, genre, and more.
Latest version: 1.0.0

# Template

This is a starter template for creating a new pet.

## Quick Start

1. Update package.json metadata
2. Replace tools in index.ts
3. Add required environment variables to .env.example
4. Run `pets build`
npm package: @openpets/trustmrr
Description: Browse verified startup revenue data from TrustMRR, filter opportunities by growth and pricing, and retrieve detailed startup profiles.
Latest version: 1.0.0

# TrustMRR

OpenPets plugin for the TrustMRR API.

Use it to:
- verify your API connection
- browse startup listings with filters (revenue, MRR, growth, price, category, sale status)
- fetch full details for a startup by slug

## Setup

1. Create an API key at `https://trustmrr.com/dashboard-dev`.
2. Copy `.env.example` to `.env`.
3. Set `TRUSTMRR_API_KEY` in `.env`.

## Tools

- `trustmrr-test-connection`: Validates API key and connectivity.
- `trustmrr-list-startups`: Lists/filter startups with pagination and sort options.
- `trustmrr-get-startup`: Gets full details for a startup slug.

## Local development

```bash
pets build
opencode run "test trustmrr connection"
opencode run "list startups with MRR above $1,000"
```

From repo root, you can also run:

```bash
# pets exec tests from home folder
bun run test:pet -- trustmrr

# ad-hoc single tool from home folder
bun run test:pet -- trustmrr --tool trustmrr-list-startups --args '{"limit":1}'

# opencode smoke test from home folder
bun run test:pet:opencode -- trustmrr --query "test trustmrr connection"
```

If your shell exports `OPENCODE*` variables (desktop-attached sessions), run direct CLI with a clean env:

```bash
env -u OPENCODE -u OPENCODE_CLIENT -u OPENCODE_PID -u OPENCODE_SERVER_PASSWORD -u OPENCODE_SERVER_USERNAME \
  opencode run --format json "test trustmrr connection"
```

## Notes

- Base URL: `https://trustmrr.com/api/v1`
- Auth: Bearer token via `Authorization: Bearer <TRUSTMRR_API_KEY>`
- Rate limit: 20 requests per minute per API key
npm package: @openpets/typefully
Description: Typefully plugin for OpenCode - schedule posts, create drafts, and manage content across multiple social media platforms (X/Twitter, LinkedIn, Bluesky, Threads, Mastodon)
Latest version: 1.0.0

# Typefully

Social media scheduling plugin for OpenCode - schedule posts, create drafts, and manage content across multiple social media platforms.

## Supported Platforms

- X (Twitter)
- LinkedIn
- Bluesky
- Threads
- Mastodon

## Setup

### 1. Get API Key

1. Go to [Typefully Settings > Integrations](https://typefully.com/settings/integrations)
2. Create a new API key
3. Copy the key

### 2. Get Social Set ID

The Social Set ID represents the account(s) you want to manage. You can get it by:
1. Running `typefully-list-social-sets` tool
2. Or enable Development Mode in Typefully (Cmd/Ctrl+K) to see IDs in the UI

### 3. Configure Environment

Copy `.env.example` to `.env` and fill in your credentials:

```bash
TYPEFULLY_API_KEY=your_api_key_here
TYPEFULLY_SOCIAL_SET_ID=your_social_set_id
```

## Available Tools

### Connection
- `typefully-test-connection` - Test connection and get user/account details

### Social Sets
- `typefully-list-social-sets` - List all connected social accounts
- `typefully-get-social-set` - Get details for a specific social set

### Drafts
- `typefully-list-drafts` - List all drafts with filtering and sorting
- `typefully-get-draft` - Get detailed information about a draft
- `typefully-create-draft` - Create a new draft
- `typefully-update-draft` - Update an existing draft
- `typefully-delete-draft` - Delete a draft
- `typefully-publish-draft` - Publish a draft immediately
- `typefully-schedule-draft` - Schedule a draft for a specific time

### Tags
- `typefully-list-tags` - List all tags
- `typefully-create-tag` - Create a new tag
- `typefully-delete-tag` - Delete a tag
- `typefully-add-tag-to-draft` - Add a tag to a draft
- `typefully-remove-tag-from-draft` - Remove a tag from a draft

### Media
- `typefully-get-upload-url` - Get presigned URL for uploading media

## Example Usage

### Create a simple post
```json
{
  "content": "Hello world from Typefully!"
}
```

### Create a thread
```json
{
  "content": "Thread part 1\n\n\n\nThread part 2\n\n\n\nThread part 3"
}
```

### Schedule a post
```json
{
  "content": "Scheduled post content",
  "publishAt": "2025-01-15T09:00:00Z"
}
```

### Publish immediately
```json
{
  "content": "Posting now!",
  "publishAt": "now"
}
```

## API Documentation

For more details, see the [Typefully API Documentation](https://typefully.com/docs/api).

## License

MIT
npm package: @openpets/unifi-protect
Description: UniFi Protect is Ubiquiti's video security platform. This plugin provides AI tools to interact with UniFi Protect cameras, doorbells, motion events, and more via OpenAPI.
Latest version: 1.0.0

# Template

This is a starter template for creating a new pet.

## Quick Start

1. Update package.json metadata
2. Replace tools in index.ts
3. Add required environment variables to .env.example
4. Run `pets build`
npm package: @openpets/voiceflow
Description: Plugin for interacting with Voiceflow AI agents. Supports Dialog Manager API for conversational interactions, project/version management, and knowledge base operations.
Latest version: 1.0.0

# Template

This is a starter template for creating a new pet.

## Quick Start

1. Update package.json metadata
2. Replace tools in index.ts
3. Add required environment variables to .env.example
4. Run `pets build`
npm package: @openpets/x-twitter
Description: OpenPets plugin for X API v2 focused on core read workflows for users and posts.
Latest version: 1.0.0

# X (Twitter)

OpenPets plugin for X API v2 focused on core user and post lookup workflows.

## Setup

1. Create a token in the X developer portal.
2. Set `X_API_ACCESS_TOKEN` in your local `.env` or pet config.
3. Optional: set `X_TWITTER_HOST` to override the API host.

## Token Types

- App bearer token: good for many read-only app-context endpoints.
- OAuth2 user token: required for user-context endpoints like `/2/users/me` and any scoped user actions.

## Common Scope Guidance

- `users.read` for user profile lookup endpoints.
- `tweet.read` for post search and post lookup endpoints.

If you get `401`/`403`, verify both scope grants and plan access for the endpoint in your X developer account.

## Quick Test

Run:

```bash
cd pets/x-twitter
opencode run "test x-twitter connection" --print-logs
```
npm package: @openpets/youtube
Description: YouTube plugin for OpenCode - extract transcripts, subtitles, and video metadata using yt-dlp
Latest version: 1.0.3

# YouTube Plugin for OpenPets

Extract transcripts, subtitles, and video metadata from YouTube videos.

## Requirements

This plugin requires `yt-dlp` to be installed:

```bash
# macOS
brew install yt-dlp

# Linux/Windows via pip
pip install yt-dlp

# Using uv (recommended)
uv pip install yt-dlp
```

## Tools

### youtube-test-connection

Test plugin setup and yt-dlp installation.

### youtube-get-subtitles

Extract subtitles/transcript from a YouTube video.

**Parameters:**
- `videoUrl` (required): YouTube video URL
- `language` (optional): Subtitle language code (default: 'en')
- `autoGenerated` (optional): Include auto-generated subtitles (default: true)
- `format` (optional): Output format - 'txt', 'srt', 'vtt', or 'json' (default: 'txt')

### youtube-get-video-info

Get detailed video metadata including available subtitle languages.

**Parameters:**
- `videoUrl` (required): YouTube video URL

## Example Usage

```bash
# Get plain text transcript
opencode run "get the transcript from https://www.youtube.com/watch?v=VIDEO_ID"

# Get subtitles in Spanish
opencode run "get spanish subtitles from https://www.youtube.com/watch?v=VIDEO_ID"

# Get video metadata
opencode run "get info about https://www.youtube.com/watch?v=VIDEO_ID"
```

## License

MIT