MCPcopy Index your code
hub / github.com/5c0/metropolis

github.com/5c0/metropolis @v0.1.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.3 ↗ · + Follow
79 symbols 142 edges 11 files 3 documented · 4%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

🌃 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.

Core symbols most depended-on inside this repo

safe_set_string
called by 56
src/city/utils.rs
safe_set_symbol
called by 24
src/city/utils.rs
safe_set_char_with_bg
called by 10
src/city/utils.rs
darken_color
called by 6
src/city/utils.rs
safe_get_fg
called by 6
src/city/utils.rs
safe_get_bg
called by 6
src/city/utils.rs
safe_get_symbol
called by 6
src/city/utils.rs
parse_color
called by 3
src/theme.rs

Shape

Method 34
Class 22
Function 21
Enum 2

Languages

Rust100%

Modules by API surface

src/city/mod.rs24 symbols
src/theme.rs18 symbols
src/city/utils.rs9 symbols
src/config.rs6 symbols
src/city/buildings.rs5 symbols
src/city/weather.rs4 symbols
src/city/vehicles.rs4 symbols
src/logos.rs3 symbols
src/args.rs3 symbols
src/city/people.rs2 symbols
src/main.rs1 symbols

For agents

$ claude mcp add metropolis \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact