Skip to content

5c0/metropolis

Repository files navigation

🌃 Metropolis

The City Powered by Your Kernel

Rust License Version AUR

"The year is 20XX. Your processes aren't just rows in a table. They're the residents. Your CPU isn't just silicon. It's the infrastructure. And the city? The city is breathing."

FeaturesUsageControlsArchitecture


Metropolis is a high-performance, narrative-driven system monitor built for the terminal. It transcends traditional hardware monitoring by transforming raw kernel metrics into a living, breathing Cyberpunk Skyline.

Every flicker of a neon sign, every shuttle streaking across the sky, and every drop of rain is a direct reflection of your system's heartbeat.

Demos

🌃 Night

Metropolis demo

☔ Rain

Metropolis rain demo

❄️ Snow

Metropolis snow demo


Features

  • Dynamic Branding: The central monolith automatically detects your OS and brands itself accordingly (or override it with your own).
  • CPU (The Heartbeat): High utility triggers "Rush Hour"—flooding sky-lanes with high-speed traffic and increasing pedestrian density.
  • Disk I/O (Logistics): Intense activity triggers Heavy Industrial Shuttles. Watch long-haulers move "physical data" across the district.
  • RAM (Illumination): Memory usage dictates the overall occupancy and glow of the city's monoliths.
  • Neon Signage: Secondary buildings display your Top CPU Processes as vibrant neon signs.
  • Dynamic Pursuits: Random high-stakes police chases streak across the skyline. Look for the Red Fugitive and Interceptor units.
  • Procedural Night: Window patterns and traffic cycles are session-unique.
  • Fully Customizable: Swap themes, toggle weather, and fine-tune simulation density via a simple config.toml or CLI flags.

Installation

One-Line Install (Linux / macOS)

curl -fsSL https://raw.githubusercontent.com/5c0/metropolis/main/install.sh | bash

Crates.io

cargo install metropolis-tui

Arch Linux (AUR)

yay -S metropolis

Windows (winget)

winget install 5c0.Metropolis

Nix / NixOS (Flake)

Run directly without installing:

nix run github:5c0/metropolis

Or add to your flake.nix inputs:

inputs.metropolis.url = "github:5c0/metropolis";

Then add to environment.systemPackages:

environment.systemPackages = [
  inputs.metropolis.packages.${system}.default
];

Build from Source

Requires Rust and cargo to be installed.

git clone https://github.com/5c0/metropolis.git
cd metropolis
cargo run --release

Controls

Key Action
q Escape the city (Quit)
r Atmospheric Shift (Toggle Rain)
s Cryo Shift (Toggle Snow)
d Core Diagnostics (Debug Overlay)

Configuration

Metropolis automatically creates its default config.toml on first run:

OS Config Path
Linux ~/.config/metropolis/
macOS ~/Library/Application Support/Metropolis/
Windows %APPDATA%\Metropolis\

You can customize almost everything:

  • Themes: Switch between built-in themes (matrix, cyberpunk, sin_city, dracula, synthwave) or write your own.
  • The Monolith: Override the OS detection to force a specific logo, or change the neon text.
  • Environment: Force rain, snow, or clear skies, and toggle terminal transparency.
  • Simulation: Tune the maximum number of vehicles, pedestrians, and weather density.

For a full list of options, check assets/config_template.toml. You can also override any of these settings at runtime with flags (e.g., --theme matrix). Run metropolis --help for the full list.

Custom Themes

You can build your own themes to customize the entire color palette—from the main building's neon signs to the street lamps, weather particles, shuttle traffic, and much more.

Drop custom .toml files into the themes/ directory next to your config file. Share your city in the Theme Gallery!


Built With

  • Rust: For sub-millisecond, zero-overhead rendering.
  • Ratatui: The backbone of our terminal metropolis.
  • Sysinfo: Our direct link to the kernel.

Drop a star if you're enjoying the view.

About

A cyberpunk system monitor that transforms kernel metrics into a living terminal skyline. Built with Rust & Ratatui.

Topics

Resources

License

Stars

Watchers

Forks

Packages