Agent-native publishing

Your Agent Drafts.
You Decide What Ships.

The self-hosted publishing queue that closes the last mile between your agent's drafts and live posts on Bluesky, Mastodon, and X. One approval from your phone.

View on GitHubFree · Open source · Self-hosted · Log in
9:41
▲▲▲wifi▓▓
Agent draftPending

5am thought: half my content never makes it to Mastodon. Agent queued a thread. Approving now.

BlueskyMastodonX
Agent draftScheduled · Today 3pm

Docker deploy worked first time. Queue is live. First agent submission just landed — approving in 3 seconds.

BlueskyMastodon
Agent draftScheduled · Tomorrow 9am

Why operators choose self-hosted tooling in 2026 — and what that means for the open web.

BlueskyX
Human draftPublished · 2h ago

Your workflow, your rules. Self-hosted, Docker, MIT licence.

BlueskyMastodonX
Agent draftPending

Built for operators who trust their stack more than SaaS promises.

Bluesky
QueueComposeHistory

Your agent drafts a post in seconds.

Getting it published still takes 45 minutes..

The draft lands in your notes.Copy → Typefully

Now reformat for each platform.Reformat × platforms

Remember to post to Mastodon today.Mastodon? Maybe.

Repeat every time the agent produces output.Every single time.

The cost today
45mto manually publish what the agent wrote in seconds
60%of cross-posts don't happen when the workflow breaks
4+tools in the relay race between draft and published

SocialV2 is the missing piece in your stack.

Three steps. No relay race.

01

Your agent submits a draft.

One POST request to the REST API. Any agent, any framework, no middleware. Your agent sends the content. The queue receives it.

02

You approve from your phone.

Draft lands in a mobile-first queue. Read it. Approve or reject — one tap. Done wherever you are, in the time it takes to read the post.

03

It publishes across platforms.

Native formatting for each platform from your single draft. No per-platform editing. No dropped cross-posts.

The queue, live →
Queue
PendingApprovedAll
Agent draftPending approval

Every post hitting Mastodon now. Set up in under 10 minutes. Agent just queued a thread — approving.

BlueskyMastodonX
ApproveReject
Agent draftScheduled · Today 3pm

Ran the docker compose, pointed the agent at the API, had a post in the queue in under 10 minutes. This is what I wanted.

BlueskyMastodon
Human draftPublished

Open-source. Self-hosted. MIT licence. Every line between your agent's draft and the published post is code you can read.

BlueskyX

Agent submits. You approve. Live on three platforms before you put your phone down.

One draft. Three platforms. No post left behind.

Your agent writes once. SocialV2 formats for each destination and publishes on your approval.

Bluesky
First-class

AT Protocol native. Thread structure, character limits, and rich text handled from your draft.

Mastodon
First-class

ActivityPub native. Formatting adapted to your instance's requirements.

X
Post-only

500 posts/month, write access only. We built what the API allows and labelled what it doesn't.

Open protocols come first. Bluesky and Mastodon aren't afterthoughts — they're the primary channels, built on AT Protocol and ActivityPub because the open web matters.

Your infrastructure. Your queue. Your rules.

Runs on your VPS, in your Docker environment
No SaaS dependency between your agent and your audience
Open-source. MIT licence. Every line is code you can read.
No vendor who might sunset the API next quarter
Free. No subscription, no per-seat pricing, no feature gates.
$ docker compose up

✓ postgres healthy
✓ redis healthy  
✓ app listening on :3000
✓ worker ready

SocialV2 is running.
Point your agent at: http://localhost:3000/api/posts

Check our work.

The repo is public. The commits are real. The issues are open. The docs describe what the product does today.

GitHub

What V1 doesn't do.

  • Visual content (text-first only)
  • Managed hosting (you run it)
  • Team features or multi-brand
  • Analytics (use your own stack)
  • Content generation (your agent writes)

We built the approval boundary first because it is the product. Everything else is roadmap.

Ten minutes

Your agent is already drafting.
Give it somewhere to send the work.

1Clone the repo
2docker compose up
3Configure platform connections
4Point your agent at the API
5Approve your first post

No signup. No credit card. No demo call.
Your infrastructure. Your evaluation. Your terms.

Your agent drafts. You decide what ships.

View on GitHub