Quick start
Rustiz is one binary. Build it, run init once, and point an agent at it. This
page gets a local install working in about five minutes. For servers, Docker and
TLS, see Self-hosting.
Alpha. Every provider is ported and tested against mock servers, but none has been tested against the live platform yet. Expect to debug the first real connection to each platform.
Source not public yet. The
git cloneURL below is a placeholder until the public release, so that command won’t work until the repository is published. The rest of this page describes a working local build once the source is available. The site’s waitlist is a disconnected preview for now; once it’s connected, choose “Self-hosting only” to be notified when the repository opens.
1. Build
You need a stable Rust toolchain. SQLite is built in. ffmpeg is optional and
only used for video thumbnails.
git clone <repository-url> rustiz && cd rustiz
cargo build --release --locked -p rustiz
sudo install -m 0755 target/release/rustiz /usr/local/bin/rustiz # optional
2. Initialise
rustiz init
This creates ~/.rustiz/ with a private config.env (holding JWT_SECRET,
DATABASE_URL, FRONTEND_URL and RUSTIZ_API_KEY), the SQLite database and
the first organization. It prints a JSON document that includes an
mcpServers block for your agent. Running init again never replaces the
secret or creates a second organization.
Back up JWT_SECRET together with the database. Stored channel credentials
can’t be decrypted without it.
3. Check which platforms are ready
rustiz providers --status
Each provider reports whether it is configured, the names of any missing
environment variables, and how a channel connects (oauth, customFields,
telegramBot, …). Credential providers such as Bluesky, Dev.to, Medium,
WordPress or Nostr need no server configuration at all. OAuth platforms need a
developer app; each provider page walks
through it.
4. Connect your agent
Local agent over stdio (Claude Desktop, Claude Code, Cursor, …): paste the
block init printed. It looks like this and contains no secret:
{
"mcpServers": {
"rustiz": { "command": "/usr/local/bin/rustiz", "args": ["mcp"] }
}
}
rustiz mcp runs the scheduler in the same process and, for a local
FRONTEND_URL, also receives the platform’s login redirect. You don’t need a
separate server. See MCP setup for client-specific instructions.
Or run the server for REST, remote MCP and the scheduler:
rustiz serve # http://localhost:5000
curl http://localhost:5000/health # -> ok
5. Connect an account and post
From the CLI:
rustiz channels connect bluesky --fields ./bluesky.json # {"service":"https://bsky.social","identifier":"you.bsky.social","password":"app-password"}
rustiz channels connect x --open # after setting X_API_KEY / X_API_SECRET; opens the X login
rustiz channels list
rustiz posts create --channel <channel-id> \
--content "<p>Hello from Rustiz</p>" \
--date 2030-01-01T09:00:00Z --type schedule
Or ask your agent: “Connect my Bluesky account and schedule a post for
tomorrow at 9:00 UTC.” It will call providersStatusTool,
connectChannelTool, validatePostTool and schedulePostTool.
Posts only publish while rustiz serve, rustiz worker or rustiz mcp is
running.
Next
- MCP setup: Claude, Cursor and remote clients
- CLI and REST API
- Configuration and environment variables
- Self-hosting: systemd, Docker, TLS, backups