- Rust 92.7%
- PowerShell 3.2%
- Shell 2.2%
- NSIS 1.7%
- Dockerfile 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
Community API / test + musl binary (push) Successful in 8m58s
Rust CI / fmt, clippy, test (Windows target, cross-built) (push) Successful in 29m3s
Release / Build, sign and publish (cross-built on Linux) (push) Successful in 31m55s
Community API / container image (push) Successful in 6m7s
Co-Authored-By: Claude Opus 5.5 <[email protected]> |
||
| .forgejo/workflows | ||
| Assets | ||
| crates | ||
| deploy | ||
| docs | ||
| installer | ||
| tools | ||
| vendor/gpui-capture | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| clippy.toml | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| README.md | ||
| rust-toolchain.toml | ||
TKit - Twitch Toolkit
Automatically update your Twitch and Kick category based on what you're doing
📋 Overview
TKit is a Windows desktop application that automatically switches your Twitch and Kick stream category based on your active window. Stop manually updating your category every time you switch games or applications - let TKit handle it for you.
Perfect for streamers who:
- 🎮 Switch between multiple games during streams
- 🎨 Alternate between gaming and creative work (coding, art, music)
- 😅 Forget to update categories when switching
- 📈 Want better discoverability with accurate categories
✨ Features
- 🔄 Automatic Category Switching - Real-time window monitoring with instant category updates
- 🟩 Twitch and Kick - Connect either or both; multistreamers get both channels switched at once
- 🗺️ Community Mappings - Signed, community-maintained game lists, plus your own mappings
- 🔎 Game Recognition - Reads installed Steam, Epic, GOG, Ubisoft, EA, Battle.net and Xbox games to suggest the right category
- ⚡ Global Hotkeys - Quick manual category updates without leaving your game
- 🌍 Multi-language Support - 10 languages: English, Czech, Polish, Spanish, French, German, Portuguese, Japanese, Korean, Chinese
- 🔔 Desktop Notifications - Optional alerts when categories change
- ⚙️ Configurable Behavior - Scan intervals, debounce delays, fallback actions
- ⬆️ Signed Updates - Every update is checksummed and signature-checked
📥 Installation
Download TKit-Setup-<version>.exe from Releases and run it. It installs for the current user only, so no administrator rights are needed, and TKit keeps itself up to date.
Coming from the old Flutter version (0.0.1-dev.x)? It updates itself to TKit 1.0, which imports your mappings and settings on first start. You only need to reconnect Twitch once.
Requirements
- Windows 10 or later (x64)
- A Twitch account with streaming privileges, a Kick account, or both
🚀 Quick Start
- Install - Run the setup from Releases
- Launch TKit - Find it in the Start Menu
- Connect Twitch and/or Kick - Authorize Twitch in the welcome screen; Kick connects in your browser (Settings → Kick)
- Start a game - TKit switches the category; unknown games open a dialog to pick one
- Done - Monitoring runs in the background, even when minimized to the tray
📖 Usage Guide
Category Mappings
⚡ Recommended Method:
- Launch the game or application you want to map
- Press Alt+Shift+F1 (default shortcut for manual update)
- A dialog appears with the process name and window title filled in
- Search and select the correct Twitch category
- Save - done! Unknown games can also be contributed to the community lists.
You can also add, edit and import mappings on the Category Mappings page.
Kick
Connect Kick in Settings → Kick (or in the welcome screen). TKit opens Kick's sign-in in your browser and picks the answer up on localhost:47621. With both platforms connected, every switch goes to both channels; if one fails, only that one is retried.
Mappings and the community lists use Twitch categories. For Kick, TKit looks up the category with the same name (ignoring case, ™/® and punctuation) and remembers it. When Kick names a game differently, pick its Kick category in the mapping editor or from the "Kick has no category named…" notice. The choice applies to every game with that Twitch category.
Streaming on Kick only works too: category search then goes through TKit's server instead of your Twitch account.
Auto Switcher
- Start/Stop Monitoring - Toggle automatic switching
- Manual Update - Force update to current window's category
- Quick Mapping - Click the plus (+) button next to your active application to map it
- View History - See all category changes with timestamps
Settings
Scan intervals, debounce delays, fallback behavior, notifications, hotkeys, language and updates. Settings are reachable from the main window or the tray.
🛠️ Building from Source
TKit is a Rust workspace with a GPUI interface. You need the stable Rust toolchain (pinned in rust-toolchain.toml) and the MSVC build tools on Windows.
git clone https://git.evobug.com/Evobug/TKit.git
cd TKit
cargo run # the app (crates/tkit-app)
cargo test --workspace # all tests
cargo clippy --workspace --all-targets -- -D warnings
Set TKIT_DRY_RUN=1 to run the app without changing your real Twitch and Kick categories.
| Crate | What it does |
|---|---|
tkit-app |
The GPUI desktop app |
tkit-core |
Settings, matcher and switcher logic |
tkit-store |
SQLite storage, settings file, import of Flutter-era data |
tkit-platform |
Windows integration: foreground window, autostart, launcher scan |
tkit-twitch |
Twitch OAuth and Helix client |
tkit-kick |
Kick browser sign-in (PKCE, via tkit-api's token proxy) and API client |
tkit-runtime |
Background services: monitoring, list sync, submissions |
tkit-mapping-rules |
Mapping list format, validation and signed index |
tkit-mapping-tool |
CI tool for the community mapping repository |
tkit-community-api |
Submission server for community mappings, Kick token proxy |
tkit-updater |
Release lookup, verification and exe swap |
tkit-release |
Release packaging and signing helper |
tkit-cli |
Developer command-line tools |
- Contributing - How to contribute
- Release Guide - For maintainers creating releases
The last Flutter version lives in the history of main (tag flutter-legacy).
🤝 Support
- 🐛 Report issues
- 📝 Check logs - Press F2 while TKit is running, or open
%LOCALAPPDATA%\TKit\logs
📜 License
This project is licensed under the MIT License - see the LICENSE file for details.
Game data from IGDB.
Note: TKit is not affiliated with or endorsed by Twitch Interactive, Inc. or by Kick.