sftui // Steam Friends List TUI
August 14, 2025 ยท View on GitHub
A beautiful, real-time command-line interface for viewing* your Steam friends list. Monitor your friends' online status, current games, and last seen times directly from your terminal.
*yes, read only for nowโข.. I am working on interactiveness, see issues.
Features
tldr: it's the steam friends list with less features and more bugs but in the terminal... :)
โจ Rich Console Interface - Beautiful terminal UI powered by Spectre.Console with colors and interactive elements
๐ Real-time Updates - Instantly see changes as your friends come online, go offline, or start/stop playing games
๐๏ธ Last Seen Tracking - View when offline friends were last online
๐ Secure Authentication - QR code authentication with encrypted token storage - authenticate once, use repeatedly
๐ Cross-platform - Works seamlessly (I hope) on Windows, macOS, and Linux
โก Lightweight - Minimal resource usage with efficient real-time Steam API integration
Quick Start
Prerequisites
- Steam Account: Steam Mobile app installed on phone (for initial authentication)
- Operating System: Windows 10+, macOS 10.15+, or Linux (most distributions)
- Network: Internet connection for Steam API access
- Terminal: Modern terminal with Unicode support (Windows Terminal, iTerm2, gnome-terminal, etc.)
- .NET 9.0 Runtime or later *
* only if you plan to build from source, as the releases are self contained
Installation
Option 1: Download Release (Recommended)
- Download the latest release for your platform from the Releases page
- Windows:
win-x64.zip - macOS:
osx-x64.zip - Linux:
linux-x64.gz
- Windows:
- Extract the sftui executable to your desired location
- Run
sftui
Option 2: Build from Source (Cross-Platform)
# Clone the repository
git clone https://github.com/AdamWHY2K/steam_friends_list_tui.git
cd steam_friends_list_tui
# Build for your current platform
dotnet build -c Release
Usage
# Windows (PowerShell/Command Prompt)
sftui.exe
sftui.exe --debug
# macOS/Linux
./sftui
./sftui --debug
# Using dotnet run (from source)
dotnet run
dotnet run -- --debug
Authentication
The application uses Steam's official QR code authentication system for secure, convenient access:
First-time Setup
- Launch the application - a QR code will be displayed in your terminal
- Open the Steam Mobile app on your phone
- Navigate to the Steam Guard screen
- Scan the QR code displayed in the terminal
- Your authentication tokens will be encrypted and saved for future use
Subsequent Usage
- The app automatically uses your saved authentication tokens
- No QR code scanning required unless tokens expire or become invalid
- Automatic re-authentication prompts when needed
Security Features
- ๐ Tokens are automatically encrypted using machine-specific keys
- ๐ Stored in secure application data directory with restricted permissions
- ๐ซ Tokens cannot be transferred between devices
- ๐๏ธ Manual token clearing: delete
auth_tokens.jsonin the sftui data folder
Keyboard Controls
| Key | Action |
|---|---|
โ/โ/j/k | Navigate friends list |
Page Up/Down | Fast scroll |
Home/End | Jump to top/bottom |
Ctrl+C/ESC/Q | Quit application |
Privacy & Data
- No data collection: This application does not collect, store, or transmit any personal data
- Local authentication: All authentication tokens are stored locally and encrypted
- Steam API only: Uses official Steam APIs - no third-party services involved
- Open source: Full source code available for audit and verification
Technical Details
Built With
- .NET 9.0 - Modern, cross-platform runtime
- SteamKit2 - Robust Steam API library
- Spectre.Console - Rich terminal UI framework
- QRCoder - QR code generation for authentication
- DotNetEnv - Environment configuration
Architecture
- Clean, modular C# codebase with separation of concerns
- Event-driven Steam API integration for real-time updates
- Secure token management with encryption and proper file permissions
- Responsive terminal UI with efficient rendering
Support the Project
If you find this project useful, please consider:
- ๐ฅบ Buying me a coffee to support ongoing development
- โญ Starring the repository
- ๐ Reporting bugs or suggesting improvements
- ๐ Contributing code or documentation
- ๐ฌ Sharing with friends who might find it useful
Made with โค๏ธ for the Steam nerds it's me, i am the steam nerd