Skip to content

Your agent writes the content. You still copy-paste it into three different apps.

Your agent can
finally publish.

A self-hosted publishing layer where your AI agent submits drafts, you approve from your phone, and posts go live across Bluesky, Mastodon, and X — without the multi-tool relay race.

  • Open source
  • Self-hosted
  • No SaaS fees
  • Agent-native API

The workflow that wastes your time

You automate complex systems for a living. And you're still copy-pasting between browser tabs to get a post published.

Before

  1. Agent drafts content
  2. Reformat for scheduler #1
  3. Open scheduler #2
  4. Open Bluesky manually
  5. Remember Mastodon
  6. Check formatting
  7. Check character limits
  8. Manual publish × 3 platforms

≈ 60 min/cycle

After

  1. Agent submits draft via API
  2. You approve — one tap
  3. Published everywhere

≈ 30 seconds

Core benefits

Your agent becomes a publisher

Submit via API. Review in queue. Approve from your phone. No copy-paste relay. Your publishing workflow finally matches the rest of your stack.

Your infrastructure, your data

docker compose up on your VPS. Credentials encrypted at rest. No third-party SaaS dependency. If we disappeared tomorrow, your queue is still yours.

Open protocols, not walled gardens

Bluesky via AT Protocol. Mastodon via ActivityPub. X via free-tier API. No OAuth app approval gates. No paid API dependencies in the core.

See the queue. Approve the post.

This is the actual interface. Approve from anywhere — phone, tablet, laptop.

Agent draftPending

Shipped the queue view today. Agent-drafted posts now appear with provenance badges so you know exactly what came from your agent and what you wrote yourself. One tap to approve. Posts go out across all connected platforms.

🦋 Bluesky · 🐘 MastodonToday 14:00

How it works

Your agent submits a draft

A single API call. Any HTTP client works — curl, Python, OpenClaw, whatever your stack uses. The post lands in your queue with full authorship provenance.

You review from your phone

A mobile-first queue you can operate with one thumb. Approve, edit, or reject. The approval workflow is on by default — nothing publishes without your say-so.

The system formats and publishes

One draft becomes platform-specific variants. Thread splitting for X, proper formatting for Bluesky and Mastodon. Each version previewed before you approve.

The problem isn't your agent. It's the last mile.

Your agent can write. It cannot publish. And no existing tool was built to close that gap.

Typefully is beautiful but stops at X and LinkedIn, isn't self-hosted, and your agent can't touch it. Buffer caps you fast, charges per channel, and has no agent interop. Postiz promised open-source freedom and delivered broken integrations.

The category is full of schedulers. None of them were built for the workflow you actually run: agent drafts content, human reviews it, system publishes it across platforms.

What you need isn't a better scheduler. It's a publishing layer your agent can operate — with a human trust boundary built in.

You always know what you're approving

Every post carries visible provenance. The trust boundary is the product.

Agent draftWritten by your agent. Waiting for your approval before anything happens.
Human draftWritten by you directly in the compose screen.
Edited from agent draftYour agent drafted it, you changed it. The edit is recorded.

Human approval is on by default. Not buried in settings — it's how the product works. Nothing publishes without your say.

Any agent. Any HTTP client.

The API is standard REST. If your agent can send an HTTP request, it can submit to SocialV2. OpenClaw is the reference implementation — not a requirement.

curl -X POST https://your-instance/api/v1/posts \
  -H "Authorization: Bearer sv2_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Your agent-drafted post content here.",
    "platforms": ["bluesky", "mastodon"],
    "scheduled_for": null
  }'

Posts appear in your approval queue instantly via Server-Sent Events. Full API docs cover submission, queue management, platform connections, and webhook notifications.

  • MIT Licensed
  • Self-Hosted
  • Bluesky · Mastodon · X
  • REST API
  • Docker Deploy

Ready when you are.

  1. Clone the repositorygit clone from GitHub
  2. Copy the env templatecp .env.example .env and set your basics
  3. Start the stackPostgreSQL, job runner, and app server come up together
  4. Connect your platformsBluesky handle + app password. Mastodon instance URL + access token. X API keys.
  5. Point your agent at the APIOne REST endpoint, standard auth. If your agent can draft, it can now submit.
$ docker compose up -d

No account required. No credit card. Self-hosted on your infrastructure.

Need a VPS? Hetzner Cloud starts at €4.15/mo and runs SocialV2 comfortably. DigitalOcean and Vultr also work well.