---
title: "sfeed.dev"
description: "A CLI and MCP server for posting to Facebook Pages and Instagram from local files."
date: 2026-05-15
tags: [ai, ai-and-productivity]
url: https://nem035.com/projects/sfeed-dev
---

[sfeed.dev](https://sfeed.dev)

---

sfeed posts to social media from the terminal or from an AI agent.

It supports Facebook Pages and Instagram Business or Creator accounts linked to a Facebook Page. You install the CLI, connect Meta in the browser, and post. If you use an agent, you can also install the public sfeed skills so the agent knows the setup, platform limits, and scheduling commands.

Drafts can stay in markdown files. Media can stay in folders. Rules can live next to the work. An agent can read that context, prepare a post, ask for approval, and use sfeed to publish it.

## Why I built it

I wanted social posting to fit into my local agent workflow.

Most social tools put the dashboard at the center. That works for teams and campaigns. It feels heavy when the source material is already on my machine and the agent is already in my editor.

For that workflow, the posting layer should be small. It should handle auth, uploads, platform rules, scheduling, previews, and status checks. The drafts can stay where they are.

My current use case is promoting [Lound](/projects/lound-ai), my [voice journaling app](https://lound.ai). I keep launch notes, screenshots, short clips, and posting rules in a local folder. Then I ask an agent to turn that material into Facebook and Instagram posts, review the drafts, and schedule the ones I want to use.

![A Lound Facebook post created through the sfeed workflow](/images/sfeed.dev/fb.png)

![A Lound Instagram post created through the sfeed workflow](/images/sfeed.dev/ig.png)

## How it works

Install the CLI:

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

Connect your accounts:

```sh
sfeed auth facebook
```

Post directly:

```sh
sfeed post "Launch notes are live" --to facebook
sfeed post "New demo" --to instagram --media ./assets/demo.png
```

Or start the MCP server:

```sh
sfeed mcp
```

From there, an agent can inspect connected accounts, choose the right Page, draft a post, ask for approval, and publish or schedule it.

You can also install the public agent skills:

```sh
npx skills add nem035/sfeed --skill sfeed
```

The public repo also includes smaller skills for Facebook posting, Instagram posting, and hosted scheduling.

Scheduling uses the hosted scheduler:

```sh
sfeed post "Tomorrow morning update" --at "2026-06-01T09:00:00Z"
sfeed schedule status
sfeed dashboard
sfeed calendar
```

## What it handles

- Facebook Page posts
- Instagram image and video posts
- local media files
- account status checks
- connected Page lookup
- hosted scheduling
- queue status
- browser previews for scheduled posts
- MCP tools for agents

Immediate posting and MCP usage are free. Hosted scheduling is the paid part. Those posts need to run later even if your machine is off.

## What runs locally

The CLI keeps local state in `~/.sfeed`.

```txt
~/.sfeed/
  .env
  tokens.json
  subscription.json
```

The auth flow opens Meta in the browser and stores the local token state after approval. The CLI uses the hosted sfeed auth proxy, so you do not need to create your own Facebook app.

The hosted service handles OAuth callbacks, hosted scheduling, temporary staged media, preview links, and billing state.

## The agent workflow

The agent workflow is the useful part for me.

The agent can read a local folder like this:

```txt
social/
  rules.md
  drafts/
    lound-launch.md
    lound-follow-up.md
  media/
    lound-recording.png
    lound-insights.png
```

Then it can follow the rules, pair the right draft with the right image, check what is already scheduled, and ask before posting. For Lound, that might mean one post about voice journaling, one post about the best time to talk, and one short demo clip showing the recording flow.

sfeed gives the agent real tools for the final step. Social posting has a lot of small platform-specific details: text-only Facebook posts, Instagram media requirements, linked Pages, public media URLs, scheduled jobs, failed jobs, and previews. The agent should call tools for those details instead of guessing.

The MCP server exposes tools for status, auth status, connected pages, posting, schedule status, dashboard links, calendar links, preview links, listing scheduled posts, rescheduling, duplicating, and canceling.

## Account model

You do not need a separate sfeed account to start.

Run `sfeed auth facebook`, approve the Meta browser flow, and the CLI stores what it needs locally. If you only want Instagram posting, the setup still starts with Facebook. Meta requires Instagram publishing through a professional Instagram account linked to a Facebook Page.

Billing only enters the picture for hosted scheduling. The free path covers immediate posting and MCP usage.

## Try it

Start with the docs:

[Read the sfeed docs](https://sfeed.dev/docs)

Or install it directly:

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