No description
  • Rust 94.3%
  • Go 4.9%
  • Nix 0.8%
Find a file
2026-09-24 20:44:10 +03:00
.forgejo/workflows ci(nix): enable full flake check builds, clippy matrix, and Go race tests 2026-09-24 20:19:34 +03:00
cmd/steam-maintain fix(maintain): correct multi-root resolution, log cursors, and VDF parity 2026-09-24 20:19:18 +03:00
crates fix(lifecycle): drain child process groups and serialize token eviction 2026-09-24 20:43:57 +03:00
docs docs: document managed Steam and catalog content policy 2026-09-16 01:06:22 +03:00
fixtures/maintenance ci(nix): enable full flake check builds, clippy matrix, and Go race tests 2026-09-24 20:19:34 +03:00
internal fix(maintain): correct multi-root resolution, log cursors, and VDF parity 2026-09-24 20:19:18 +03:00
tests docs(acceptance): add architecture risks and safety tests 2026-09-12 22:03:09 +03:00
.gitignore chore(repo): expand ignored runtime and development artifacts 2026-09-16 01:05:40 +03:00
Cargo.lock security(cm): zeroize credentials and secure fallback token lifecycle 2026-09-24 20:19:02 +03:00
Cargo.toml feat(local): add stable Steam process and resource observation 2026-09-16 01:05:53 +03:00
flake.lock chore(nix): multi-output flake, checks, and runtime wrappers 2026-09-13 00:09:41 +03:00
flake.nix ci(nix): enable full flake check builds, clippy matrix, and Go race tests 2026-09-24 20:19:34 +03:00
go.mod fix(maintain): correct multi-root resolution, log cursors, and VDF parity 2026-09-24 20:19:18 +03:00
README.md ci(nix): enable full flake check builds, clippy matrix, and Go race tests 2026-09-24 20:19:34 +03:00
REMEDIATION_VERIFICATION.md docs: sign off on residual process-group and token race mitigations 2026-09-24 20:44:10 +03:00

steam-tui

steam-tui is a terminal interface for browsing a Steam library and launching games through Proton. Its Rust workspace separates the Ratatui/Crossterm UI, local Steam discovery, and supervised process launching. An optional headless-cm feature adds social/catalog access through a dedicated Connection Manager actor; it does not provide game-side Steamworks IPC. The steam-maintain Go helper performs bounded, read-only library inspection and verification.

See docs/architecture.md for the UI/engine boundary, launch transaction, metadata provenance, and package/feature isolation.

Keybindings

Key Action
Up / k, Down / j Move through the current list
Enter Launch the selected game, or confirm the active dialog
p Direct Proton launch
h Hybrid launch
d Request installation
/ Search the game list; in the social pane, search the catalog
F / Tab Toggle the social pane
a (social pane) Open CM account credentials
Tab / BackTab (credentials) Switch account/password field
Enter (credentials) Submit credentials; Steam Guard appears if challenged
Enter (Steam Guard) Submit the verification code
Esc Dismiss the active prompt or dialog
g (social pane) Open Steam Guard code entry manually
c Toggle installation view
P Toggle platform filter
s Inspect saves
l Open logs
q Quit

Credentials are entered only in the prompt and the password is masked. CM authentication is available in builds with the headless-cm feature.

Features

  • local (default): Steam library discovery, save inspection, and Proton launching.
  • headless-cm: optional social, catalog, credentials, and Steam Guard UI.
  • mimalloc: build variant using the mimalloc allocator.

Cargo examples:

cargo run -p steam-tui
cargo run -p steam-tui --no-default-features --features headless-cm
cargo run -p steam-tui --features 'local,headless-cm'

Nix

Run the default package (including the steam-maintain runtime helper) with:

nix run .

Available package variants include steam-tui-full, steam-tui-cm, steam-tui-mimalloc, and steam-tui-auth. Enter the development shell and run the validation commands with:

nix develop
cargo fmt --all -- --check
cargo check --workspace --all-targets --all-features
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features
go vet ./...
go test -race ./...
nix flake check

The flake also runs these checks as part of its buildable check outputs.