Integrations

Discord bot

Invite the SteadyShot bot to your Discord server. Members can generate scenes by slash command — perfect for D&D campaigns, comic-team chat, or shared mood-boards.

Invite

Use the invite link from /integrations. Pick a server you have Manage Server on, grant the requested scopes, hit Authorize.

Link your SteadyShot account

On first use the bot will DM you to link an API key:

text
/steadyshot link key:ss_live_xxxxxxxxxxxxxxxx

Grab a key at /api-keys. The link command persists your key against your Discord user id — every command you run bills against your SteadyShot credits.

Commands

  • /scene character:Luna prompt:"reading by a campfire" — generate a single-character scene. Result posts inline.
  • /characters — list your characters.
  • /vary image_id:xxx vary:expression target:frowning — single-axis variation.
  • /storybook character:Luna pages:"page 1...|page 2..." — multi-page generation.
Generated images are uploaded to Discord’s CDN and stay in the channel. The full-resolution version + metadata is also saved to your SteadyShot library, accessible from the web app.

Run your own Discord bot

The official bot source ships in the SteadyShot repo at discord-bot/. Fork it if you want to host a private bot in your own server (e.g., gating SteadyShot access to a paid Discord community).

  • bot.mjs — the runtime. Discord.js client + slash command handlers. Each handler resolves the Discord user to a SteadyShot API key (via the linking table) then posts to steadyshot.ai/api/* with that key as Bearer.
  • register-commands.mjs — one-shot script that registers /scene, /characters, /vary, /storybook, /steadyshot link with Discord’s API.

Deploying a fork

bash
# 1. Create your own Discord app + bot at https://discord.com/developers/applications
# 2. Copy bot token + application id into a .env file

DISCORD_BOT_TOKEN=...
DISCORD_APPLICATION_ID=...
STEADYSHOT_URL=https://steadyshot.ai

# 3. Register slash commands (one time, per guild for dev / globally for prod)
node discord-bot/register-commands.mjs

# 4. Run the bot
node discord-bot/bot.mjs

# 5. Invite the bot to your server via the OAuth2 URL generator in Discord's
# developer portal. Required scopes: bot + applications.commands.
The bot reads each user’s SteadyShot API key from a key-link table. Hosting a fork means your hosting environment has access to every linked user’s key — don’t use a free public bot in untrusted server environments. The official SteadyShot-hosted bot is the safer choice for sharing across unfamiliar Discord servers.