Skip to content

Drackrath/Aurelia

Repository files navigation

Aurelia logo

Aurelia

A fast, lightweight, command-line Steam launcher and library manager written in Rust.

License: GPL-3.0 Built with Rust Status: Alpha


Warning

Disclaimer — read before use. Aurelia is an independent, unofficial project and is not affiliated with, authorized, sponsored, or endorsed by Valve or Steam in any way. "Steam" and "Valve" are trademarks of Valve Corporation.

  • It modifies Steam's files directly. Doing so may corrupt or damage your Steam installation, potentially forcing a full reinstallation. Back up your data first.
  • No warranty for games launched outside the official Steam launcher. Titles started through Aurelia bypass the normal Steam client and may not behave as expected.
  • Risk of VAC bans. Use of third-party tools that interact with Steam may cause VAC (Valve Anti-Cheat) to flag any user account associated with Aurelia. Accounts used with Aurelia may be banned.

Use Aurelia entirely at your own risk. The authors accept no liability for damage to your Steam installation, lost data, or banned/suspended accounts.

Note

Manual review checklist for the latest code-review changes: FILES_REVIEWED.md.

Aurelia is a pure command-line Steam launcher and library manager — no CEF, no WebViews, no GUI. It talks to Steam's real network protocols through steam-vent, so you can log in, manage your library, install and update games, sync Steam Cloud saves, manage Steam Workshop content, see your friends and chat with them, and launch titles (natively or through Proton/Wine) entirely from a terminal or a script.

It is the modern successor to OpenSteamClient, rebuilt in Rust for a smaller footprint, memory safety, and a scriptable, headless-friendly workflow.

aurelia login
aurelia list --installed
aurelia install 1245620
aurelia play 1245620

Why Aurelia?

  • No web technology. No Electron, CEF, or embedded browser — idle memory stays under ~50 MB instead of the official Steam app's hundreds.
  • Fast and scriptable. A pure Rust CLI: instant startup, easy to automate, and every command speaks --json for machine-readable output.
  • Linux first. 64-bit clean, with first-class Proton/Wine management — and it runs on Windows too.
  • Deep Steam integration. PICS metadata, the content CDN, Steam Cloud, app ownership tickets, depot browsing, DLC management, and Steam Workshop — built on open, documented protocols.
  • Open source. GPL-3.0 licensed, with no dependency on opaque 32-bit legacy Steam binaries.

How it compares

Feature Official Steam OpenSteamClient SteamCMD Aurelia
Architecture Electron + C++ C++ / Qt C++ (proprietary) Pure Rust
Idle RAM ~400–800 MB ~100–200 MB ~50 MB (per run) < 50 MB
Interface Desktop GUI Desktop GUI CLI (scriptable) CLI (scriptable)
Scope Everything Library + launch Install/update + Workshop Library, install, launch, Cloud, Workshop, DLC, friends/chat
Download engine CDN + P2P LAN Standard CDN Standard CDN Multi-threaded CDN
Authentication Full Core Full (+ anonymous) Full (tokens, mobile app, Guard)
Steam integration Native Partial Content only Deep (PICS, CDN, Cloud, tickets)
Platforms Windows, Linux, macOS Windows, Linux Windows, Linux, macOS Linux (first), Windows
Open source No Yes No Yes (GPL-3.0)

vs. SteamCMD. SteamCMD is Valve's official command-line tool and the closest analog to Aurelia, but it is content-only: it downloads and updates app and Workshop files (often anonymously, for dedicated servers) and little else. Aurelia is a full launcher and library manager — on top of installing and updating, it lists and searches your library, launches games (natively or via Proton/Wine), syncs Steam Cloud saves, manages DLC and Workshop subscriptions, reads achievements, and does friends & chat — every command scriptable with --json. SteamCMD is proprietary and ships only as a prebuilt binary; Aurelia is open source (GPL-3.0).


Project status

