Skip to content

IceSqueez/forge

forge

Event-driven stream automation with multi-engine TTS - a single Rust desktop app for Linux, Windows, and macOS.

License: MIT OR Apache-2.0 Rust 1.97.1+ Platforms

Latest Release Release Date Release Workflow Nightly Workflow

Commits Since Latest Release Open Issues Commit Activity Total Downloads

Connect to Twitch, YouTube, and Kick simultaneously. React to chat events with action chains that control OBS, send messages, run scripts, play sounds, and speak text through configurable TTS engines.

Features

Chat platforms

  • Twitch
    • EventSub triggers: chat (commands, messages, cheers), shared-chat, subs/resubs/gift-subs, follows, raids (received & sent), channel-point redemptions (custom & automatic) & reward CRUD, polls, predictions, hype train, charity, goals, moderation (ban/timeout/unban, mod add/remove, shield mode, suspicious users, warning acknowledged), shoutouts (sent & received), guest-star, ad break, automod, stream on/off, channel & chat-settings updates
    • Sub-actions: send chat/reply/announcement/whisper, ban/timeout/unban/warn, mod & VIP management, shoutout, start/cancel raid, run/snooze ad, poll & prediction lifecycle, reward CRUD & redemption fulfillment, automod approve/deny/terms, update title/category/tags, stream marker, get current goal, guest-star & shield-mode control, chat clear & message delete
  • YouTube (live-chat polling)
    • Triggers: chat message, chat command, Super Chat, Super Sticker, message deleted, new member, member milestone, membership gift (mass) & gift received, stream online/offline, stream title changed, user banned/timed-out
    • Sub-actions: send/delete chat message, ban/timeout/unban user, add/remove moderator, update stream title/description/category/privacy
  • Kick (official API for writes & polled reads; chat receive over a community WebSocket)
    • Triggers: chat message, chat command, message deleted, new subscriber, subscription gift, host received, ban, livestream status, livestream metadata, reward redeemed
    • Sub-actions: send/delete chat message, ban/timeout/unban user, update channel title/category/tags, reward create/update/delete, redemption accept/reject

Actions & automation

  • Action editor with trigger configuration and nested sub-action chain authoring
  • Nested flow control: if/then/else branches, loops (count / foreach-array / while), switch/case, break/continue, stop chain, delay (fixed duration or wait-until-condition) - each flow-control step contains its own sub-chain authored via drill-in
  • Built-in sub-action library grouped by area:
    • Action & trigger control - run another action, cancel action, enable/disable/toggle action or trigger instance
    • Globals & variables - set, get, increment, decrement, toggle (bool), array append/remove on named globals; per-user get/set/increment; local execution-scoped args
    • Strings - concat, substring, replace, case conversion, trim, split, regex match, format template
    • Math & random - expression evaluation; random int, float, bool, and weighted pick
    • Date & time - get current time, format, diff, arithmetic, parse
    • File (sandboxed) - read, write/append, delete, list directory
    • HTTP - GET, POST, PUT, PATCH, DELETE with headers, query params, body, and JSON/text response parsing
    • Queue control - pause, resume, clear action queue
    • Desktop - OS notification, clipboard read/write, open URL in browser
    • TTS - speak text, stop, pause/resume/skip/clear queue, set/switch voice alias
    • Soundboard - play clip, stop clip, stop all, set master volume
    • Script - run inline rhai snippet, run named script, emit custom event to bus
    • Server - broadcast event payload to connected overlay clients
  • Platform sub-actions (Twitch, YouTube, Kick, OBS, VTube, Discord, MIDI) selectable in the same editor
  • Command parser for chat-triggered actions
  • Queue scheduling: Sequential or RandomPick execution

Integrations

  • OBS WebSocket v5 - switch scene, source visibility, input mute, start/stop stream/record; scene-changed trigger
  • VTube Studio - model load/move, expression set, parameter set/reset
  • Discord - post text, embed, edit message
  • MIDI - note-on/off triggers, CC triggers
  • System hotkeys - global key-combination triggers
  • Soundboard - clip grid with per-clip output device and volume; PlaySound sub-action

TTS pipeline

  • Local engines: Piper (ONNX), eSpeak-NG, SAPI (Windows), NSpeech (macOS)
  • Cloud engines: Azure, OpenAI, ElevenLabs, Amazon Polly
  • Voice aliases with text-replacement preprocessing filters
  • Speak queue with pause, resume, and skip controls

Scripting & storage

  • Rhai sandbox: op-count and time limits, ForgeApi access, hot-reload
  • Named globals with %variable% interpolation; JSON export
  • SQLite backend with AES-GCM encrypted credentials; 7-day event log

Overlay server

  • WebSocket server at /ws/v1/ - 14+ methods, bearer-token auth, per-client subscriptions
  • HTTP overlay host with path-traversal sandbox and configurable CORS
  • Live server screen: connected-client list, bandwidth metrics, lifecycle controls

UI

  • Event Feed with filter chips, pause/resume, per-event payload inspector, and one-click event replay
  • Live Chat screen across all connected platforms; Viewers screen with per-platform filter
  • Settings: appearance (density + font pickers), language (English / Ukrainian), keyboard shortcuts editor, audio device test

Installing releases

Binary releases for Linux, Windows, and macOS are on GitHub Releases.

  • Linux: AppImage, .deb (Debian/Ubuntu), .rpm (Fedora/openSUSE) - x86_64
  • Windows: portable .exe + MSI installer
  • macOS: universal .dmg (Apple Silicon + Intel)

Building from source

Requires Rust 1.97.1 or later - install via rustup.

Linux also needs: sudo apt-get install build-essential pkg-config libssl-dev (Debian/Ubuntu).

git clone https://github.com/IceSqueez/forge.git
cd forge
cargo build --release
./target/release/forge

On first run, forge creates its data directory (XDG on Linux, AppData on Windows, Application Support on macOS) and opens to the dashboard.

Contributing

Open an issue or pull request on GitHub.

License

Licensed under either of MIT or Apache 2.0 at your option.

About

Forge your stream automation. Native Rust app for Twitch, YouTube, Kick and OBS. Includes triggers, action chains, and scripting in one tool.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Used by

Contributors

Languages