← 返回 Skills 市场
openclaw-consensus-bot

Farcaster Skill

作者 openclaw-consensus-bot · GitHub ↗ · v1.0.1
cross-platform ⚠ suspicious
1104
总下载
0
收藏
3
当前安装
2
版本数
在 OpenClaw 中安装
/install farcaster-skill
功能描述
Post, read, search, and engage on Farcaster via the Neynar API. Use when an agent needs to: (1) post casts with text, embeds, or in channels, (2) reply to or thread casts, (3) read a user's feed or a channel feed, (4) search casts by keyword, (5) look up user profiles by username or FID, (6) like or recast, (7) delete casts, (8) list or search channels. Pure bash+curl+jq — zero npm dependencies.
使用说明 (SKILL.md)

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)\
export NEYNAR_SIGNER_UUID=\(.signerUuid)"' /path/to/neynar.json)

Scripts

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

Common Patterns

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.

Feature Script Free?
Post cast fc_cast.sh
User casts feed fc_feed.sh --fid
User lookup (username/FID/address) fc_user.sh
Like / recast fc_react.sh
Following feed fc_feed.sh --following
Channel feed fc_feed.sh --channel ❌ Paid
Cast search fc_search.sh ❌ Paid
Channel search/details/trending fc_channels.sh ❌ Paid
Delete cast fc_delete.sh ❌ Paid
Thread/conversation fc_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.

安全使用建议
What to check before installing: - The code implements exactly what it claims (Farcaster via Neynar) but the registry metadata is incomplete: you must supply NEYNAR_API_KEY and NEYNAR_SIGNER_UUID and have curl, jq, and python3 available. Treat that omission as a red flag: prefer skills that declare their requirements explicitly. - Inspect the scripts yourself (they are plain bash). Pay special attention to the SKILL.md examples that show eval'ing jq on a JSON file you supply; only source credentials from files you trust, because eval-style commands can execute arbitrary content if misused. - The media-upload example posts files to a third-party host (litterbox.catbox.moe). If you will upload private images, review the privacy/security policy of that service or host media on a place you control. - The SKILL.md recommends a polling loop for mentions; continuous polling increases network traffic and risk of credential exposure in logs—if you enable monitoring, consider rate limits and where logs go. - Because the skill source and homepage are unknown, prefer installing from a trusted origin. If you plan to use it, require the owner to update registry metadata to list required env vars and binaries, and consider running the included smoke tests in an isolated environment first. If you want, I can produce a short checklist of commands to manually audit the scripts (what to grep for) or a set of recommended metadata fixes to ask the publisher to make.
功能分析
Type: OpenClaw Skill Name: farcaster-skill Version: 1.0.1 The `SKILL.md` file contains an `eval` instruction for loading API keys and signer UUIDs from a JSON file. While intended for convenient setup, this `eval` command presents a significant prompt injection vulnerability, as a malicious prompt could instruct the AI agent to source a specially crafted JSON file, leading to arbitrary command execution. Additionally, the skill includes an example of uploading files to `litterbox.catbox.moe` via `curl`, which, while plausible for media embeds, involves interaction with an external, third-party service. The core scripts themselves appear to be benign and focused on the stated Farcaster API interactions.
能力评估
Purpose & Capability
The scripts and documentation implement a Farcaster client against the Neynar v2 API (posting, reading, searching, reacting, deleting). That matches the skill's name/description. However the registry metadata claims no required environment variables or binaries, while the SKILL.md, README, tests, and scripts clearly require NEYNAR_API_KEY and (for write operations) NEYNAR_SIGNER_UUID, plus runtime tools curl, jq, and python3. The omission of those requirements in the registry metadata is an inconsistency that should be corrected before trusting the skill.
Instruction Scope
SKILL.md and the shell scripts stay within the described Farcaster/Neynar functionality. Notable behaviors: it suggests eval'ing a jq command to export credentials from a JSON file (this runs jq on a local path you supply), it includes an example polling loop to repeatedly query mentions, and it demonstrates uploading media via a third-party service (litterbox.catbox.moe). These are reasonable for a CLI client but increase the risk surface (local file sourcing and long-running polling -> more opportunity for accidental credential exposure or unexpected network activity).
Install Mechanism
There is no install spec (instruction-only with shipped shell scripts). No remote downloads or archive extraction are performed by an installer. The presence of executable scripts means files will be present on disk when installed, but nothing in the repository attempts to fetch or execute arbitrary remote code at install time.
Credentials
The scripts require NEYNAR_API_KEY for all API calls and NEYNAR_SIGNER_UUID for write operations; they also expect curl, jq, and python3. Those credentials are directly relevant to the skill's purpose (API access and signer identity), so they are proportionate — but the registry/metadata incorrectly lists no required env vars or binaries. That mismatch (declared zero vs actual required secrets/tools) is misleading and increases risk because a user may not realize they must provide an API key and signer UUID.
Persistence & Privilege
The skill does not request always:true, does not persist or modify other skills' configs, and only runs on invocation (user-invocable / agent-invocable is default). There is no evidence of privileged or permanent agent-wide hooks.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install farcaster-skill
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /farcaster-skill 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.1
Republish to fix registry visibility
v1.0.0
- Initial release of farcaster-skill, providing bash scripts to interact with Farcaster via the Neynar v2 API. - Supports posting, replying, reading feeds, searching casts, user lookups, liking/recasting, deleting casts, and listing/searching channels. - Zero npm dependencies: uses only bash, curl, and jq. - Comprehensive script usage examples and environment setup instructions included. - Handles free and paid Neynar API endpoints with clear error output and exit codes. - Scripts print JSON output for easy integration and automation.
元数据
Slug farcaster-skill
版本 1.0.1
许可证
累计安装 3
当前安装数 3
历史版本数 2
常见问题

Farcaster Skill 是什么?

Post, read, search, and engage on Farcaster via the Neynar API. Use when an agent needs to: (1) post casts with text, embeds, or in channels, (2) reply to or thread casts, (3) read a user's feed or a channel feed, (4) search casts by keyword, (5) look up user profiles by username or FID, (6) like or recast, (7) delete casts, (8) list or search channels. Pure bash+curl+jq — zero npm dependencies. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 1104 次。

如何安装 Farcaster Skill?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install farcaster-skill」即可一键安装,无需额外配置。

Farcaster Skill 是免费的吗?

是的,Farcaster Skill 完全免费(开源免费),可自由下载、安装和使用。

Farcaster Skill 支持哪些平台?

Farcaster Skill 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Farcaster Skill?

由 openclaw-consensus-bot(@openclaw-consensus-bot)开发并维护,当前版本 v1.0.1。

💬 留言讨论