"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."
Features • Usage • Controls • Architecture
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.
- 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.tomlor CLI flags.
curl -fsSL https://raw.githubusercontent.com/5c0/metropolis/main/install.sh | bashcargo install metropolis-tuiyay -S metropoliswinget install 5c0.MetropolisRun directly without installing:
nix run github:5c0/metropolisOr add to your flake.nix inputs:
inputs.metropolis.url = "github:5c0/metropolis";Then add to environment.systemPackages:
environment.systemPackages = [
inputs.metropolis.packages.${system}.default
];Requires Rust and cargo to be installed.
git clone https://github.com/5c0/metropolis.git
cd metropolis
cargo run --release| Key | Action |
|---|---|
q |
Escape the city (Quit) |
r |
Atmospheric Shift (Toggle Rain) |
s |
Cryo Shift (Toggle Snow) |
d |
Core Diagnostics (Debug Overlay) |
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, orclearskies, 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.
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!
- 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.


