Cross-platform terminal tool for network diagnostics, system monitoring, and performance optimization. Built with Go, it provides an interactive TUI with real-time graphs, comprehensive speed testing, system information, and a web dashboard.
- Interactive TUI — Real-time throughput graphs, live metrics, and keyboard navigation
- Speed Test — Download/upload speed and latency measurement via Speedtest.net
- System Information — CPU, memory, disk, and hostname display
- Network Diagnostics — Ping, traceroute, DNS lookup, and host lookup
- Web Dashboard — HTTP API server with HTML UI for remote access
- 13 Color Themes — Built-in themes with dark/light mode, interactive theme selector
- Test History — Track, view, and export past speed test results
- Clipboard Integration — Copy results with a single keypress in TUI mode
- Command Aliases — Shortcuts:
st,si,net,hist - Docker Support — Multi-stage production-ready image
- Cross-Platform — Windows, Linux, macOS (Intel & Apple Silicon)
Windows (PowerShell):
irm https://raw.githubusercontent.com/rkriad585/auraspeed/main/install.ps1 | iexLinux/macOS:
curl -sL https://raw.githubusercontent.com/rkriad585/auraspeed/main/install.sh | bashgit clone https://github.com/rkriad585/auraspeed.git
cd auraspeed
go build -o auraspeed ./cmd/main.goOr use the build scripts:
./build.sh # Linux/macOS
.\build.ps1 # Windowsdocker build -t auraspeed .
docker run -d --name auraspeed -p 59733:59733 auraspeedOr with Docker Compose:
docker-compose up -dSee Docker Usage for details.
auraspeed tuiKeyboard shortcuts: R Restart | C Copy | H History | ? Help | Esc Close | Ctrl+C Exit
auraspeed speedtest
auraspeed speedtest --json # JSON output for scripting
auraspeed speedtest --server-id 1234 # Specific serverauraspeed info
auraspeed info --jsonauraspeed network ping google.com
auraspeed network dns google.com
auraspeed network traceroute google.comauraspeed web
# http://localhost:59733auraspeed history # View history
auraspeed history --limit 10 # Last 10 results
auraspeed history --export results.jsonauraspeed config # View all settings
auraspeed config theme # Interactive theme selector
auraspeed config theme dark # Set theme directly
auraspeed config theme --list # List available themes
auraspeed config toggle-dark # Toggle dark mode override
auraspeed config set speedtest.timeout 60
auraspeed config resetauraspeed st → auraspeed speedtest
auraspeed si → auraspeed info
auraspeed net → auraspeed network
auraspeed hist → auraspeed history
AuraSpeed uses TOML configuration at:
- Linux/macOS:
~/.config/neostore/auraspeed/config.toml - Windows:
%USERPROFILE%\.config\neostore\auraspeed\config.toml
[global]
loglevel = "info"
nocolor = false
autoupdate = true
confirmexit = false
[speedtest]
timeout = 30
defaultserverid = 0
paralleldownloads = 4
paralleluploads = 2
[ui]
theme = "sunny-beach"
darkmode = false
graphheight = 8
historylimit = 100
autorefresh = false
refreshrate = 5
savehistory = true
[aliases]
st = "speedtest"
si = "info"
net = "network"
hist = "history"| Directory | Path | Purpose |
|---|---|---|
| Config | ~/.config/neostore/auraspeed/ |
Config file, aliases |
| Data | ~/.config/neostore/auraspeed/data/ |
History, server cache |
| Logs | ~/.config/neostore/auraspeed/logs/ |
Application logs |
| Downloads | ~/Downloads/neostore/auraspeed/ |
Exported output files |
The internal/config package provides these helpers:
import "auraspeed/internal/config"
config.GetConfigDir() // ~/.config/neostore/auraspeed/
config.ConfigFile("x") // ~/.config/neostore/auraspeed/x
config.GetLogsDir() // ~/.config/neostore/auraspeed/logs/
config.GetDownloadsDir() // ~/Downloads/neostore/auraspeed/
config.EnsureConfigDir() // create dirs if missing| Section | Key | Type | Default | Description |
|---|---|---|---|---|
| global | loglevel | string | "info" | Log level: debug, info, warn, error |
| global | nocolor | bool | false | Disable colored output |
| global | autoupdate | bool | true | Enable automatic updates |
| global | confirmexit | bool | false | Confirm before exiting |
| speedtest | timeout | int | 30 | Test timeout in seconds |
| speedtest | defaultserverid | int | 0 | Default server ID (0 = auto) |
| speedtest | paralleldownloads | int | 4 | Parallel download connections |
| speedtest | paralleluploads | int | 2 | Parallel upload connections |
| ui | theme | string | "sunny-beach" | UI theme name |
| ui | darkmode | bool | false | Force dark theme |
| ui | graphheight | int | 8 | Height of graph in rows |
| ui | historylimit | int | 100 | Max history entries |
| ui | autorefresh | bool | false | Auto-refresh TUI display |
| ui | refreshrate | int | 5 | Refresh rate in seconds |
| ui | savehistory | bool | true | Save test results |
AuraSpeed includes 13 built-in color themes. Run auraspeed config theme for an interactive selector.
| Theme | Type |
|---|---|
| Dark Theme | Dark |
| Light Theme | Light |
| Sunny Beach Day | Dark |
| Olive Garden Feast | Dark |
| Summer Ocean Breeze | Dark |
| Refreshing Summer Fun | Dark |
| Black & Gold Elegance | Dark |
| Vibrant Color Fiesta | Dark |
| Light Steel | Light |
| Golden Twilight | Dark |
| Deep Sea | Dark |
| Bright Green | Dark |
| Vivid Nightfall | Dark |
go build -o auraspeed ./cmd/main.gomake build # Build for current platform
make build-all # Build for all platforms
make test # Run tests
make lint # Run linters
make format # Format code
make clean # Remove build artifacts
make release # Build release binaries
make run # Build and runcmake -B build
cmake --build build --target build
cmake --build build --target test
cmake --build build --target clean./build.sh # Linux/macOS (all platforms)
.\build.ps1 # Windows (all platforms)All binaries include version info embedded via ldflags and output to bin/.
docker build -t auraspeed .Or with version metadata:
docker build \
--build-arg VERSION=v3.5.0 \
--build-arg COMMIT=$(git rev-parse --short HEAD) \
--build-arg BUILD_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
-t auraspeed .docker run -d \
--name auraspeed \
-p 59733:59733 \
-v auraspeed-config:/root/.config/neostore/auraspeed \
-e AURASPEED_LOGLEVEL=info \
-e AURASPEED_AUTOUPDATE=false \
auraspeeddocker-compose up -dThe docker-compose.yml includes health checks, restart policy, and persistent volume for configuration.
| Variable | Default | Description |
|---|---|---|
AURASPEED_LOGLEVEL |
info |
Log level override |
AURASPEED_AUTOUPDATE |
false |
Disable auto-update in container |
AS_CONFIG_PATH |
/app/config.toml |
Custom config file path |
AS_PORT |
59733 |
Web server port |
auraspeed speedtest --jsonOutput:
{
"download": 85.42,
"upload": 42.18,
"ping": 12,
"isp": "Comcast",
"server": "New York, NY"
}#!/bin/bash
while true; do
echo "=== $(date) ==="
auraspeed speedtest --json >> speed_log.json
sleep 3600
doneauraspeed config theme darkauraspeed history --export results.jsonauraspeed/
├── bin/ # Cross-platform build output
├── cmd/
│ ├── main.go # Entry point
│ └── root/ # CLI commands (cobra)
│ ├── root.go # Root command
│ ├── commands.go # All subcommands
│ ├── web.go # Web server
│ ├── update.go # Update command
│ └── install.go # Install command
├── docs/ # Documentation
├── internal/
│ ├── config/ # Configuration management (viper)
│ ├── http/ # HTTP client utilities
│ ├── info/ # System information (gopsutil)
│ ├── logging/ # Logging (zerolog)
│ ├── network/ # Network diagnostics
│ ├── speedtest/ # Speed test & TUI (tview)
│ ├── theme/ # Color theme system
│ └── ui/ # UI command wrapper
├── .dockerignore
├── .version # Current version
├── build.ps1 # Windows build script
├── build.sh # Unix build script
├── CMakeLists.txt # CMake build configuration
├── docker-compose.yml # Docker Compose
├── Dockerfile # Docker image
├── go.mod / go.sum
└── Makefile # Build automation
- Fork and clone the repository
- Install dependencies:
go mod download - Make changes following Go best practices
- Format:
go fmt ./... - Lint:
go vet ./...ormake lint - Test:
go test ./... -v -coverormake test - Build:
make build - Commit with Conventional Commits
Branch naming: feat/description, fix/description, docs/description
Contributions are welcome! See CONTRIBUTING.md for full guidelines.
Quick summary:
- Fork the repo and create a feature branch
- Write tests for new functionality
- Ensure
go test ./...passes - Open a Pull Request
MIT License — see LICENSE for details.
Copyright (c) 2025 AuraSpeed Contributors