Skip to main content

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.toml or ~/.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 real
  • Source: trust me bro — triggered by implausible memory values
  • Reality Leakage: 100.00% — absurdly high package counts
  • Disappointment: immeasurable — shown in --real-shit mode
  • The 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: platform APIs, 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


Download files

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

Source Distribution

larpfetch-1.0.0.tar.gz (151.9 kB view details)

Uploaded Source

Built Distribution

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

larpfetch-1.0.0-py3-none-any.whl (123.2 kB view details)

Uploaded Python 3

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

Hashes for larpfetch-1.0.0.tar.gz
Algorithm Hash digest
SHA256 fbbfbd0892fa0e98250651f2a27f71bdcc4218078257c852d315757ae3c8d192
MD5 f1a8aac1793809d55e49f464faef5327
BLAKE2b-256 279e132f396023e11e20208295b0481edbcc1c1e13f088b29a9bc59986df5e86

See more details on using hashes here.

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

Hashes for larpfetch-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c358bdb343a543fd726988c0157bcb913cc385eb060b660c117f58f27baed0a9
MD5 58b505a8ceafb674b75735ea1bb571f8
BLAKE2b-256 3a60239d2cc0db34d92189853077d34d2ecd6396c8d7ec3b412da3383886cfdb

See more details on using hashes here.

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