MCPcopy Index your code
hub / github.com/dmadisetti/steam-tui

github.com/dmadisetti/steam-tui @0.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.3.0 ↗ · + Follow
138 symbols 260 edges 20 files 15 documented · 11% updated 3mo ago0.3.0 · 2024-05-24★ 1,0259 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Steam TUI

tests Crates.io

About

Just a simple TUI client for steamcmd. Allows for the graphical launching, updating, and downloading of steam games through a simple terminal client. Methodology informed by steam-cli.

[!NOTE] Steam no longer has a backend only mode. This client has become more limited, but still potenitally useful for those who don't want to use the steam client.

Example of steam-tui in action

Usage

Login with steamcmd first to cache your credentials (don't trust some random app with your passwords):

steamcmd
# Steam> login <user>
# Steam> quit

Launch the binary steam-tui, and rejoice :tada:. Help is in the client.

Unable to launch games? Pressing space will start a steam client and will let you launch games that need steam libraries or have some sort of DRM.

[!WARNING]

Still unable to launch games?

You are not alone, but gaming on linux is getting better. You can define a custom script to launch a specific game by creating $STEAM_TUI_SCRIPT_DIR/<game id>.sh, steam TUI will pass in the file it thinks should be run, but you can ignore this and just do whatever. This reduces steam-tui to more of a launcher, but it's better than nothing.

Features not in the help

It's like an Easter egg for reading documentation!

Favourites

Pressing f will toggle favourites on a game, pressing F will filter favourite games.

Hiding games

Pressing H will hide the selected game. Hidden games are recorded in ~/.config/steam-tui/config.json.

Showing other things (like demos)

You can enable (or hide by exclusion) Game DLC Driver Applications Config Demo Tool Unknown, by changing the allowed_games field in the config.

Requirements

steamcmd is required to launch steam-tui, as steam-tui is essentially just a graphical wrapper for this program. wine usage will be attempted if a native Linux game is not found.

Why ?

~Because why not? Also, the Steam client seems to break on my Arch build. I have a GT 610, and barely anything graphical works- this is a nice work around.~

Update, I got rid of the 610 (let's go 1660), but moved to NixOS and Wayland and the steam client still doesn't work lol.

Contributing

At this point, I am very much done with the project. I only really play Kerbal and 5 Dimensional Chess with Multiverse Time Travel, so additional work on this project is moot. If you buy me a coffee, I'd be happy to sink some more time into this.

Sponsors

Thank you to those who have heeded my call for more coffee!

  • @abowen @KDanisme @jharlan-hash (sponsored major update 0.3.0)
  • @MathiasSven (sponsored minor update 0.2.1)
  • @vaelund (sponsored major update 0.2.0)

Missing Features

  • Better handling for Proton games
  • Filter for only showing installed games

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 81
Function 35
Class 13
Enum 8
Interface 1

Languages

Rust100%

Modules by API surface

src/client.rs23 symbols
src/app.rs19 symbols
src/util/paths.rs18 symbols
src/util/parser.rs13 symbols
src/util/stateful.rs12 symbols
src/interface/game.rs11 symbols
src/util/event.rs9 symbols
src/interface/steam_cmd.rs9 symbols
src/util/error.rs5 symbols
src/interface/executable.rs4 symbols
src/main.rs3 symbols
src/interface/proton_data.rs3 symbols

For agents

$ claude mcp add steam-tui \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page