Cloud alpha · coming soon

The social scheduler your agents run.

Rustiz is one Rust binary and one SQLite file that gives an AI agent everything it needs to post: MCP, a REST API and a CLI. It's an open-source port of Postiz without the GUI.

AGPL-3.0 · public alpha target: TBA · See how it works ↓

Works with
  • Claude
  • Cursor
  • Codex
  • Any MCP client
35 integrations ported
16.9MiBOne binary, one SQLite file
~0.1sLaunch to healthy
~19MBRAM when idle
~54k/sAuthenticated API requests

Measured 2026-11-08 on an Apple M4, release build, empty database: 7 cold starts at 97–128 ms; idle RSS 18.8–19.5 MB (25.8 MB after load); ab -k -c 32 on GET /public/v1/integrations with rate limits off. Method →

01 Who it's for

Built for software that posts on your behalf.

There's no calendar to click through. Your agent connects accounts, validates and schedules posts, and checks the results itself. A human only steps in for a platform's login screen.

How it works

From one prompt to a published post.

1The agent asks to connect a channel.

Over MCP, your agent calls connectChannelTool. For an OAuth platform such as LinkedIn, Rustiz returns a pending connection and a login link, and the agent hands that link to a person.

CLI: rustiz channels connect linkedin

2A person clicks once.

They open the link and log in on the platform's own page, which sends them back to Rustiz. The agent polls with the connectionId until it reports connected: true. Credential platforms such as Bluesky, WordPress and Nostr skip this step: they connect without a browser.

CLI: rustiz channels connect-status <connectionId>

3The agent validates, then schedules.

validatePostTool checks the post against the platform's rules and creates nothing. schedulePostTool queues it with an idempotencyKey, so a retry returns the first result instead of posting twice.

CLI: rustiz posts create --channel <id> --content "…" --date 2026-11-10T09:00:00Z

4Rustiz publishes on time.

