A complete OBS overlay system for streamers to display interactive checklists during live streams. Built 100% with Claude (Sonnet 4.5).
- ✅ Visual Editor - Windows Forms editor with drag-and-drop task management
- ✅ Multiple Lists - Create separate checklists for different purposes
- ✅ Progress Tracking - Checkboxes, progress bars, and counters
- ✅ Auto-Scroll - Seamless infinite scrolling or alternate between lists
- ✅ Live Theme Editor - Customize colors, fonts, borders, opacity in real-time
- ✅ Persistent State - Saves to local JSON file automatically
- ✅ OBS Integration - Simple browser source setup
- Download the latest release from Releases
- Extract the files
- Run
OBSChecklistEditor.exe - Create your checklists in the editor
- In OBS: Add → Browser Source → Local File → select
overlay.html
Requirements:
- .NET Framework 4.8 or higher
- Visual Studio 2019+ (or any C# compiler)
Build:
# Clone the repository
git clone https://github.com/YOUR_USERNAME/obs-checklist-overlay.git
cd obs-checklist-overlay
# Build using the included batch file
BUILD_AND_RUN.bat
# Or build manually
csc /target:winexe /out:bin/OBSChecklistEditor.exe *.cs /r:System.Windows.Forms.dll /r:System.Drawing.dllIf you just want to manually edit the JSON file:
- Download
overlay.htmlandchecklist-data-examples.json - Rename
checklist-data-examples.jsontochecklist-data.json - Edit the JSON file with your tasks
- Add
overlay.htmlas Browser Source in OBS
- Create Lists - Click "Add List" to create new checklists
- Add Tasks - Click "Add Task" and configure:
- Task name
- Checkboxes (on/off)
- Progress bars with current/total values
- Progress counters
- Sub-headers for organization
- Reorder - Drag and drop tasks to reorder
- Theme - Click "Theme Editor" to customize appearance
- Auto-Scroll - Configure scrolling behavior in "Auto-Scroll Settings"
Seamless Infinite Scroll:
- Continuously loops through all selected lists
- No pauses or resets
- Best for: Long checklists that need constant display
Alternate Lists:
- Shows one list at a time
- Scrolls through each list individually
- Pauses between lists
- Best for: Multiple distinct categories
-
Add Browser Source:
- Source → Browser
- Check "Local file"
- Browse to
overlay.html
-
Recommended Settings:
- Width: 400px (or match your overlay width setting)
- Height: 600px (or match viewport height setting)
- FPS: 30
- Check "Shutdown source when not visible"
-
Position & Style:
- Drag to desired position on stream
- Use OBS filters for additional effects if needed
All settings are stored in checklist-data.json:
{
"lists": {
"list1": {
"name": "Pre-Stream Setup",
"items": [
{
"name": "Check Audio Levels",
"completed": false,
"showCheckbox": true,
"showProgressBar": false
}
]
}
},
"settings": {
"activeListIds": ["list1"],
"autoScrollEnabled": true,
"autoScrollSpeed": 50,
"scrollViewportHeight": 600
},
"theme": {
"backgroundColor": "rgba(0, 0, 0, 0.7)",
"textColor": "#ffffff",
"progressBarColor": "#4CAF50"
}
}- Pre-Stream Checklists - Verify audio, camera, overlays before going live
- Game Achievement Tracking - Show progress on challenges/collectibles
- Donation Goal Displays - Track fundraising progress with progress bars
- Multi-Day Event Tasks - Marathon stream goals and schedules
- Speedrun Route Trackers - Display current objective and completion status
- Editor: Windows Forms C# application
- Overlay: Pure vanilla HTML/CSS/JavaScript (no frameworks)
- Data Flow: Editor writes JSON → Overlay polls every 500ms
- No Server Required: Everything runs locally
├── OBSChecklistEditor.exe # Windows editor application
├── overlay.html # OBS browser source
├── checklist-data.json # Your checklist data
└── checklist-data-examples.json # Example configurations
The overlay works in:
- OBS Browser Source (CEF)
- Chrome/Edge (via local server)
- Firefox (via local server)
Note: Modern browsers block local file access. The overlay works perfectly in OBS, but for browser testing you'll need to run a local web server.
Built entirely with Claude (Sonnet 4) across 15+ sessions:
- Initial architecture and feature design
- Multi-list support and drag-and-drop
- Auto-scroll with seamless infinite mode
- Theme system with live preview
- Bug fixes for edge cases (race conditions, viewport clipping, scroll math)
- Seamless Infinite Scroll Math - Rendering 3x content, calculating cycle heights
- Polling + Scroll Timing - Coordinating config updates with active scrolling
- Transform Persistence - Managing CSS transforms across re-renders
- Sequential Mode - Showing only next incomplete item per list
This project accesses NO external data, credentials, or network resources.
- All data stored locally in JSON files
- No cloud services or APIs
- No telemetry or analytics
- No auto-updates
Safe for use on streaming PCs.
This project was built with AI assistance. Contributions welcome:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - Feel free to use, modify, and distribute.
Built 100% with Claude (Sonnet 4) by Anthropic.
Special thanks to the Claude Developer Discord community for inspiration and support.
Questions? Open an issue or discussion on GitHub.
Found a bug? Please report it with steps to reproduce.
Want a feature? Suggest it in the issues section!