Skip to main content

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)
  • Friend leaderboard — trophy level, platinum/gold/silver/bronze counts for all friends
  • Per-game comparison — compare trophy progress with a specific friend across all shared games
  • 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

Main screen

Key Action
r Sync trophies from PSN
a Auth screen
l Open friend leaderboard
t Theme picker
f Search games
q Quit
Esc Back (from game detail / search)
Click Select game / trophy / heatmap day
Click Play time card → open monthly calendar

Friends leaderboard (l)

Key Action
c Compare with selected friend
r Reload friend data from PSN
Esc Close

Game detail

Key Action
c Compare friends on this game
t Set play time (if no PSN data)
Esc Back

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

Metadata

Release files for psntui 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for psntui 0.2.1
File Size Uploaded
psntui-0.2.1.tar.gz 34.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for psntui 0.2.1
File Interpreter ABI Platform
psntui-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 68.4 kB

Release files / psntui-0.2.1.tar.gz

Download URL psntui-0.2.1.tar.gz
Size 34.1 kB
Tags Source
SHA-256 checksum
How to use checksums
29fb62c3f70a02bff193835ad984b57532a4fec00a20c820925d524b126845bb
BLAKE2b-256 checksum
How to use checksums
7ad07a4afe42809ff2ec1cd84cc58e43d74bf6c66b3dad6837243a11579800ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 15, 2026.

Transparency log

Release files / psntui-0.2.1-py3-none-any.whl

Download URL psntui-0.2.1-py3-none-any.whl
Size 34.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ca58e8568e54614518fc2bfeb87a016d4c045ff51a6e0bbd83853f913b9f70fd
BLAKE2b-256 checksum
How to use checksums
f92d94c82fe26f42c9b10549f9e63f19304883c6e12bbb26bbeb078c0db59bec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page