Aurelia is in active alpha. The core is highly functional: authentication, library management, installs/updates, integrity verification, DLC handling, Steam Cloud sync, and Proton/Wine launching all work today.

  • Authentication — password, Steam Guard (email/device codes), Mobile App confirmation, refresh-token session restore
  • Library — fetch owned games, scan local installs, search & filter, Family Sharing
  • Install & updates — 4-phase download pipeline (manifest → security → chunks), updates, uninstall, integrity verification, and moving installs between library folders (with Steam's appmanifest/libraryfolders.vdf kept in sync)
  • DLC — install, enable/disable, and per-DLC ownership/install status
  • Steam Cloud — enumerate, download, upload save data
  • Proton/Wine — runtime discovery, a download manager (official Valve Proton + GE builds), per-game version pinning, and launch integration
  • Depot browser — list depots, inspect manifest trees, download single files
  • Workshop — browse/search, install/uninstall, subscribe, collections, rate, and read/post comments
  • Friends & chat — friends roster with live persona status and current game, resolve a SteamID from a profile/vanity URL and send/cancel friend requests, plus direct messaging (send, history, and an interactive live session); presence is configurable (defaults to invisible)
  • Collections / categorization

Getting started

Prerequisites

You'll need a Rust toolchain (edition 2024).

On Linux, install the system dependencies first (Ubuntu 24.04 example):

sudo apt-get update
sudo apt-get install build-essential pkg-config libssl-dev libx11-dev libxi-dev \
  libxrandr-dev libxinerama-dev libxcursor-dev libxkbcommon-dev libasound2-dev \
  libudev-dev libwayland-dev libgtk-3-dev libpulse-dev libdbus-1-dev \
  libegl1-mesa-dev libgles2-mesa-dev liblzma-dev

Windows and macOS need only the Rust toolchain.

Build

git clone https://github.com/Drackrath/Aurelia.git
cd Aurelia
cargo build --release

The binary is produced at target/release/aurelia (aurelia.exe on Windows).


Usage

Aurelia is driven entirely from the command line. Run aurelia --help for the full list of subcommands, or aurelia <command> --help for a specific one.

# Account
aurelia login                        # authenticate (prompts for credentials / Steam Guard)
aurelia logout                       # clear the stored session
aurelia account                      # show account details

# Library
aurelia list                         # list your library
aurelia list --installed             # only installed games
aurelia list --search elden          # filter by name
aurelia list --online                # add an ONLINE column (needs-connection heuristic)
aurelia info 690830                  # game details (description, release, reviews, DLC)
aurelia info 690830 --extended       # + requirements, Metacritic, tags, genres, categories
aurelia dlc 690830                   # list a game's DLC with ownership/install status
aurelia achievements 620             # your achievements for a game (unlock state + rarity)
aurelia image 1245620                # fetch cover art to the cache (prints the path)
aurelia image 1245620 -o cover.jpg   # save artwork to a specific file

# Install & maintain
aurelia install 1245620              # download & install a game by app id
aurelia update 1245620               # download the latest manifest
aurelia verify 1245620               # verify installed files
aurelia uninstall 1245620            # remove a game (--delete-prefix wipes its prefix)
aurelia move 1245620 D:\SteamLibrary # move an install to another library (updates Steam data)
aurelia relink 1245620 D:\SteamLibrary  # re-point Steam at already-moved files (no copy)
aurelia import 1245620 D:\SteamLibrary  # register existing on-disk files with Steam
aurelia available 1245620            # is it installed and present on disk?

# DLC
aurelia enable 2001                  # enable an installed DLC for its base game
aurelia disable 2001                 # disable a DLC

# Branches & depots
aurelia branches 1245620             # list beta branches
aurelia set-branch 1245620 beta      # switch branch
aurelia depots 1245620               # list depots
aurelia launch-options 1245620       # list Steam launch configs (exe/args/platform)

# Launch
aurelia play 1245620                 # launch a game and wait for it to exit
aurelia play 1245620 --windows       # run the Windows .exe directly (default on Windows)
aurelia play 1245620 --proton experimental   # force a specific Proton/Wine runner

# Steam Cloud
aurelia cloud sync 1245620           # sync saves (down then up)
aurelia cloud list 1245620           # list a game's Cloud files

# Steam Workshop
aurelia workshop browse 1245620            # discover items (search / sort / paginate)
aurelia workshop info 1234567890           # item or collection metadata
aurelia workshop install 1234567890        # download an item (collections expand to members)
aurelia workshop subscribe 1234567890 --install  # subscribe, then download
aurelia workshop status 1245620            # installed vs subscribed (+ update detection)
aurelia workshop rate 1234567890 up        # thumbs-up (or: down) an item
aurelia workshop comments 1234567890       # read an item's comments
aurelia workshop comment 1234567890 "Nice mod!"  # post a comment

# Friends & chat
aurelia friends                              # list friends (name, status, current game)
aurelia friends search gabelogannewell       # resolve a SteamID (id / profile URL / vanity)
aurelia friends add 76561197960287930        # send a friend request (accepts a URL too)
aurelia friends remove 76561197960287930     # remove a friend / cancel a request
aurelia chat send 76561198042323314 "hi!"    # send a direct message to a friend
aurelia chat history 76561198042323314       # show recent messages with a friend
aurelia chat open 76561198042323314          # interactive live chat (type to send; Ctrl-D quits)

# Configuration
aurelia config show                  # print launcher configuration
aurelia config protons               # list detected Proton/Wine runtimes
aurelia config presence online       # appear online for chat (default: offline/invisible)
aurelia config game 1245620 --proton GE-Proton9-20  # pin a Proton version for one game

# Proton / Wine runtimes (download manager)
aurelia proton list                  # installable runtimes (Valve + GE) and what's installed
aurelia proton install GE-Proton9-20 # download a GE build (or "Proton 9.0" via Steam)
aurelia proton default GE-Proton9-20 # set the global default (used when a game has none set)
aurelia proton uninstall GE-Proton9-19  # delete an installed GE build

Add --json to any command for machine-readable output (errors included). It's a global flag, so aurelia --json <command> and aurelia <command> --json are equivalent.

📖 See USAGE.md for complete documentation of every command and option.


Configuration

Aurelia stores its configuration and local data under ~/.config/Aurelia (%USERPROFILE%\.config\Aurelia on Windows).

  • Library path — Aurelia auto-detects your existing Steam installation. Inspect the resolved configuration with aurelia config show.
  • Session — refresh tokens are persisted in session.json so subsequent invocations log in automatically.
  • Unified download pipeline — installs, updates, and verifications all run through a single, robust engine for reliability and speed.

Documentation

Document Contents
USAGE.md Full reference for every command and flag
CONTRIBUTING.md How to contribute

Contributing

Contributions are welcome — see CONTRIBUTING.md for guidelines.

Acknowledgments

Special thanks to the developers of steam-vent for their invaluable reverse-engineering and protocol documentation. Aurelia is powered by a vendored, modified steam-cdn and the zip crate.

Credits

  • steam-vent — Steam protocol implementation
  • SteamFlow — earlier project work that Aurelia is derived from; thank you!
  • steam-vent-chat — Steam Chat protocol implementation

License

Aurelia is released under the GPL-3.0 License.

About

A fast, lightweight, command-line Steam launcher and library manager written in Rust.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages