A desktop system monitoring and management tool built with Go and React. Aether combines real-time system metrics, an integrated terminal, a file explorer, and a network map into a single frameless application with a cyberpunk-inspired UI.
- System Monitoring — Live CPU (per-core), memory, and disk usage with animated gauges
- Integrated Terminal — Multi-tab PowerShell terminal powered by ConPTY and xterm.js
- File Explorer — Browse the filesystem with breadcrumb navigation and drive selection
- Network Map — Interactive world map showing active outbound connections with GeoIP lookup
- Frameless Window — Custom title bar with live clock, hostname, OS info, and uptime
| Layer | Technology |
|---|---|
| Backend | Go 1.23, Wails v2 |
| Frontend | React 18, TypeScript, Vite |
| Styling | Tailwind CSS (custom theme with glow effects) |
| Charts | Recharts |
| Terminal | xterm.js with WebGL rendering |
| Maps | react-simple-maps |
| Icons | Lucide React |
go install github.com/wailsapp/wails/v2/cmd/wails@latestClone the repository and install frontend dependencies:
git clone https://github.com/qViperH/aether.git
cd aether
cd frontend && npm install && cd ..wails devThis starts the Go backend and Vite dev server with hot reload.
wails buildThe compiled binary is output to build/bin/.
aether/
├── main.go # App entry point & service wiring
├── app.go # Lifecycle hooks (startup, domReady, shutdown)
├── internal/
│ ├── sysmon/ # CPU, memory, disk monitoring
│ ├── terminal/ # ConPTY shell session management
│ ├── network/ # Connection tracking & GeoIP lookup
│ └── fileexplorer/ # Directory listing & file operations
├── frontend/
│ └── src/
│ ├── components/
│ │ ├── layout/ # TopBar
│ │ ├── stats/ # CPU, Memory, Disk gauges
│ │ ├── terminal/ # Multi-tab terminal
│ │ ├── file-explorer/ # File browser
│ │ └── network/ # World map & connection list
│ └── hooks/ # useSystemStats, useNetworkConnections, useTerminal
└── wails.json # Wails project config
aether follows a service-oriented architecture where each backend module runs as an independent Go service bound to the frontend via Wails RPC.
┌─────────────────────────────────────┐
│ TopBar │
├────────────┬────────────┬───────────┤
│ File │ Terminal │ Stats │
│ Explorer │ Panel │ Panel │
├────────────┴────────────┴───────────┤
│ Network Map + Connections │
└─────────────────────────────────────┘
Real-time updates are pushed from Go to the frontend via Wails events (sysmon:stats, terminal:output:{id}, network:connections). Each service manages its own goroutine lifecycle with context cancellation and mutex-guarded state.
qViperH — qviperh.dev@proton.me
MIT