The built-in scheduler publishes the post at its date while rustiz serve, rustiz worker or rustiz mcp is running. The agent reads the outcome with postStatusTool (QUEUE, PUBLISHED or ERROR, with the post's URL), or subscribes for live updates.

CLI: rustiz posts get <id>

Illustration with example data. The same steps work over MCP, the CLI or the REST API. Integrations are ported and tested against mock servers, but none has been checked against the live platform yet.

→ A

Agent builders

Give Claude, Cursor or your own agent a reliable posting tool, with idempotent scheduling and validation it can call before anything goes out.

→ B

Developers

A REST API and a JSON-only CLI with typed exit codes. Script it, cron it, or wire it into your product.

→ C

Self-hosters

One process and one file to back up. It runs on a laptop or a small VPS with about 19 MB of RAM, with no Postgres, Redis or Elasticsearch.

02 Plug it in

Your agent, your interface.

There are 31 MCP tools, and the tool names match Postiz's, so prompts written for Postiz keep working. Or skip MCP and use the CLI or REST API.

Via Claude Code

One command adds Rustiz as a local MCP server.

claude mcp add rustiz -- rustiz mcp

Via Claude Desktop

Paste the block rustiz init prints. It contains no secret.

{ "mcpServers": { "rustiz": {
    "command": "/usr/local/bin/rustiz",
    "args": ["mcp"] } } }

Via Cursor

Point it at your server or the cloud with a Bearer key, or use OAuth.

{ "mcpServers": { "rustiz": {
    "url": "https://you.example/mcp",
    "headers": { "Authorization":
      "Bearer <key>" } } } }

Via Codex & other clients

Any client that can launch a command or speak Streamable HTTP works.

[mcp_servers.rustiz]
command = "rustiz"
args = ["mcp"]

Via the CLI

One JSON document per command. It works with no server running.

rustiz posts create --channel cm3x… \
  --content "<p>Shipped.</p>" \
  --date 2026-11-10T09:00:00Z

Via REST

A /public/v1 API that follows Postiz's paths.

curl -X POST $HOST/public/v1/posts \
  -H "Authorization: Bearer $KEY" \
  -d @post.json
03 Made for agents

Agents retry. Agents guess. We planned for both.

Each tool is designed so an agent can run it unsupervised without double-posting, posting broken content, or getting stuck on a login.

Idempotent scheduling

A retry never posts twice.

If the same call is sent again within 10 minutes, or reuses an idempotencyKey within 24 hours, Rustiz returns the first result. Edits are refused while a post is being published.

schedulePostToolretry
→ schedulePostTool { idempotencyKey: "launch-1", … }
← group g_8f2a · 2 posts queued

# network blip, the agent tries again
→ schedulePostTool { idempotencyKey: "launch-1", … }
← group g_8f2a · same result, nothing new
Validate first

Check before anything goes live.

validatePostTool checks length, threads, media and settings against each platform's rules, and creates nothing, so the agent can fix problems before it schedules.

validatePostTooldry run
→ validatePostTool { socialPost: [x, instagram] }
✓ x          214 / 280 characters
✗ instagram  needs at least one image or video
Headless connections

A human clicks once. The agent does the rest.

OAuth platforms return a login link for a person to open. Credential platforms such as Bluesky, WordPress and Nostr connect without a browser. The agent polls until the account is ready.

connectChannelTooloauth
→ connectChannelTool { provider: "linkedin" }
← pending · url: https://www.linkedin.com/oauth/…
  (a human opens the link and logs in)
→ connectChannelTool { connectionId: "…" }
← connected: true
Edit in place

Reschedule or rewrite a queued post and it keeps its id.

Live status

Subscribe to rustiz://posts/<id> and get notified when a post changes state.

One key per organization

Self-hosted has no user accounts to manage: one key per organization, and rotating it revokes every token.

04 A deliberate omission

No built-in AI generation. On purpose.

Postiz bundles image and video generation. We took it out. Image and video generation is a specialty, and dedicated tools such as Higgsfield do it far better than a scheduler's side feature ever could.

→ Why

Focused tools work better

Agents perform best when every tool does one job well. A media generator makes the media, and Rustiz publishes it. Neither has to settle for less.

→ How

Generate anywhere, post here

Your agent creates media in Higgsfield or any tool you like, then passes the URL to uploadFromUrlTool and attaches it to the post. That's two tools and no lock-in.

→ Result

A smaller, cheaper core

There are no model fees in your plan and no generation credits to buy. This is a big part of why the binary is 16.9 MiB and the cloud plans cost less.

Higgsfield is named as an example of a dedicated generation tool. Rustiz isn't affiliated with Higgsfield, and any tool that outputs a public URL works.

05 Postiz vs Rustiz

Same scheduling model. Far fewer moving parts.

Postiz is a full app with a visual calendar and editor. Rustiz keeps the scheduling engine and drops the rest, so it fits in one process.

Postiz (self-hosted, docker-compose)Rustiz
What you run 9 services in the official compose file (8 by default): the app, Postgres ×2, Redis, Elasticsearch, and Temporal with its admin tools and UI compose file 1 processAPI, MCP, scheduler and OAuth callbacks
Data Postgres ×2, Redis, Elasticsearch compose file 1 SQLite fileWAL mode
Memory ~2–4 GB+ for the full stack estimate ~19 MBidle, ~26 MB after load measured
Install Several container images; total size not measured 16.9 MiBsingle binary measured
Startup Tens of seconds for the full stack estimate 97–128 msto healthy measured
Interface Web app with calendar and editor, plus API and MCP MCP, REST and CLI. No web GUI.
AI generation Built in Left out on purpose: use a dedicated tool

Postiz figures marked "estimate" were not measured. The service list comes from the official postiz-docker-compose file, checked 2026-11-08. Rustiz is an independent port and is not affiliated with or endorsed by Postiz. Method →

06 Platforms

35 integrations, ported from Postiz.

They're grouped by how much setup each platform needs before a channel works. Each one links to its setup guide.

Alpha

Every integration is fully ported and passes its tests against mock servers, but none has been checked against the live platform yet. That's what the alpha is for, so expect fixes the first time each platform connects for real. Postiz's Skool integration wasn't ported, because it needs a browser extension.

Self-serve app or bot

Create an app or bot in the platform's portal and connect right away.

Sandbox first, then review

Test accounts work right away. Public use needs the platform's review or a paid API tier.

Partner or special access

Needs an access request, a business account, or a paid partner API.

07 Pricing

More channels for less.

The managed cloud adds what the open-source binary leaves out: hosting, login, email and billing. These are the planned prices for the public alpha.

$5 first month

Indie

Solo builders and side projects

$10/mo

$5 for the first month, then $10/mo

  • 15 channels
  • 5 GB media · 100 MB/file
  • 45 posts/hr · 5k req/hr

X via our shared app: 50–100 posts/month. Bring your own X keys to remove the cap. Farcaster needs your own Neynar key.

Pre-order

Growth

Startups running several brands

$39/mo

billed monthly

  • 75 channels
  • 40 GB media · 250 MB/file
  • 180 posts/hr · 20k req/hr
  • Farcaster included
Pre-order

Pro

Teams with heavy agent traffic

$59/mo

billed monthly

  • 160 channels
  • 100 GB media · 500 MB/file
  • 360 posts/hr · 40k req/hr
  • Farcaster included
Pre-order

Agency

Agencies managing many clients

$99/mo

billed monthly

  • 400 channels
  • 300 GB media · 500 MB/file
  • 720 posts/hr · 100k req/hr
  • Farcaster included
Pre-order
$0Self-hosted, forever

The same binary, with every feature.

It's AGPL-3.0, with no channel limits and no license keys. You register your own developer apps with each platform, and run your own TLS, email and backups.

Read the quick start →

The source and release binaries aren't public yet. Join the waitlist to hear when they are.

terminalbuild time varies
$ cargo build --release --locked -p rustiz
$ rustiz init
$ rustiz providers --status
$ rustiz serve
REST /public/v1 · MCP /mcp · :5000

For comparison, Postiz lists its hosted plans at $29, $39, $49 and $99 a month for 5, 10, 30 and 100 channels (postiz.com/pricing, checked 2026-11-08). Media storage covers uploads in a rolling 30-day window. Prices are in USD.

08 Waitlist

Get on the list.

Pre-orders aren't live yet and no payment is taken. Leave your email and we'll tell you when the Rustiz Cloud alpha opens.

We only use your email to tell you about the Rustiz Cloud alpha. No payment is taken.

09 FAQ

Straight answers.

What am I pre-ordering, and when does it ship?

A pre-order will reserve a seat in the public alpha of Rustiz Cloud, the managed version of Rustiz, at the plan and price you choose. Checkout isn't live yet and no payment is taken. Join the waitlist below and we'll email you when pre-orders open. The alpha target is TBA.

"Alpha" means it works, but expect rough edges, especially the first live connection to each platform. Once pre-orders open, we'll email you before your access starts.

TODOConfirm when the card is charged: at checkout, or when alpha access starts (for example, a Stripe trial that runs until launch).

How do refunds work?

TODODraft, to confirm: "If the alpha doesn't ship by the target date, or you change your mind before your access starts, contact us and we'll refund your pre-order in full. After access starts, you can cancel any time and won't be billed again."

Why is there no AI image or video generation?

It's a deliberate choice. Dedicated generators such as Higgsfield make better media than a scheduler's built-in feature, and agents work better with focused tools. Your agent generates media wherever it likes, then calls uploadFromUrlTool and attaches the result. That also keeps model costs out of your plan.

Is Rustiz part of Postiz?

No. Rustiz is an independent Rust port of Postiz v1.47.0, and it's not affiliated with or endorsed by Postiz or its authors. Postiz is AGPL-3.0, so Rustiz is too, and the original copyright notice is kept.

What's the license? Can I self-host for free?

Yes. Rustiz is AGPL-3.0, and self-hosting is free forever with every feature. If you run a modified version as a network service, the AGPL requires you to offer its source code to its users. The paid product is only the managed cloud.

I use Postiz today. How do I migrate?

Rustiz keeps Postiz's MCP tool names, its /public/v1 API shape and its platform environment variable names, so your developer apps and agent prompts carry over. You only need to point the redirect URIs at your new server.

There's no data import. You reconnect each account (one login per channel) and recreate any posts still in the queue. If your team schedules by hand in Postiz's calendar, Rustiz isn't a replacement for that.

Is it production-ready?

Not yet. The port is complete and tested, but only against mock servers, and no integration has published to a live platform yet. The alpha is where that gets fixed, one platform at a time.

Why are X and Farcaster limited on Indie?

Both cost us per use. Posting to X through our shared app is capped at 50–100 posts a month on Indie, and adding your own X API keys removes the cap. Farcaster needs Creator or higher, or your own Neynar key.

What does "rolling 30 days" media storage mean?

Only media uploaded in the last 30 days counts toward your plan's storage limit.

Your agent is ready. Is your scheduler?