twc-rs 0.3.1

Fast single-binary CLI and interactive TUI dashboard for Timeweb Cloud
Documentation

twc-rs

A fast, single-binary CLI and interactive TUI dashboard for Timeweb Cloud.

Servers, databases, S3, Kubernetes, balancers, domains, firewalls and more — managed from one native binary. No Python, no pip, no virtualenv.

crates.io downloads CI Security release-plz license MSRV platforms


Table of contents

Why twc-rs

The official Timeweb CLI (timeweb-cloud/twc) is a Python application. twc-rs matches its command coverage and beats it on speed, footprint, and experience — every number below is measured, not estimated (see docs/COMPARISON.md for the full report and the reproducible benchmark).

twc-rs (Rust) Official twc (Python)
Cold start (--version) 2.3 ms 357 ms
Cold start (--help) 2.1 ms 347 ms
Peak memory (RSS) 13.7 MB 59.2 MB
Footprint 1 static binary, 15 MB stripped 33 MB packages + a Python interpreter
Runtime deps system libc only Python + 15 PyPI packages
Command coverage near-full parity baseline
Interactive dashboard yes — full TUI with live metrics no
Create / delete from the dashboard yes no
Shell completions bash, zsh, fish, powershell, elvish, nushell bash, zsh, fish, powershell
Output formats table, json, yaml, quiet default, raw, json, yaml
Profiles (multi-account) yes (--profile, switchable in the TUI) yes
Languages English + Russian (TUI & CLI) English only

Measured on an AMD Ryzen AI MAX+ 395 (Linux 7.1, rustc 1.96) against twc-cli v2.15.2, 50 runs each. The Python tool pays ~350 ms of interpreter and import startup before any application code runs.

The dashboard

The headline feature the Python CLI does not have: a live, k9s-style TUI (twc-rs dashboard).

Key Action
h / l switch resource tabs
j / k move selection
Enter open the action menu / drill into a resource
n create a new resource (where supported)
/ filter the current list
Ctrl+K command palette — actions, theme, language, profile switch
? help overlay
Q quit
  • Context action menu per resource (reboot / shutdown / clone / delete) with a confirmation step for destructive actions.
  • Create resources and switch account profile without leaving the dashboard.
  • Live per-resource metrics (CPU / RAM / network sparklines), fetched off the UI thread so input never blocks on the network.
  • Drill into a project to see the resources it contains; live event log.
  • Customizable layout, hide-empty-tabs, 4 true-color themes and EN/RU — all persisted to the config file.

Install

Pick the channel that fits your platform. Prebuilt binaries are built with the tui feature, so the interactive dashboard works out of the box.

Channel Command
crates.io cargo install twc-rs
Installer (Linux/macOS) curl -fsSL https://raw.githubusercontent.com/RAprogramm/twc-rs/main/install.sh | sh
Arch (AUR) yay -S twc-rs-bin
Debian/Ubuntu sudo apt install ./twc-rs_<ver>_amd64.deb
Homebrew brew install RAprogramm/tap/twc-rs
Releases download an archive from Releases, verify the .sha256, put twc-rs on your PATH

The one-line installer detects your OS/arch, downloads the matching tarball from the latest GitHub release and installs to ~/.local/bin (or /usr/local/bin when writable). The .deb and Homebrew packages are attached to every tagged release automatically.

twc-rs is not in the official Debian/Ubuntu (apt install twc-rs) or Arch (pacman -S twc-rs) repositories — those require distro maintainership. Use the AUR package, the .deb, the Homebrew tap, the installer, or cargo install.

Supported platforms

Every tagged release ships prebuilt, checksummed binaries for:

OS Architectures
Linux (glibc) x86_64, aarch64
macOS x86_64 (Intel), aarch64 (Apple Silicon)
Windows x86_64

Authenticate

twc-rs auth flow                       # guided browser flow, stored in the OS keyring
# or
twc-rs config set-token --token <TOKEN>

The token is resolved from the OS keyring, the config file, --token, or the TWC_TOKEN environment variable, in that order. Multiple accounts are supported via named profiles:

twc-rs config set-token --profile staging --token <TOKEN>
twc-rs --profile staging server list

Usage

twc-rs server list
twc-rs database info --id 12345
twc-rs project list -f json
twc-rs dashboard                       # interactive TUI

Global flags: -f, --format <table|json|yaml|quiet> (env TWC_OUTPUT) and -t, --token <TOKEN> (env TWC_TOKEN).

Shell completions

twc-rs completions nushell > ~/.config/nushell/completions/twc-rs.nu
twc-rs completions zsh     > ~/.zfunc/_twc-rs
twc-rs completions bash    > /etc/bash_completion.d/twc-rs

Supported shells: bash, zsh, fish, powershell, elvish, nushell.

Benchmarks

All performance claims are reproducible. docs/COMPARISON.md documents the test environment and methodology; rerun it with:

cargo build --release --features tui
python3 -m venv /tmp/twcbench && /tmp/twcbench/bin/pip install twc-cli
benches/compare.sh ./target/release/twc-rs /tmp/twcbench/bin/twc

Building from source

git clone https://github.com/RAprogramm/twc-rs && cd twc-rs
cargo build --release --features tui    # full binary with the TUI dashboard
cargo install --path .                  # install from the checkout

Requires Rust 1.96+. The crate is linted under clippy pedantic + nursery and the SDK is generated from the official OpenAPI spec via timeweb-rs.

License

MIT © RAprogramm