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 terminal fetch utility that detects real system information and lets you lie about it. Ships with 533 colored ASCII logos from fastfetch and 10 built-in LARP profiles.
Installation
uv tool install larpfetch
Or with pipx:
pipx install larpfetch
Usage
larpfetch # Show real system info with auto-detected logo
larpfetch -p nasa # LARP as NASA Linux
larpfetch -p hacker # Become a Parrot OS hacker
larpfetch --real-shit # Show only real detected values
larpfetch --list-profiles # List all available profiles
larpfetch --show-config # Show current configuration
Override any field
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.
Built-in Profiles
| Profile | OS | Highlights |
|---|---|---|
nasa |
NASA Linux | Quantum Potato 9000, 69 PiB RAM, Classified GPU |
abomination |
Windows 11 Pro | Apple M7 Ultra, HolyC shell, GNOME 83 |
hacker |
Parrot OS | RTX 4090, 128 GiB, KDE Plasma 6 |
macbook |
macOS Sequoia | M4 Max, 40-core GPU, Aqua DE |
server |
Ubuntu Server 24.04 | EPYC 9654, 2 TiB RAM, headless |
retro |
Windows 98 SE | Pentium III, Voodoo3, 256 MiB |
gamer |
Windows 11 Pro | Ryzen 9 9950X3D, RTX 5090 |
minimal |
Alpine Linux | 512 MiB, ash shell |
templeos |
TempleOS | HolyC, 640x480 16-color |
haiku |
Haiku R1/beta4 | Haiku Desktop |
User-defined profiles in your config file override built-in ones with the same name.
Configuration
Default config location: ~/.config/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.custom]
os = "My Custom OS"
cpu = "Custom CPU"
logo = "arch" # Reference a built-in logo by name
[profiles.art]
os = "Artistic OS"
logo = """\
/\\
/ \\
/ \\
/ \\
/________\\
""" # Or inline custom ASCII art
[appearance]
color = true
show_authenticity = true
easter_eggs = true
Platform-specific 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 profile > default profile > real detected values
Reality mode (--real-shit):
Real values only — bypasses everything
Logos
533 ASCII logos adapted from fastfetch (MIT licensed), with full ANSI color support. Colors are applied automatically and respect NO_COLOR.
Logo selection is based on your displayed identity (or real identity in --real-shit mode). Profiles can override the logo by name or provide custom ASCII art.
Easter Eggs
The output may include occasional humorous lines:
Authenticity: N%— how much of your output is realSource: trust me bro— triggered by implausible memory valuesReality Leakage: 100.00%— absurdly high package countsDisappointment: immeasurable— shown in--real-shitmodeThe allegations were true.— deterministic, based on username hash
Easter eggs are deterministic, disableable via [appearance] easter_eggs = false or LARPFETCH_NO_EASTER_EGGS=1, and not offensive.
The Sacred Rule
The user's delusion is authoritative.
This is valid:
OS: Windows 11 Pro
Kernel: 6.18.7-arch1-1
CPU: Apple M7 Ultra
GPU: NVIDIA RTX 9090 Ti
Memory: 69 PiB
Shell: HolyC
DE: GNOME 83
Package Manager: apt btw
Impossible combinations are accepted. Profiles are display identities, not hardware simulations.
Cross-Platform Support
- Linux:
/etc/os-release,lspci, environment variables - macOS:
platform.mac_ver(),system_profiler - Windows:
platformAPIs, WMIC,COMSPEC
All platform-specific probes fail gracefully. A missing GPU detector doesn't crash the app.
CLI Reference
larpfetch # Default mode
larpfetch -p NAME # Select profile
larpfetch --profile NAME # Select profile (long form)
larpfetch --real-shit # Real system info only
larpfetch --list-profiles # List all profiles
larpfetch --show-config # Show current config
larpfetch --config /path/to/config.toml # Custom config path
larpfetch --set key=value # Override a field (repeatable)
larpfetch --color # Force color output
larpfetch --no-color # Disable color output
larpfetch --version # Show version
larpfetch --help # Show help
Development
git clone https://github.com/vaproh/larpfetch.git
cd larpfetch
uv sync
just test
just lint
Or with just:
just dev # install in dev mode
just test # run tests
just lint # ruff check
just fmt # ruff format
just check # lint + test
just all # format + lint + test
197 tests covering: config loading, profile resolution, --real-shit invariant, CLI parsing, logo selection, ANSI alignment, easter egg determinism, collector degradation, and more.
Roadmap
- v1.1:
--logo,--list-logos, pipe mode - v1.2: JSON output, package count detection, GPU/disk details
- v1.3: More profiles, compact mode
- v2.0: Plugins, custom themes, export profiles
See ROADMAP.md for full details.
License
MIT — see LICENSE
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-1.0.0.tar.gz.
File metadata
- Download URL: larpfetch-1.0.0.tar.gz
- Upload date:
- Size: 151.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fbbfbd0892fa0e98250651f2a27f71bdcc4218078257c852d315757ae3c8d192
|
|
| MD5 |
f1a8aac1793809d55e49f464faef5327
|
|
| BLAKE2b-256 |
279e132f396023e11e20208295b0481edbcc1c1e13f088b29a9bc59986df5e86
|
File details
Details for the file larpfetch-1.0.0-py3-none-any.whl.
File metadata
- Download URL: larpfetch-1.0.0-py3-none-any.whl
- Upload date:
- Size: 123.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c358bdb343a543fd726988c0157bcb913cc385eb060b660c117f58f27baed0a9
|
|
| MD5 |
58b505a8ceafb674b75735ea1bb571f8
|
|
| BLAKE2b-256 |
3a60239d2cc0db34d92189853077d34d2ecd6396c8d7ec3b412da3383886cfdb
|