conky-status
Unified Rust gateway for Kodachi Conky data
Version: 9.0.1 | Size: 1.7MB | Author: Warith Al Maawali
License: Proprietary | Website: https://www.digi77.com
File Information
| Property | Value |
|---|---|
| Binary Name | conky-status |
| Version | 9.0.1 |
| Build Date | 2026-03-12T16:16:06.160530314Z |
| Rust Version | 1.82.0 |
| File Size | 1.7MB |
| JSON Data | View Raw JSON |
SHA256 Checksum
Features
| Feature | Description |
|---|---|
| Feature | Bounded parallel adapter collection |
| Feature | Unified snapshot cache with lock + atomic writes |
| Feature | Privacy-first redaction for sensitive identifiers |
| Feature | Compatibility aliases for legacy Conky scripts |
| Feature | User-defined Conky command registry via JSON config |
| Feature | Kodachi-standard CLI flags via cli-core |
Security Features
| Feature | Description |
|---|---|
| Authentication | Secure authentication with certificate pinning |
| Encryption | TLS 1.3 for all network communications |
| Inputvalidation | All inputs are validated and sanitized |
| Ratelimiting | Built-in rate limiting for network operations |
System Requirements
| Requirement | Value |
|---|---|
| OS | Linux (Debian-based) |
| Privileges | root/sudo for system operations |
| Dependencies | OpenSSL, libcurl |
Global Options
| Flag | Description |
|---|---|
-h, --help |
Print help information |
-v, --version |
Print version information |
-n, --info |
Display detailed information |
-e, --examples |
Show usage examples |
--json |
Output in JSON format |
--json-pretty |
Pretty-print JSON output with indentation |
--json-human |
Enhanced JSON output with improved formatting (like jq) |
--verbose |
Enable verbose output |
--quiet |
Suppress non-essential output |
--no-color |
Disable colored output |
--config <FILE> |
Use custom configuration file |
--timeout <SECS> |
Set timeout (default: 30) |
--retry <COUNT> |
Retry attempts (default: 3) |
Commands
Data
snapshot
Collect and output unified conky-status snapshot
Usage:
Options:
- --refresh: Force refresh now
- --cached: Prefer cache if fresh
- --ttl <seconds>: Cache freshness threshold
Examples:
get
Get a single key value (snapshot key or user.
Usage:
Options:
- --default <value>: Fallback value when key is missing
- --refresh: Force refresh before lookup
Examples:
panel
Get a batched subset for a panel
Usage:
Examples:
user
Manage and execute user-defined Conky commands from JSON registry
Usage:
Examples:
Operational Scenarios
Scenario-oriented workflows generated from the binary's built-in -e --json examples.
Scenario 1: Core Flags
Kodachi-standard global flags and output modes
Step 1: Show full CLI help
Expected Output: Command/option referenceStep 2: Show binary version
Expected Output: conky-status version 9.0.1Step 3: Show program metadata using JSON pretty mode
Expected Output: Envelope with info payloadStep 4: Show comprehensive usage examples
Expected Output: Category-based examples listStep 5: Use human-readable JSON rendering (jq-like)
Expected Output: Enhanced JSON envelopeNote
Falls back to pretty JSON if jq is unavailable
Scenario 2: Snapshot Modes
Refresh, cache, concurrency, and timeout controls
Step 1: Collect snapshot using default refresh behavior
Expected Output: Envelope with meta/adapters/dataStep 2: Prefer cached snapshot if age <= 30 seconds
Expected Output: Fast cached response when freshStep 3: Force new collection with tighter adapter timeout
Expected Output: Fresh snapshot with possible degraded adaptersStep 4: Override adapter concurrency budget
Expected Output: Pretty JSON snapshotNote
Use moderate values to avoid subprocess storms
Scenario 3: Get Native Keys
Read direct snapshot key paths
Step 1: Read authenticated user group
Expected Output: Group value or '?'Step 2: Read health score with default fallback
Expected Output: Numeric score stringStep 3: Force refresh before interface lookup
Expected Output: Interface name like ens33/wlan0Step 4: Structured JSON response for a single key
Expected Output: Envelope with key, resolved_key, value, staleScenario 4: Get Compatibility Keys
Legacy script-compatible key aliases for Conky migration
Step 1: Effective external IP (Tor exit when torrified, direct IP otherwise)
Expected Output: Effective IP or OfflineStep 2: Direct/public WAN IP regardless of Tor exit routing
Expected Output: Public IP or OfflineStep 3: Equivalent of auth-detail.sh sessionid
Expected Output: Masked session token or N/AStep 4: Equivalent of dns-cache.sh mode
Expected Output: DNS mode stringStep 5: Gauge-ready swap usage percent from gateway
Expected Output: Integer 0-100Step 6: Gauge-ready total bandwidth percent (0-100)
Expected Output: Integer 0-100Note
Computed from total uploaded+downloaded bytes against 10 GiB scale
Step 7: Equivalent of security-status.sh vpn
Expected Output: JSON envelope with boolean valueStep 8: Equivalent of cloud-status.sh cards
Expected Output: Cloud cards count or '?'Scenario 5: Panel Modes
Batched panel subsets for exec/execpi integration
Step 1: Key=value output for security panel
Expected Output: Multiple lines: internet/login/group/...Step 2: System panel subset in JSON
Expected Output: Envelope with panel data mapStep 3: Refresh before network panel render
Expected Output: Updated panel key=value linesStep 4: Resource panel subset (traffic + booleans)
Expected Output: Panel key=value linesStep 5: Dump full data section in human JSON mode
Expected Output: Large JSON envelopeScenario 6: Conky Integration
Drop-in commands for wrapper scripts and panel configs
Step 1: Replace legacy IP script call
${exec ~/.config/kodachi/conky/scripts/ip-cache.sh ip} -> ${exec ./conky-status get ip-cache.ip --default Offline}
Step 2: Replace auth detail script call
${exec ~/.config/kodachi/conky/scripts/auth-detail.sh group} -> ${exec ./conky-status get auth-detail.group --default '?'}
Step 3: Replace DNS cache script call
${exec ~/.config/kodachi/conky/scripts/dns-cache.sh ns1} -> ${exec ./conky-status get dns-cache.ns1 --default N/A}
Step 4: Use panel mode for grouped values
Expected Output: key=value lines for panel renderingNote
No Conky restart required to validate command output
Scenario 7: User Command Registry
Configure custom commands in JSON so Conky can call unsupported fields through the gateway
Step 1: Show registry file path
Expected Output: ~/.config/kodachi/conky/config/user-commands.jsonStep 2: Create template registry if missing
Expected Output: created:Step 3: List registered custom command names
Expected Output: JSON list with command countStep 4: Execute one configured command directly
Expected Output: Single Conky-safe valueNote
Failed commands retry once and can fall back to stale cache/default
Step 5: Conky-friendly key path for custom user command
Expected Output: Scalar value from registry-backed commandNote
Also accepts custom.
Step 6: Direct Conky call without exposing command logic in bash
Expected Output: Rendered value in panelScenario 8: Signature Verification
Binary self-signature verification diagnostics and enforcement
Step 1: Force signature check in debug builds
Expected Output: Version output if signature verifiesNote
Fails with SECURITY error when signature is missing/invalid
Step 2: Use custom signature directory
Expected Output: Snapshot output with successful startupStep 3: Skip signature check in controlled build-test mode
Expected Output: Version outputNote
Intended for build pipeline self-tests only
Step 4: Release behavior with mandatory signature verification
Expected Output: Version output or SECURITY failure messageEnvironment Variables
| Variable | Description | Default | Values |
|---|---|---|---|
RUST_LOG |
Set logging level | info | error |
NO_COLOR |
Disable all colored output when set | unset | 1 |
Exit Codes
| Code | Description |
|---|---|
| 0 | Success |
| 1 | General error |
| 2 | Invalid arguments |
| 3 | Permission denied |
| 4 | Network error |
| 5 | File not found |