SysTUI is an advanced Text User Interface (TUI) application designed for Linux power users who prefer working directly in the terminal. Built with Go and Rust, it provides real-time system monitoring, process management, service control, network monitoring, package management, and efficient log analysis capabilities.
- π Interactive Dashboard - Real-time monitoring of CPU, RAM, disk, and network usage
- π§ Process Management - List, kill, and renice processes with an intuitive interface
- βοΈ Systemd Service Control - Start, stop, and restart services seamlessly
- π Network Monitor - View active connections, open ports, and traffic per interface
- π Config Editor - Edit configuration files with syntax highlighting support
- π¦ Package Manager - Visual interface for apt, dnf, or pacman with auto-detection
- π Log Analysis - Efficient log parsing powered by Rust for large files like
/var/log/syslogandjournalctl - π€ Report Export - Generate detailed reports in JSON or Markdown format
- π WebAssembly Plugin Support - Extensible architecture via WASM plugins
- π Headless API Mode - Expose metrics via REST API for integration with other tools
- β‘ High Performance - Rust-powered log parsing for handling large files efficiently
- π¨ Beautiful TUI - Modern interface built with Bubbletea and Lipgloss
- Go 1.21 or later
- Rust toolchain (for building the log parser)
- Linux system with systemd
- Build tools (gcc, make)
git clone https://github.com/guicybercode/systui.git
cd systui
make buildThe binary will be available at ./systui.
./systuiFor headless API mode:
./systui --headless --port 8080Launch SysTUI and use the following keyboard shortcuts:
- 1-6: Switch between views (Dashboard, Processes, Services, Network, Packages, Logs)
- j/k or β/β: Navigate lists
- d: Kill selected process
- s: Start selected service
- x: Stop selected service
- t: Restart selected service
- r: Refresh current view
- q or Ctrl+C: Quit
Start the API server:
./systui --headless --port 8080Available endpoints:
GET /metrics- Get system metrics (CPU, memory, disk)GET /processes- List all processesGET /services- List all systemd servicesGET /network- Get network statistics and connectionsGET /report- Generate full system report
Example:
curl http://localhost:8080/metricsExport functionality is available programmatically or can be integrated into the TUI. Reports include:
- CPU metrics and per-core usage
- Memory usage statistics
- Disk usage and partition information
- Process list with resource usage
- Service status
- Network interface statistics
SysTUI
βββ Go Components (TUI & System Integration)
β βββ Dashboard - Real-time metrics display
β βββ Process Manager - Process listing and control
β βββ Service Manager - Systemd integration
β βββ Network Monitor - Connection and traffic monitoring
β βββ Package Manager - Multi-distro package support
β βββ Log Viewer - Integration with Rust parser
β
βββ Rust Components (Performance-Critical)
β βββ Log Parser - Efficient parsing with nom/regex
β - Date filtering
β - Severity filtering
β - Regex pattern matching
β
βββ WebAssembly Runtime
β βββ Plugin System - Extensible via WASM plugins
β
βββ API Server
βββ REST API - Headless mode metrics endpoint
The Rust-powered log parser supports:
- Large File Handling - Efficiently processes files like
/var/log/syslog - Date Filtering - Filter logs by date range
- Severity Filtering - Filter by ERROR, WARN, INFO, DEBUG
- Regex Search - Advanced pattern matching
SysTUI automatically detects your Linux distribution's package manager:
- APT - Debian/Ubuntu systems
- DNF - Fedora/RHEL systems
- Pacman - Arch Linux systems
golang_project/
βββ cmd/systui/ # Main entry point
βββ internal/
β βββ tui/ # TUI components
β βββ system/ # System metrics collectors
β βββ logparser/ # Go-Rust FFI bindings
β βββ api/ # Headless API server
β βββ plugins/wasm/ # WASM runtime
β βββ exports/ # Report export functionality
βββ rust/ # Rust log parser module
βββ plugins/example/ # Example WASM plugin
make build # Build both Go and Rust components
make build-go # Build only Go components
make build-rust # Build only Rust components
make run # Build and run
make clean # Clean build artifactsmake test # Run all testsContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License.
- Built with Bubbletea and Lipgloss
- System metrics powered by gopsutil
- Log parsing with nom and regex
- WebAssembly runtime by wazero
κ·Έλ€μ΄ μ¬λμ κ°λ₯΄μΉ¨μ λ°μ μλ‘ κ΅μ νλ©° λ‘μ λΌλ©° κΈ°λνκΈ°λ₯Ό μ ν νμ°λλΌ - μ¬λνμ 2:42

