npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@sfeed/cli

v0.3.4

Published

Social media posting and scheduling CLI + MCP server

Downloads

849

Readme

@sfeed/cli

Post to Facebook Pages and Instagram from the terminal or through MCP.

sfeed is a CLI and MCP server for AI agents. It handles auth, immediate posting, hosted scheduling, and billing for hosted scheduling.

Install

curl -fsSL https://sfeed.dev/install.sh | sh

Requires Node.js 20+ installed on your machine.

The install script is the default path. It installs a managed local sfeed command and uses a direct release when one is available for your platform. npm remains supported as an alternative:

npm install -g @sfeed/cli

Quick start

sfeed auth facebook connect
sfeed auth instagram connect
sfeed destinations
sfeed mcp

Run the command for each platform you want, then start the MCP server for an agent.

Agent plugins

Codex and Claude can install the sfeed plugin from the public nem035/sfeed repository. The plugin bundles the sfeed skill and local MCP server entry. You still need the CLI installed locally and connected with sfeed auth facebook connect or sfeed auth instagram connect.

For Codex:

codex plugin marketplace add nem035/sfeed --sparse .agents/plugins --sparse plugins

For Claude:

claude plugin marketplace add nem035/sfeed
claude plugin install sfeed@sfeed

Core commands

sfeed auth facebook connect
sfeed auth instagram connect
sfeed auth status
sfeed auth facebook revoke
sfeed auth instagram revoke

sfeed post "content"
sfeed post "content" --to facebook
sfeed post "content" --to instagram
sfeed post "content" --page "Acme Robotics"
sfeed post "content" --to facebook --media ./assets/launch-card.jpg
sfeed post "content" --to instagram --kind reel --media ./assets/demo.mp4
sfeed post "content" --to facebook --kind story --media ./assets/story.jpg
sfeed post "content" --at "2026-04-01T09:00:00Z"
sfeed post "content" --dry-run

sfeed posts list --page "Acme Robotics"
sfeed posts show <post-id> --page "Acme Robotics"
sfeed posts edit <post-id> --page "Acme Robotics" --content "Updated content"
sfeed posts delete <post-id> --page "Acme Robotics" --yes

sfeed pages
sfeed destinations
sfeed dashboard
sfeed dashboard --view calendar
sfeed calendar
sfeed schedule open
sfeed schedule calendar
sfeed schedule status
sfeed schedule list
sfeed schedule list --status failed
sfeed schedule list --status posted
sfeed schedule preview <id>
sfeed schedule reschedule <id> --at "2026-04-02T09:00:00Z"
sfeed schedule duplicate <id> --at "2026-04-03T09:00:00Z"
sfeed schedule cancel <id>

sfeed agents create --name codex --scopes publish,schedule --all-destinations
sfeed agents create --name campaign --scopes publish --destinations <id>,<id>
sfeed agents list
sfeed agents revoke <key-id>
sfeed audit
sfeed audit --json

sfeed doctor
sfeed status
sfeed telemetry status
sfeed telemetry on
sfeed telemetry off
sfeed report "Facebook auth got stuck"
sfeed billing
sfeed billing subscribe
sfeed billing portal
sfeed mcp

Facebook published-post listing, reading, editing, and deletion require Meta to enable Page read access for sfeed. Run sfeed doctor to verify that capability separately from publishing access.

Scoped agent access

Create agent keys from an owner session after inspecting canonical destination IDs:

sfeed destinations
sfeed agents create --name codex --scopes publish,schedule --destinations <id>,<id>
# Or deliberately include every current and future destination:
sfeed agents create --name codex --scopes publish,schedule --all-destinations

Creation prints SFEED_USER_ID and SFEED_AGENT_TOKEN exactly once. Pass both to the isolated process or MCP configuration. Do not save the agent token in the owner's ~/.sfeed/.env.

SFEED_USER_ID=<owner-user-id> SFEED_AGENT_TOKEN=<one-time-token> sfeed mcp

The publish alias grants destination reads, immediate publishing, and media staging. schedule grants destination and schedule reads, schedule mutations, and media staging. read grants destination and schedule reads. all grants every agent data-plane scope. Explicit destination lists stay fixed; --all-destinations includes destinations connected later.

Connection management, billing, agent-key management, audit access, and signed dashboard or preview URLs remain owner only. Immediate publishes automatically use an idempotency key. Rotate a key by revoking it and creating a replacement. Owners can inspect content-free hosted activity with sfeed audit --json; events are retained for 365 days.

