Inspiration
Sergeant began as a personal project to learn Rust while streaming. The goal was to show Twitch chat in the terminal alongside code, so there was no need to switch screens during coding streams. This allowed a streamlined focus on both coding and engaging with viewers on one screen.
As the project evolved, the tool expanded to help streamers customize their channels without frequently updating code. This shift means streamers can now focus on creating unique features for their channels instead of spending time on Twitch API integrations.
For this Hackathon, we introduced a new admin dashboard, enabling streamers to update their channel customizations quickly and intuitively. We also enhanced shell command execution, adding support for CLI tools that use subcommands—offering even greater flexibility for building unique, engaging stream features.
What it does
Sergeant is a versatile, all-in-one streaming tool that integrates directly with Twitch to enhance interactivity. Here’s a look at its core features:
TUI-Based Chat Log
- Displays Twitch chat in the terminal, complete with animated emotes and effects.
- Includes fun, terminal-friendly visual effects like “emote party” and “rainbow eclipse” to add flair.
Chat Extensions
Sergeant adds new layers of chat functionality through four main extensions:
- Commands: Real-time commands like
!todaythat can be updated on the fly without code changes. - Announcements: Automated messages that repeat on a set schedule to keep chat active and viewers informed.
- Actions: Shell commands triggered by viewers (e.g.,
!songto post the current Spotify track) with support for personalized interactions. - Rewards: Custom commands linked to Twitch channel rewards, allowing unique responses when viewers redeem rewards.
Administering Chat
With both a command-line interface and a TUI-based admin dashboard, managing Sergeant’s features is straightforward. This interface allows streamers to add, update, or delete commands and other features instantly.
Socket Server
A socket server enables custom stream overlays by relaying Twitch interactions. Streamers can build dynamic, interactive overlays without modifying code, creating a more immersive experience for viewers.
How we built it
Sergeant is built in Rust. The core is written entirely in Rust, while shell commands allow customization in any language, letting streamers adapt the tool to their preferences without altering the core code.
Challenges we ran into
Key challenges included:
- Twitch Emotes: Integrating Twitch’s emotes and message effects to work within a terminal.
- Terminal Display: Ensuring the terminal chat display mirrored the Twitch web chat for a cohesive viewer experience.
Accomplishments that we're proud of
- Interactive Terminal Chat: A feature-rich terminal chat with animated emotes and effects that feels like Twitch’s web interface.
- Streamer-Friendly Customization: Empowering streamers to enhance their channels without needing extensive Twitch API knowledge.
What we learned
We deepened our understanding of Rust, terminal-based interfaces, and the Twitch API. We also learned to integrate third-party tools like Spotify and ffmpeg to create richer streaming experiences.
What's next for Sergeant
We’re excited to:
- Expand Sergeant with more third-party integrations, giving streamers additional pre-built options.
- Transition to Twitch’s EventSub API for improved compatibility.
- Develop new tools to enable easy creation of custom stream overlays, making it even simpler for streamers to create engaging, unique experiences.


Log in or sign up for Devpost to join the conversation.