-
-
Notifications
You must be signed in to change notification settings - Fork 0
Usage Friends and Chat
Part of the Usage reference. · ← Previous: Steam Workshop · Next: Inventory, wallet & market →
Manage your Steam friends, look up profiles and wishlists, and exchange direct
(friend-to-friend) messages. All of these commands require an active session. Since v0.1.38,
user lookups go over the Steam connection and no longer read the public Community ?xml=1
profile pages.
To receive friend data and incoming messages, the session must announce a Steam
presence. Steam treats a refresh-token logon as offline and withholds friend persona
state and chat until a presence is declared. The daemon does this automatically
on connect using the configured config presence. A standalone session
announces it on demand. Presence defaults to offline, which is an invisible presence:
you appear offline to friends but still sync your friends list and receive messages. Change
it with config presence.
A <STEAMID> below is a friend's SteamID64, the 17-digit id shown by friends.
user, wishlist, friends search and
friends add take a <USER> that may be any of:
- a 17-digit SteamID64 (
7656…; a shorter number is rejected), - a profile URL (
https://steamcommunity.com/profiles/<id>), -
me, the logged-in account, or - a friend's display name. An exact (case-insensitive) match wins, otherwise a unique prefix. Several matches are an error that lists them. Non-friends need a SteamID64 or profile URL.
Custom (vanity) URLs (steamcommunity.com/id/<name>) are not accepted any more: the
Steam connection cannot resolve them. Pass the SteamID64 or the /profiles/ URL instead.
List your Steam friends with display name, online status, and current game.
aurelia friends [--json]
The text view is a STATUS / STEAMID / NAME / GAME table, where STATUS is the persona
state (online, offline, busy, away, snooze, looking to trade, looking to play). The --json output is an array of { "steam_id", "relationship", "persona_name", "persona_state", "game_app_id", "game_name" } (only accepted friends, relationship 3,
are listed. persona_state is the raw EPersonaState integer).
Through the daemon the roster is served from a background watcher that keeps it
live as Steam pushes friend/persona updates, so a call right after the daemon starts may
be briefly empty until the initial list arrives. Run it again a moment later. Standalone it
does a short best-effort collection over a fresh connection.
aurelia friends
aurelia friends --jsonaurelia friends is shorthand for aurelia friends list.
Show a Steam user's profile, as Steam reports it over the CM connection (no web requests).
aurelia user <USER> [--json]
<USER> is any user identifier. The text view prints the display name
and SteamID64, profile URL, avatar URL, privacy (public, friends-only or private, plus
limited account), and, when Steam shares them, the real name, location, account creation
date, online status, current game, last-seen date, headline, profile summary and any community
ban. Private profiles show less. The --json output is the full profile object:
{ "steam_id", "persona_name", "profile_url", "avatar_url", "visibility", "privacy_state", "is_public", "is_limited", "ban_expires", "created", "real_name", "location", "headline", "summary", "persona_state", "game_app_id", "game_name", "last_logoff", "sources" }.
aurelia user me
aurelia user 76561197960287930 --json
aurelia user "AI Jungle Wulf" # a friend, by display nameSame as user: shows a user by identifier, with the same
output. Kept so existing scripts keep working. Steam exposes no free-text people search, so
this resolves one specific user rather than searching.
aurelia friends search <USER> [--json]
aurelia friends search 76561197960287930
aurelia friends search https://steamcommunity.com/profiles/76561197960287930Show your wishlist, or a friend's, with store prices. Add or remove items on your own.
aurelia wishlist [<USER>] [-n <N>] [-o <OFFSET>] [-c <CC>] [-l <LANG>] [--json]
aurelia wishlist add <APP_ID> [--json]
aurelia wishlist remove <APP_ID> [--json]
| Option | Description |
|---|---|
<USER> |
Whose wishlist to show (a user identifier). Defaults to yours. |
-n, --count <N> |
Maximum items to show (default 50). |
-o, --offset <N> |
Skip this many items first, for paging (default 0). |
-c, --country <CC> (alias --cc) |
Price region. Defaults to config country, then the system locale, then US. |
-l, --lang <LANG> (alias --language) |
Language for names. |
The table shows # (your wishlist rank), APPID, PRICE, DISCOUNT, ADDED and NAME,
with prices from one batched store lookup. A wishlisted app that is no longer on the store
reads (not on the store). Steam only lets you read friends' wishlists: anyone else's
fails with a privacy error ("type": "privacy_restricted"), and so does a friend's wishlist
that is private or empty. The --json output is { "steam_id", "total", "offset", "items" },
where each item has the same fields as a search row
plus priority, date_added and date_added_date.
wishlist add and wishlist remove change your own wishlist and report the new item
count. Their --json output is { "app_id", "status": "added"|"removed", "wishlist_count" }.
aurelia wishlist # yours, first 50 items
aurelia wishlist -n 20 -o 20 # items 21-40
aurelia wishlist "AI Jungle Wulf" # a friend's
aurelia wishlist add 1245620
aurelia wishlist remove 1245620Send a friend request, or remove a friend / cancel a pending request. Both require an active session.
aurelia friends add <USER> [--json]
aurelia friends remove <STEAMID> [--json]
add accepts any user identifier except custom (vanity) URLs. It is
resolved to a SteamID and a request is sent. Aurelia waits for Steam's confirmation and reports the target (and its name,
when Steam returns one). A non-OK result is surfaced as a clear error (e.g. friend-list full,
rate-limited, or access denied). The --json output is
{ "steam_id", "persona_name", "status": "request_sent" }.
remove takes a SteamID64 (as listed by friends) and removes that friend
or withdraws a request you sent. It is fire-and-forget (Steam returns no acknowledgement),
so it reports success once the message is sent. The --json output is
{ "steam_id", "status": "removed" }.
aurelia friends add 76561197960287930
aurelia friends add https://steamcommunity.com/profiles/76561197960287930
aurelia friends remove 76561197960287930Friend requests are visible to the recipient. Sending many in a short time can trip Steam's rate limits (surfaced as an
EResult 84error).
Send a direct message to a friend.
aurelia chat send <STEAMID> <MESSAGE>...
All words after the SteamID form the message (quote it to be safe). The --json output is
{ "steamid", "sent", "server_timestamp", "modified_message" } (modified_message is set
only when Steam rewrites the text, e.g. applying bbcode).
aurelia chat send 76561198042323314 "on my way"
aurelia chat send 76561198042323314 "ggwp" --jsonShow recent messages exchanged with a friend, most recent first.
aurelia chat history <STEAMID> [-n <N>] [--json]
| Option | Description |
|---|---|
-n, --count <N> |
How many recent messages to fetch (default 20). |
The text view prints [<timestamp>] me/them: <text>. The --json output is an array of
{ "sender", "from_self", "message", "timestamp" } (sender a SteamID64, timestamp a
Unix time).
aurelia chat history 76561198042323314
aurelia chat history 76561198042323314 --count 50 --jsonOpen an interactive live chat with a friend: incoming messages stream to stdout while each line you type on stdin is sent. The session ends on stdin EOF, Ctrl-D (or Ctrl-Z then Enter on Windows), or if the connection closes.
aurelia chat open <STEAMID> [--json]
In plain mode it prints them: <text> for incoming messages, me (sent elsewhere): <text>
for messages you sent from another device, and a typing indicator. With --json it becomes
an NDJSON event stream for front-ends, reading message text from stdin lines and
emitting one event per line:
| Event line | When |
|---|---|
{"event":"ready","with":<steamid>} |
Session established. |
{"event":"message","from":<steamid>,"text":"…","timestamp":<unix>} |
A message arrived from the friend. |
{"event":"echo","to":<steamid>,"text":"…","timestamp":<unix>} |
A message you sent from another device. |
{"event":"typing","from":<steamid>,"timestamp":<unix>} |
The friend is typing. |
{"event":"error","message":"…"} |
A send failed. |
{"event":"closed","with":<steamid>} |
Terminal: the session ended. |
It runs naturally over the daemon: the thin client streams your stdin and
relays the daemon's stdout in real time, so the live session reuses the shared, already-online
connection.
aurelia chat open 76561198042323314
echo "brb" | aurelia chat open 76561198042323314 # send one line, then exit on EOF
aurelia chat open 76561198042323314 --json # NDJSON event streamUsers
-
Usage
- Global behavior
- Authentication
- Library
- Store & discovery
- Collections
- Install & maintenance
- Launching
- Depots & branches
- Downgrade & pinning
- Steam Cloud
- Steam Workshop
- Friends & chat
- Inventory & market
- Configuration
- Proton & Wine
- Windows Steam runtime
- Luxtorpeda plugin
- umu-launcher plugin
- Launch scripts
- Session daemon
- Files & locations
- Exit codes & logging
- Windows Steam Runtime
Maintainers
Architecture