An environment variable is not a security boundary. A process that can read the owner's ~/.sfeed/tokens.json can recover the owner credential and bypass agent-key limits. Run untrusted agents under a separate OS user, container, or sandbox that cannot read the owner's sfeed home directory.

Posting

  • sfeed destinations lists every connected Facebook or Instagram publishing destination
  • If one destination matches a selected platform, sfeed post uses it automatically
  • If multiple destinations match, pass --page with the account name or ID
  • --media accepts local files or public URLs
  • sfeed stages local files automatically when Instagram or hosted scheduling needs a public URL
  • Facebook supports text-only, single-image, multi-image, and single-video posts
  • Facebook also supports Page Reels and Page Stories with --kind reel or --kind story
  • Instagram supports feed media, Reels, Stories, and image-only carousel posts
  • Use --kind feed, --kind reel, --kind story, or --kind carousel when the media shape alone is not clear
  • Instagram does not support text-only posts

Scheduling

  • --at schedules the post for later
  • sfeed schedule preview <id> opens a hosted browser preview for a scheduled post
  • sfeed dashboard opens the hosted browser UI for your whole queue
  • sfeed dashboard --view calendar and sfeed calendar open the same queue as a month calendar
  • sfeed schedule open is the same browser queue, kept as a compatibility alias
  • sfeed schedule status shows queue state, last publish attempt, and recent failures
  • sfeed schedule reschedule <id> --at ... moves a pending post to a new time
  • sfeed schedule duplicate <id> [--at ...] copies an existing post into a fresh pending job
  • hosted scheduling requires a subscription
  • scheduled local-file media must be within 90 days
  • local staged files must be 100 MB or smaller
  • hosted scheduling checks for due posts every minute
  • schedule times must be ISO 8601 with a timezone, for example 2026-04-01T09:00:00Z
  • staged local media is served through short-lived signed URLs for previews and publish jobs

Telemetry

Anonymous CLI telemetry is enabled by default.

sfeed telemetry status
sfeed telemetry on
sfeed telemetry off

Telemetry sends command usage, command failures, CLI version, OS, and Node version. It never sends post content, media, tokens, account IDs, page IDs, account names, billing details, or file paths. Set SFEED_TELEMETRY=0 to disable it from the environment.

Problem reports

Send a problem report from the CLI:

sfeed report "Facebook auth got stuck after browser approval" --email [email protected]

The report stores your message, optional contact email, command context, CLI version, OS, and Node version in the hosted service. Automatic crash reports use the same path when telemetry is enabled. Crash reports include the crash message and stack. The reporter redacts bearer tokens, obvious token fields, and your home directory path before sending.

Updates

sfeed checks npm for newer CLI version metadata at most once per day when you run an interactive terminal command. It skips MCP, help, version output, CI, and non-interactive shells.

When a newer version is available, sfeed asks whether to update. Release installs update through the installer at https://sfeed.dev/install.sh. npm-installed CLIs update through npm.

Disable the update check with:

SFEED_UPDATE_CHECK=0

Preview flow:

sfeed post "content" --to facebook --page "Acme Robotics" --at "2026-04-01T09:00:00Z"
sfeed schedule status
sfeed dashboard
sfeed schedule preview <id>

MCP

sfeed works as an MCP server. Start it with:

sfeed mcp

Example Claude Desktop config:

{
  "mcpServers": {
    "sfeed": {
      "command": "sfeed",
      "args": ["mcp"]
    }
  }
}

MCP tools

  • sfeed_status
  • sfeed_auth_status
  • sfeed_destinations
  • sfeed_pages
  • sfeed_post
  • sfeed_facebook_posts_list
  • sfeed_facebook_post_get
  • sfeed_facebook_post_update
  • sfeed_facebook_post_delete
  • sfeed_schedule_status
  • sfeed_schedule_dashboard_url
  • sfeed_schedule_preview_url
  • sfeed_schedule_list
  • sfeed_schedule_reschedule
  • sfeed_schedule_duplicate
  • sfeed_schedule_cancel
  • sfeed_report_problem

Full docs: https://sfeed.dev/docs

Useful guides:

  • Cookbook: https://sfeed.dev/docs/cookbook
  • Codex: https://sfeed.dev/docs/codex
  • Claude Code: https://sfeed.dev/docs/claude-code
  • OpenCode: https://sfeed.dev/docs/opencode