steamworks sdk API tool
  • Rust 94.1%
  • Nix 5.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-05 16:15:36 -07:00
src init 2026-09-05 16:15:36 -07:00
.editorconfig init 2026-09-05 16:15:36 -07:00
.envrc init 2026-09-05 16:15:36 -07:00
.gitignore init 2026-09-05 16:15:36 -07:00
Cargo.lock init 2026-09-05 16:15:36 -07:00
Cargo.toml init 2026-09-05 16:15:36 -07:00
flake.lock init 2026-09-05 16:15:36 -07:00
flake.nix init 2026-09-05 16:15:36 -07:00
helptext.txt init 2026-09-05 16:15:36 -07:00
README.md init 2026-09-05 16:15:36 -07:00
rustfmt.toml init 2026-09-05 16:15:36 -07:00

simple command line tool to interact with steam sdk APIs (not just steam web APIs!!)

either

  • run directly for a repl
  • pipe in newline-separated commands from a file or otherwise to run them

implemented commands

  • rs - remote storage
    • rs ls [--sort <name/size>] - list remote files stored for this game

    • rs info <file (remote)> - show info about specified remote file

    • rs cat <file (remote)> [--bytes] - return the remote file's contents

      • if the contents is valid UTF-8, that will be displayed, falling back to a hex dump if not.

        specifying --bytes will always show a hex dump

    • rs rm <file (remote> - remove specified remote file

    • rs cp <src (remote)> <dst (remote)> [--overwrite] - copy remote src file to remote dst

      • if --overwrite is not specified, the dst file will not be overwritten if it exists
    • rs mv <src (remote)> <dst (remote)> [--overwrite] - move remote src file to remote dst

      • if --overwrite is not specified, the dst file will not be overwritten if it exists
    • rs upload <src (local)> [dst (remote)] [--overwrite] - upload local src file to remote dst

      • if dst is not specified, then the local src filename will be used as the remote dst filename

        for example, rs upload /home/stella/awawa.txt will upload to the remote file awawa.txt

      • if --overwrite is not specified, the dst file will not be overwritten if it exists

    • rs upclip <dst (remote)> [mime [--overwrite]- upload clipboard to remotedst`

      • mime will be guessed by the clipboard provider if not specified
      • if --overwrite is not specified, the dst file will not be overwritten if it exists
    • rs write <dst (remote)> <text> [--overwrite] - upload text to remote dst

      • if --overwrite is not specified, the dst file will not be overwritten if it exists
    • rs download <src (remote)> [dst (local)] [--overwrite] - download remote src file to local dst

      • if dst is not specified, then the remote src filename will be used as the local dst filename

        for example, rs upload /home/stella/awawa.txt will upload to the remote file awawa.txt

      • if --overwrite is not specified, the dst file will not be overwritten if it exists

    • rs downclip <dst (local)> [mime] - download remote src file to clipboard

      • mime will be guessed by the clipboard provider if not specified
    • rs share <file (remote)> - get a steam share url for specified remote file

    • rs upshare <src (local)> [dst (remote)] [--overwrite] - upload and share local src file to remote dst

      • if dst is not specified, then the local src filename will be used as the remote dst filename

        for example, rs upload /home/stella/awawa.txt will upload to the remote file awawa.txt

      • if --overwrite is not specified, the dst file will not be overwritten if it exists

    • rs upclipshare <dst (remote)> [mime [--overwrite]- upload clipboard to remotedst` and share it

      • mime will be guessed by the clipboard provider if not specified
      • if --overwrite is not specified, the dst file will not be overwritten if it exists
    • rs immortalize <url (web)> [dst (remote)] [--overwrite] - download web url and upload it to remote dst

      • if dst is not specified, then it will be derived from the remote file's SHA1 hash and the url with character other than alphanumeric/-/_/. removed in the format ${sha1}_${sanitized_url}

        for example, rs upload https://example.com will upload to the remote file 4A3CE8EE11E091DD7923F4D8C6E5B5E41EC7C047_httpsexample.com

      • if --overwrite is not specified, the dst file will not be overwritten if it exists

todo