LARP as any distro, hardware, or machine you want. Because reality is optional until you pass --real-shit.
Project description
larpfetch
LARP as any distro, hardware, or machine you want. Because reality is optional until you pass
--real-shit.
A cross-platform fetch-style terminal system-information utility with one defining gimmick: users can LARP as any operating system, distro, kernel, hardware configuration, hostname, shell, desktop environment, package manager, or arbitrary machine identity.
Demo
/\ user@btw-i-use-arch
/ \ --------------------
/ \ OS: Arch Linux
/ \ Kernel: 6.99.0-larp
/ ,, \ CPU: AMD Ryzen 9 9950X3D
/ | | -\ GPU: NVIDIA RTX 5090
/_-'' ''-_\ Memory: 4.2 GiB / 128.0 GiB
Shell: zsh
Authenticity: 3%
Installation
pipx install .
Or with pip:
pip install .
Usage
larpfetch # Use default profile
larpfetch -p nasa # Select a named profile
larpfetch --real-shit # Show real system info only
larpfetch --list-profiles # List available profiles
larpfetch --show-config # Show current configuration
larpfetch --config /path/to/config.toml
larpfetch --set cpu="Quantum Potato 9000"
larpfetch --set os="Windows 11 Pro" --set kernel="6.18.7-arch1-1"
larpfetch --version
larpfetch --help
Profiles
Create a ~/.config/larpfetch/config.toml (or $XDG_CONFIG_HOME/larpfetch/config.toml):
[default]
os = "Arch Linux"
distro = "Arch Linux"
hostname = "btw-i-use-arch"
kernel = "6.99.0-larp"
cpu = "AMD Ryzen 9 9950X3D"
gpu = "NVIDIA RTX 5090"
memory = "128 GiB"
shell = "zsh"
[profiles.nasa]
os = "NASA Linux"
hostname = "mainframe-01"
cpu = "Quantum Potato 9000"
gpu = "Classified"
memory = "69 PiB"
[profiles.abomination]
os = "Windows 11 Pro"
kernel = "6.18.7-arch1-1"
cpu = "Apple M7 Ultra"
gpu = "NVIDIA RTX 9090 Ti"
shell = "HolyC"
de = "GNOME 83"
package_manager = "apt btw"
[appearance]
color = true
show_authenticity = true
easter_eggs = true
Configuration
Default config locations:
- Linux:
$XDG_CONFIG_HOME/larpfetch/config.tomlor~/.config/larpfetch/config.toml - macOS:
~/Library/Application Support/larpfetch/config.toml - Windows:
%APPDATA%\larpfetch\config.toml
Precedence (normal mode):
CLI overrides > selected custom profile > default profile > real detected values
Reality mode (--real-shit):
Real detected values only
The user's delusion is authoritative. Impossible combinations are accepted. Windows 11 with an Arch kernel and Apple M7 Ultra CPU? Valid. You do you.
CLI Overrides
Override any field temporarily:
larpfetch --set cpu="Quantum Potato 9000"
larpfetch --set os="Windows 11 Pro" --set kernel="6.18.7-arch1-1"
Custom fields are supported. Unknown fields display with auto-formatted labels.
--real-shit
Bypasses all LARP layers and shows real detected system information:
larpfetch --real-shit
This ignores the default profile, selected profile, and CLI --set overrides. It does not modify your configuration.
Cross-Platform Support
- Linux: Reads
/etc/os-release, environment variables,lspcifor GPU - macOS: Uses
platform.mac_ver(),system_profilerfor GPU - Windows: Uses
platformAPIs, WMIC for GPU
All platform-specific probes fail gracefully. A missing GPU detector doesn't crash the app.
Easter Eggs
The output may include occasional humorous lines. Easter eggs are:
- Deterministic (same input = same output)
- Disableable via
[appearance] easter_eggs = falseorNO_COLOR - Not offensive
- Not random (unless testable)
Some are triggered by specific profile values. Discover them yourself.
Development
git clone <repo>
cd larpfetch
uv venv
uv pip install -e ".[dev]"
pytest
ruff check src/ tests/
Testing
pytest
pytest --cov=larpfetch
Tests cover:
- Config loading and parsing
- Profile resolution and precedence
--real-shitinvariant (ignores all fake inputs)- CLI argument parsing and behavior
- Logo selection
- Renderer output
- Easter egg determinism
- Collector failure degradation
- ANSI-safe alignment
NO_COLORcompliance
Limitations
- GPU detection is best-effort and platform-dependent
- Package counting is not implemented in v1 (no safe universal method)
- Battery detection requires
psutilsensor support - No network calls (by design)
- No hardware benchmarking
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file larpfetch-0.1.0.tar.gz.
File metadata
- Download URL: larpfetch-0.1.0.tar.gz
- Upload date:
- Size: 49.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c4701440be410978b5348125588da0b9ba7ef7dc6b9263ab7555a34df3dc15f
|
|
| MD5 |
48a5dcebe8e37096f8043f377f47fe04
|
|
| BLAKE2b-256 |
03abb2a67585186902c354da83a81929847d01f58b114ee29962acf3875f808f
|
File details
Details for the file larpfetch-0.1.0-py3-none-any.whl.
File metadata
- Download URL: larpfetch-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab33d6130f6ae36a22794103f36d60deaef463bc89316743c0727598b0749612
|
|
| MD5 |
52399ec6c10ff98d463c333692d39ebe
|
|
| BLAKE2b-256 |
d4beccae65e9fe39ec34c048f214d17054047f9ea3ed8e1b5bae70e5bc3049c5
|