Guides

💻 About System - Metadata Info

GitHub StarsGitHub DiscussionsPRs Welcome

Node.js Shell System Info Metadata

bunx about-system
npx about-system

A cross-platform Node.js implementation of the system info script with enhanced features, caching, and full customization support.

Examples

systeminfo_greeting

👤 deck 🏠 steamdeck 📁 90% 💾 2/14GB 🔝 6% cursor ⏱️ 1d 7h 18m 🌎 174.194.193.230 📍 San Jose 🔗 http://230.sub-174-194-193.myvzw.com 👮 Verizon Business ⚡ SteamOS 📈 AMD Custom APU 0405 💻 Jupiter 🔧 6.11.11-valve12-1-neptune-611-g517a46b477e1 🐚 fish 🚀 npm pip docker nvim bun 📦 docker-node

👤 u0_a365 🏠 localhost 📁 54% 💾 1/5GB 🔝 1% fish ⏱️ 4d 9h 19m 🌎 174.194.193.230 🌐 192.168.42.229 📍 San Jose 🔗 http://230.sub-174-194-193.myvzw.com 👮 Verizon Business ⚡ Android 13 📈 Kryo-4XX-Silver 💻 SM-G781U 🔧 4.19.113-27223811 🐚 nu 🚀 apt npm pip hx nvim

Features

  • Cross-Platform: Works on Windows, macOS, and Linux
  • Smart Caching: Configurable cache durations for different system info types
  • Customizable Output: Control which info blocks to show and their order
  • Network Info: Fetches IP, location, and ISP data from ipinfo.io
  • Emoji Support: Beautiful emoji-enhanced output (can be disabled)
  • Settings Management: Persistent configuration with JSON settings file
  • Shell Integration: Easy installation as shell greeting
  • Performance Optimized: Caches expensive operations like network requests

Installation

npx about-system

Quick Start

  1. Run the script:

    about-system
  2. Install as shell greeting:

    about-system --install
  3. Customize settings:

    about-system --set display.show_emojis false
    about-system --set colors.user blue
    about-system --set display_order '["user","hostname","uptime"]'

Available Info Blocks

BlockDescriptionExample Output
userCurrent username👤 username
hostnameSystem hostname🏠 hostname
ipPublic IP address🌎 192.168.1.1
iplocalLocal IP addresses🌐 192.168.1.100
cityLocation based on IP📍 San Francisco
domainReverse DNS hostname🔗 http://example.com
ispInternet service provider👮 Verizon Business
osOperating system⚡ Ubuntu 22.04
cpuCPU information📈 Intel Core i7-8700K
gpuGraphics card🎮 NVIDIA GeForce RTX 3080
disk_usedDisk usage percentage📁 75%
ram_usedMemory usage💾 8/16GB
top_processHighest CPU process🔝 15% chrome
uptimeSystem uptime⏱️ 2d 5h 30m
deviceDevice model💻 MacBook Pro
kernelKernel version🔧 5.15.0-56-generic
shellCurrent shell🐚 fish
pacmanAvailable package managers🚀 apt npm pip docker
portsOpen network ports🔌 80http 443https 22ssh
containersRunning Docker containers📦 nginx redis postgres

Configuration

The script uses a JSON settings file located at:

  • Linux/macOS: ~/.config/systeminfo-settings.json
  • Windows: %APPDATA%\Local\systeminfo-settings.json

Settings Commands

# Show current settings
about-system --settings-show

# Reset to defaults
about-system --settings-reset

# Set individual values
about-system --set display.show_emojis false
about-system --set colors.user blue
about-system --set cache.enabled true

# Clear cache
about-system --cache-clear

Example Settings

{
  "version": "1.0.0",
  "display_order": [
    "user", "hostname", "disk_used", "ram_used", "uptime",
    "ip", "os", "cpu", "shell"
  ],
  "colors": {
    "user": "red",
    "hostname": "orange",
    "disk_used": "purple",
    "ram_used": "yellow",
    "uptime": "cyan",
    "ip": "green",
    "os": "blue",
    "cpu": "orange",
    "shell": "orange"
  },
  "display": {
    "show_emojis": true,
    "separator": " ",
    "max_width": 120
  },
  "cache": {
    "enabled": true
  },
  "network": {
    "timeout": 5000,
    "show_offline_message": true
  }
}

Available Colors

  • red, orange, yellow, green, blue, cyan, purple, magenta, gray, lightblue
  • Use multicolor for ports to get a rainbow effect

Platform-Specific Features

Windows

  • Detects Windows-specific package managers (choco, winget, scoop)
  • Uses wmic for system information
  • Supports PowerShell and Command Prompt integration

Linux

  • Detects Linux package managers (apt, yum, pacman, etc.)
  • Reads from /proc and /sys filesystems
  • Supports various shells (bash, zsh, fish, nushell)

macOS

  • Detects macOS-specific tools
  • Uses system_profiler for hardware info
  • Supports zsh and bash integration

Cache System

The script implements intelligent caching to improve performance:

  • IP Info: 5 minutes (network requests are expensive)
  • System Info: 24 hours (rarely changes)
  • Process Info: 5 seconds (changes frequently)
  • Disk/RAM: 1 minute (moderate change frequency)

Shell Integration

The --install flag automatically configures the script as a shell greeting:

  • Bash: Adds to ~/.bashrc
  • Zsh: Adds to ~/.zshrc
  • Fish: Adds to ~/.config/fish/config.fish
  • NuShell: Adds to ~/.config/nushell/config.nu
  • PowerShell: Provides instructions for profile setup

Development

# Clone the repository
git clone https://github.com/vtempest/server-shell-setup.git
cd server-shell-setup

# Install dependencies
npm install

# Run the script
npm start

# Run with custom settings
npm start -- --set display.show_emojis false