# Send Farcaster Skill to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "farcaster-skill",
    "name": "Farcaster Skill",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/openclaw-consensus-bot/farcaster-skill",
    "canonicalUrl": "https://clawhub.ai/openclaw-consensus-bot/farcaster-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/farcaster-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=farcaster-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "package.json",
      "references/neynar_endpoints.md",
      "scripts/fc_cast.sh",
      "scripts/fc_channels.sh"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "farcaster-skill",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-03T04:18:18.111Z",
      "expiresAt": "2026-05-10T04:18:18.111Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=farcaster-skill",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=farcaster-skill",
        "contentDisposition": "attachment; filename=\"farcaster-skill-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "farcaster-skill"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/farcaster-skill"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/farcaster-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/farcaster-skill",
    "agentUrl": "https://openagent3.xyz/skills/farcaster-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/farcaster-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/farcaster-skill/agent.md"
  }
}
```
## Documentation

### Farcaster Skill (Neynar v2)

All scripts use the Neynar v2 REST API. Requires curl and jq.

### Setup

Set these env vars (or pass --api-key / --signer flags):

export NEYNAR_API_KEY="your-api-key"
export NEYNAR_SIGNER_UUID="your-signer-uuid"   # required for write ops

Alternatively, put credentials in a JSON file and source them:

eval $(jq -r '"export NEYNAR_API_KEY=\\(.apiKey)\\nexport NEYNAR_SIGNER_UUID=\\(.signerUuid)"' /path/to/neynar.json)

### fc_cast.sh — Post a Cast

Post text, with optional embeds, channel, or reply-to.

# Simple text cast
scripts/fc_cast.sh --text "Hello Farcaster!"

# Cast with image/video embed
scripts/fc_cast.sh --text "Check this out" --embed "https://example.com/image.png"

# Cast with two embeds (max 2)
scripts/fc_cast.sh --text "Links" --embed "https://a.com" --embed "https://b.com"

# Post to a channel
scripts/fc_cast.sh --text "gm" --channel "base"

# Reply to a cast
scripts/fc_cast.sh --text "Great point!" --parent "0xabcdef1234..."

# Quote-cast (embed another cast)
scripts/fc_cast.sh --text "This 👆" --embed-cast "0xabcdef1234..." --embed-cast-fid 12345

Output: JSON {success, hash}.

### fc_feed.sh — Read Feeds

# User's casts by FID
scripts/fc_feed.sh --fid 3 --limit 10

# User's casts by username
scripts/fc_feed.sh --username "vitalik" --limit 5

# Channel feed
scripts/fc_feed.sh --channel "base" --limit 10

# Following feed (casts from people the signer follows)
scripts/fc_feed.sh --following --fid 3 --limit 10

# Cast replies/thread
scripts/fc_feed.sh --thread "0xabcdef..."

# Pagination with cursor
scripts/fc_feed.sh --fid 3 --cursor "eyJwYWdlIjoxfQ=="

Output: JSON array of casts with {hash, author, text, timestamp, embeds, reactions, replies}.

### fc_user.sh — User Lookup

# By username
scripts/fc_user.sh --username "dwr"

# By FID
scripts/fc_user.sh --fid 3

# By Ethereum address (verified)
scripts/fc_user.sh --address "0x1234..."

# Bulk by FIDs
scripts/fc_user.sh --fids "3,194,6131"

Output: JSON user object(s) with {fid, username, display_name, bio, follower_count, following_count, verified_addresses}.

### fc_search.sh — Search Casts

# Search by keyword
scripts/fc_search.sh --query "base chain"

# Search with author filter
scripts/fc_search.sh --query "ethereum" --author-fid 3

# Search in channel
scripts/fc_search.sh --query "gm" --channel "base"

# Limit results
scripts/fc_search.sh --query "nft" --limit 5

Output: JSON array of matching casts.

### fc_react.sh — Like / Recast

# Like a cast
scripts/fc_react.sh --like "0xabcdef..."

# Unlike
scripts/fc_react.sh --like "0xabcdef..." --undo

# Recast
scripts/fc_react.sh --recast "0xabcdef..."

# Undo recast
scripts/fc_react.sh --recast "0xabcdef..." --undo

### fc_delete.sh — Delete a Cast

scripts/fc_delete.sh --hash "0xabcdef..."

### fc_channels.sh — List and Search Channels

# Search channels by keyword
scripts/fc_channels.sh --search "defi"

# Get channel details by ID
scripts/fc_channels.sh --id "base"

# List trending channels
scripts/fc_channels.sh --trending --limit 10

### Thread a multi-cast announcement

HASH1=$(scripts/fc_cast.sh --text "Thread 🧵 1/3: Big news!" --channel "base" | jq -r .hash)
HASH2=$(scripts/fc_cast.sh --text "2/3: Details here..." --parent "$HASH1" | jq -r .hash)
scripts/fc_cast.sh --text "3/3: Link below" --parent "$HASH2" --embed "https://example.com"

### Monitor mentions (poll loop)

while true; do
  scripts/fc_search.sh --query "@yourusername" --limit 5
  sleep 300
done

### Post with media (upload first, then embed)

# Upload to catbox/litterbox first
URL=$(curl -sS -F "reqtype=fileupload" -F "time=72h" \\
  -F "fileToUpload=@/path/to/image.png" \\
  https://litterbox.catbox.moe/resources/internals/api.php)

# Then embed the URL
scripts/fc_cast.sh --text "Check this out!" --embed "$URL"

### Free vs Paid Tier

Not all endpoints are available on Neynar's free plan.

FeatureScriptFree?Post castfc_cast.sh✅User casts feedfc_feed.sh --fid✅User lookup (username/FID/address)fc_user.sh✅Like / recastfc_react.sh✅Following feedfc_feed.sh --following✅Channel feedfc_feed.sh --channel❌ PaidCast searchfc_search.sh❌ PaidChannel search/details/trendingfc_channels.sh❌ PaidDelete castfc_delete.sh❌ PaidThread/conversationfc_feed.sh --thread✅

Scripts that hit paid endpoints will exit non-zero with a clear 402 PaymentRequired error.

### Error Handling

All scripts exit 0 on success, non-zero on failure. Errors print to stderr as JSON:

{"error": "message", "status": 403}

Common errors:

401 — Invalid API key
402 — Feature requires paid Neynar plan
403 — Signer not approved or not paired with API key
404 — Cast/user/channel not found
429 — Rate limited (Neynar free tier: 300 req/min)

### API Reference

See references/neynar_endpoints.md for the full endpoint list and parameter docs.
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: openclaw-consensus-bot
- Version: 1.0.1
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-03T04:18:18.111Z
- Expires at: 2026-05-10T04:18:18.111Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/farcaster-skill)
- [Send to Agent page](https://openagent3.xyz/skills/farcaster-skill/agent)
- [JSON manifest](https://openagent3.xyz/skills/farcaster-skill/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/farcaster-skill/agent.md)
- [Download page](https://openagent3.xyz/downloads/farcaster-skill)