A terminal UI for connecting to any Source or Source 2 dedicated server over RCON. Execute commands with live autocomplete — all from your terminal.
Works with CS:GO, CS2, TF2, Garry's Mod, L4D2, Rust, and any other game using the Source RCON protocol.
- Live autocomplete — fetches commands and cvars via
cvarlistat connection time for instant, lag-free suggestions - Real-time log streaming — receives server logs via UDP and automatically filters out polling noise
- Raw multi-packet support — custom TCP RCON parser completely bypasses the
cvarlisttruncation bug found in standard libraries - Quality of life — command history (↑/↓), local display clearing (
Ctrl+L), disconnected mode, and dynamic game-specific themes
You can download pre-compiled binaries for Windows, macOS, and Linux from the Releases page.
Extract the archive and run the crowbar executable from your terminal.
# Using go install
go install github.com/rohankmr414/crowbar@latest
# Or clone and build manually
git clone https://github.com/rohankmr414/crowbar.git
cd crowbar
go build -o crowbar .crowbar -H <host> -p <port> -P <password> [-l <log-port>]| Flag | Short | Default | Description |
|---|---|---|---|
--host |
-H |
127.0.0.1 |
Server IP address |
--port |
-p |
27015 |
Server RCON port |
--password |
-P |
(required) | RCON password |
--log-port |
-l |
27115 |
Local UDP port for receiving log stream (must be reachable by the game server) |
--public-ip |
(auto-detected) | Public IP to advertise for UDP log streaming |
# Connect to a local server
crowbar -P myrconpassword
# Connect to a remote CS2 server
crowbar -H 192.168.1.100 -p 27015 -P secret
# Connect to a Garry's Mod server on a custom port
crowbar -H 10.0.0.5 -p 27025 -P secret
# Use a custom log port
crowbar -H 10.0.0.5 -P secret -l 27200Crowbar receives logs over UDP using logaddress_add. This requires network reachability from the game server to your machine.
- If you are behind NAT/router, forward UDP
--log-portto the machine running crowbar. - Allow inbound UDP on your OS/cloud firewall for
--log-port. - If auto-detected IP is wrong (VPN, CGNAT, multi-WAN), set
--public-ipmanually. - Some ISPs use CGNAT or carrier-level firewalls that block unsolicited inbound UDP, so port forwarding may not be possible on residential/mobile connections.
- Some hosting/VPN setups block inbound UDP entirely; in that case command execution still works, but live log streaming will not.
| Key | Action |
|---|---|
Enter |
Send command / accept autocomplete selection |
Tab |
Apply top autocomplete suggestion |
↑ / ↓ |
Navigate command history or autocomplete list |
PgUp / PgDn |
Scroll log viewport |
Ctrl+L |
Clear local terminal viewport |
Esc / Ctrl+C |
Quit |
┌─────────────────────────────────────────┐
│ Log Viewport (scrollable) │
│ ── server logs stream here via UDP ── │
│ ── command responses appear here ── │
├─────────────────────────────────────────┤
│ ❯ command input (with autocomplete) │
└─────────────────────────────────────────┘
- RCON — connects over TCP using the Source RCON Protocol
- Log streaming — auto-detects your public IP and sends
logaddress_addso the server streams logs via UDP - Autocomplete — fetches the full command/cvar list via
cvarlistonce at connection time, then filters locally for instant suggestions - TUI — built with Bubble Tea (Elm-architecture)
- Bubble Tea — TUI framework
- Lipgloss — Terminal styling
- Bubbles — TUI components (viewport, text input)
- pflag — POSIX-style CLI flags
MIT