@bballant/goose
v0.0.0
Published
A CLI for tracking your gaming behavior on your own
Downloads
63
Readme
Goose
A local-first CLI tool for tracking your gaming activity on Linux gaming handhelds and desktops.
What it does
Goose collects and stores your gameplay metrics locally—starting with Steam playtime data, with plans for real-time system telemetry (CPU, GPU, memory, temperature) during gaming sessions.
Key features:
- Fetches your Steam library and playtime data via the Steam Web API
- Stores everything locally in an embedded DuckDB database
- Background service with smart polling (detects sleep/wake on handhelds)
- Designed for Steam Deck, Legion Go, ROG Ally, and Linux gaming PCs
- No cloud required—your data stays on your device
Requirements
- Node.js 25+ (required)
- mise (recommended for version management)
If you use mise, the correct Node version will be automatically selected from .mise.toml.
Build & Run
# Clone the repository
git clone https://github.com/bballant/goose.git
cd goose
# Install dependencies
npm install
# Build
npm run build
# Run the CLI
./bin/run.js --helpQuick Start
# Set up your Steam credentials
./bin/run.js config set steamId YOUR_STEAM_ID
./bin/run.js config set steamApiKey YOUR_API_KEY
# Run the service (fetches Steam data on start, then every 6 hours)
./bin/run.js service runTo get a Steam API key, visit https://steamcommunity.com/dev/apikey
Available Commands
goose config set <key> <value> Set a config value
goose config get <key> Get a config value
goose config unset <key> Remove a config value
goose config show Show all config values
goose service run Run the background service
goose db query <file> Run a SQL query file
goose db execute <file> Execute a SQL fileDevelopment
# Run tests
npm test
# Lint
npm run lintLicense
MIT License. See LICENSE for details.
Built With
- DuckDB — Embedded analytical database
- oclif — CLI framework
- TypeScript
