A terminal-based mod manager for Kenshi that uses SteamCMD to download mods directly from Steam Workshop.
- 🔍 Browse Steam Workshop mods with a beautiful TUI
- ⬇️ Download mods using SteamCMD with anonymous login
- 📦 View installed mods
- ⚙️ Configure mod and download paths
- 🎨 Modern terminal UI with Bubble Tea
- Go 1.21+ - Install Go
- SteamCMD - Required for downloading mods
Windows:
# Download from: https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
# Extract to C:\steamcmd\
# Run steamcmd.exe once to complete installationLinux (Ubuntu/Debian):
sudo apt install steamcmdmacOS:
brew install steamcmd# Clone or download the project
git clone <repository-url>
cd kenshi-mod-loader
# Install dependencies
go mod init kenshi-mod-loader
go get github.com/charmbracelet/bubbletea
go get github.com/charmbracelet/bubbles/spinner
go get github.com/charmbracelet/bubbles/textinput
go get github.com/charmbracelet/lipgloss
# Run
go run .On first run, you'll be asked to configure:
-
Mods Path: Where your Kenshi mods are installed
- Windows:
C:\Steam\steamapps\workshop\content\233860 - Linux:
~/.steam/steam/steamapps/workshop/content/233860
- Windows:
-
Download Path: Where to download new mods (default:
./kenshi_workshop_downloads)
TAB- Switch between tabsCtrl+CorQ- Quit
↑/↓orK/J- Navigate listPgUp/PgDn- Fast scrollSPACE- Toggle mod selectionA- Select all modsD- Deselect all modsL- Load more pagesENTER- Download selected mods
↑/↓orK/J- Navigate listPgUp/PgDn- Fast scrollR- Refresh mod list
R- Reset configuration
The project is organized into modular files for easy maintenance:
kenshi-mod-loader/
├── main.go # Entry point
├── types.go # Data structures and constants
├── styles.go # UI styling (colors, formatting)
├── config.go # Configuration management
├── scraper.go # Steam Workshop scraping
├── steamcmd.go # SteamCMD integration
├── installed.go # Installed mods management
├── model.go # Application state and logic
├── keys.go # Keyboard input handlers
└── view.go # UI rendering
- Defines all data structures (
WorkshopMod,InstalledMod,Config, etc.) - Contains constants (app ID, config file name)
- Message types for the Bubble Tea framework
- Lipgloss styles for UI elements
- Color schemes and formatting
- Tab styles and selection highlights
- Load and save user configuration
- Handles JSON serialization
- Manages config file operations
- Scrapes Steam Workshop pages
- Extracts mod IDs and titles
- Fetches individual mod details
- Handles HTML parsing with regex
- Detects SteamCMD installation
- Platform-specific path handling
- Executes mod downloads
- Provides installation instructions
- Scans mods directory
- Identifies Steam Workshop mods
- Parses mod folder names
- Returns default paths per platform
- Main application model
- Initializes the app state
- Handles messages and updates
- Coordinates between modules
- Keyboard input handlers for each tab
- Navigation controls
- Selection and action handling
- Renders all UI screens
- Tab rendering
- Progress indicators
- Error messages
- Startup: Loads configuration or prompts for setup
- Browse: Scrapes first page of Steam Workshop (30 mods)
- Select: User selects mods to download
- Check: Verifies SteamCMD is installed
- Download: Uses SteamCMD with anonymous login
- Complete: Shows results and any failures
- Async Loading: Mod details are fetched in parallel without blocking UI
- Pagination: Loads mods on-demand to improve performance
- Robust Scraping: Multiple regex patterns with fallbacks
- Error Handling: Graceful failure with helpful error messages
- Cross-Platform: Works on Windows, Linux, and macOS
Make sure SteamCMD is installed and in one of these locations:
- Windows:
C:\steamcmd\steamcmd.exe - Linux:
/usr/bin/steamcmdor/usr/games/steamcmd - macOS:
/usr/local/bin/steamcmd
- Check your internet connection
- Steam Workshop might be temporarily unavailable
- Try loading more pages with the
Lkey
Mods are downloaded to the configured download path. You may need to:
- Move them to your Kenshi mods folder
- Enable them in the Kenshi launcher
Contributions are welcome! Areas for improvement:
- Add search functionality
- Filter by mod category
- Sort options
- Mod descriptions in detail view
- Direct integration with Kenshi launcher
MIT License - See LICENSE file for details
Built with:
- Bubble Tea - TUI framework
- Lipgloss - Terminal styling
- SteamCMD - Steam content downloader