Skip to main content

PSN Trophy Tracker TUI — sync and browse your PlayStation trophies from the terminal

Project description

psnTUI

A terminal UI for browsing and syncing your PlayStation trophies — built for people who live in the terminal and want their trophy data without opening a browser or a bloated companion app. image

Features

  • Sync trophies from PSN — incremental, only re-fetches games that changed since the last sync
  • Game library — progress, trophy counts (platinum/gold/silver/bronze), last activity
  • Trophy detail — per-game list with rarity, earn rate, earned date
  • Weekly activity heatmap — 11-week view, click any day to see what you earned
  • Month comparison — current month vs previous month
  • Rarity distribution — ultra rare / very rare / rare / common breakdown
  • Play time tracking — total, today, this week, this month, per game (PS4/PS5 only)
  • In-app search — jump to any game in your library without scrolling
  • Headless sync — scheduled background sync via systemd (Linux) or Task Scheduler (Windows)
  • Keyboard-first, no mouse required

Installation

Recommended — works the same on Linux, macOS, and Windows:

pipx install psntui

pipx installs the app in its own isolated environment and puts it on your PATH, so you don't need to manage a virtualenv yourself.

Alternatively, with uv:

uv tool install psntui

Or plain pip, if you already manage your own virtual environment:

pip install psntui

From source:

git clone https://github.com/TripShuti/psnTUI
cd psnTUI
pipx install .

Usage

First run

psntui

On first launch you'll land on the auth screen. Paste your NPSSO token and click Validate & Save (or press Skip to browse the empty UI first).

Getting your NPSSO token

  1. Log in at https://ca.account.sony.com
  2. Visit https://ca.account.sony.com/api/v1/ssocookie
  3. Copy the 64-character value of npsso from the returned JSON

This token grants access to your PSN account data — treat it like a password. psnTUI stores it locally with owner-only file permissions and never sends it anywhere except Sony's own API.

Controls

Key Action
r Sync trophies from PSN
a Auth screen
f Search games
q Quit
Esc Back (from game detail / search)
Click Select game / trophy / heatmap day

Headless sync — Linux (systemd)

Requires cloning the repository — these files aren't bundled in the PyPI package.

git clone https://github.com/TripShuti/psnTUI
cd psnTUI
bash systemd/install.sh

Installs a user timer that syncs every 4 hours on a fixed schedule (00:00, 04:00, 08:00, 12:00, 16:00, 20:00). Survives sleep/suspend — if a scheduled sync is missed while the system was asleep, it runs once immediately on wake, instead of skipping it entirely.

Check it:

systemctl --user status psntui-sync.timer
journalctl --user -u psntui-sync.service -n 20

Headless sync — Windows (Task Scheduler)

# Run once
psntui --sync

# Create a recurring task, every 4 hours
$action = New-ScheduledTaskAction -Execute "psntui" -Argument "--sync"
$trigger = New-ScheduledTaskTrigger -RepetitionInterval (New-TimeSpan -Hours 4) -AtStartup
Register-ScheduledTask -TaskName "psnTUI Sync" -Action $action -Trigger $trigger -RunLevel Highest

Note: by default this won't wake a sleeping laptop, so syncs are skipped while it's asleep rather than caught up afterward. Add -WakeToRun to the trigger settings if you want it to wake the machine for scheduled syncs, or just run psntui --sync manually after waking.

Manual trigger (any platform)

psntui --sync

Data storage

OS Location
Linux ~/.config/psntui/
macOS ~/Library/Application Support/psntui/
Windows %APPDATA%\psntui\

SQLite database with WAL mode. Your NPSSO token lives in config.json in the same directory, with 0600 permissions on Linux/macOS.

Requirements

  • Python ≥ 3.11
  • A terminal with Unicode and TrueColor support (Windows Terminal, any modern Linux/macOS terminal — legacy cmd.exe is not recommended)
  • A PlayStation Network account with games on PS4/PS5
  • An NPSSO token (see above)

Development

git clone https://github.com/TripShuti/psnTUI
cd psnTUI
python -m venv .venv && source .venv/bin/activate
pip install -e .
pytest tests/

Disclaimer

psnTUI uses psnawp, an unofficial, reverse-engineered wrapper around the PlayStation Network API. This is not affiliated with or endorsed by Sony Interactive Entertainment. Use at your own discretion — aggressive sync frequency may trigger PSN rate limiting.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

psntui-0.1.7.tar.gz (26.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

psntui-0.1.7-py3-none-any.whl (27.0 kB view details)

Uploaded Python 3

File details

Details for the file psntui-0.1.7.tar.gz.

File metadata

  • Download URL: psntui-0.1.7.tar.gz
  • Upload date:
  • Size: 26.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for psntui-0.1.7.tar.gz
Algorithm Hash digest
SHA256 fcb3ffbae27861bd7083831d18bd3143c4427cde201e04d55fca85a9837d743d
MD5 9c2c4517324f6f4e846c2e2469d6ec15
BLAKE2b-256 285fcb8bca39214642119e524e9a267dc5f97a1c53005fd5dd1c043803b11962

See more details on using hashes here.

Provenance

The following attestation bundles were made for psntui-0.1.7.tar.gz:

Publisher: workflow.yml on TripShuti/psnTUI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file psntui-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: psntui-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 27.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for psntui-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 17cb5dff2838ea187a3c83d2bb4918ab5f56f4bd38bf7188978ad6dc57db7bb1
MD5 3a124a90d9ffb2080e0ff8b597f79662
BLAKE2b-256 9d6ac76e1404106bbeb4e80c8068b82640623e2eae001a224d3446e0de0df547

See more details on using hashes here.

Provenance

The following attestation bundles were made for psntui-0.1.7-py3-none-any.whl:

Publisher: workflow.yml on TripShuti/psnTUI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page