| Crates.io | volli-agent |
| lib.rs | volli-agent |
| version | 0.1.10 |
| created_at | 2025-07-26 00:07:26.097374+00 |
| updated_at | 2025-07-29 09:45:16.490207+00 |
| description | Agent node for volli |
| homepage | |
| repository | https://github.com/wouterken/volli |
| max_upload_size | |
| id | 1768574 |
| size | 81,528 |

volli is a tactical, lightweight tool that allows you to launch fast, distributed diagnostics and system checks from a central command.
volli is a fast, lightweight Rust CLI tool for performing coordinated diagnostics across a distributed cluster of nodes. Nodes connect to a central coordinator and can be triggered to execute diagnostic and system introspection commands concurrently.
The volli executable can be launched in both server and agent modes, and used to send queries to a server or agent.
Results are aggregated and presented via JSON, text table, or TUI.
Single static binary: Lightweight, no dependencies.
Fast: Async by default using Tokio.
Self-hosted: No SaaS, private mesh or hub-and-spoke model.
Secure: Encrypted communication (TLS/QUIC).
Flexible Execution Modes:
The project is organized as a Cargo workspace containing several crates:
volli-core – shared message types and utilities.volli – command line interface binary.volli-server – coordinator daemon (placeholder).volli-agent – agent daemon (placeholder).serveagentserve.runFor one-shot CLI execution (run):
For interactive mode (volli run --interactive):
ping – Check if a host is reachable.trace – Show network path to a host (traceroute).dns – Resolve domain names (dig).scan – Check open ports (nmap).whois – Query domain/IP registration info.check – Test TCP/UDP port (nc).http – Fetch URL, report status & time (curl).grpc – Interact with gRPC endpoints (grpcurl).flood – Basic HTTP load generator.speed – Bandwidth measurement.space – Disk usage (df).
health – CPU, Mem, Disk stats.
audit – Quick security scan:
info – OS, uptime, hostname, public IP.nodes – List registered nodes.reach – Check node availability & latency. [CLI - node mode] [CLI - server mode]
| |
[Node] <-----------> [Server]
| |
[Node] [Node]
~/.volli/config.toml or --config pathvolli serve --bind 127.0.0.1:4242
volli node --connect 1.2.3.4:4242
volli run ping 8.8.8.8
volli run trace example.com --output tui
volli run audit --output json
volli run --hosts 10.0.0.1,10.0.0.2 --include ping,dns,http,audit --output table
volli run --interactive
# increase logging
volli -v serve --bind 127.0.0.1:4242
volli -vv agent --connect 1.2.3.4:4242
volli --quiet run ping 8.8.8.8
Use -v to increase verbosity, -vv for trace-level output and --quiet for warnings only.
Generate a completion script for your shell:
volli completions bash > /usr/local/share/bash-completion/volli
When you start volli serve without specifying ports it binds to TCP 4242 and QUIC 4243 on 127.0.0.1.
Launching a second instance with the same ports will fail even if you bind to a different loopback address because the first process owns the port.
Use --tcp-port and --quic-port to assign unique ports when running more than one coordinator on the same host.
Example:
volli serve --bind 127.0.0.2 --tcp-port 4252 --quic-port 4253 --join <TOKEN>
This spec serves as the initial foundation for implementation. Each module (network, system, TUI, transport) can be built independently and iterated on.