oxidecomputer / oxidecomputer/voxel

Add an optional terminal interface for managing Voxel deployments

Open
#17 1 comment 0 reactions 1 assignee View on GitHub

@hermanol is already working on this.

Since Jul 31, 2026.

Dominant language
Rust
Stars
8
Forks
0
Avg merge
1d 20h
Merged PRs (30d)
17

Description

Description

The Voxel CLI already provides an ergonomic, self-contained workflow for configuring, launching, inspecting, and destroying virtual Oxide rack deployments. It does not require a separate deployment orchestrator.

An optional TUI would complement the CLI by providing a persistent control and observability surface for operators. This is especially useful during long-running launch and teardown operations, when troubleshooting degraded deployments, and when working with multiple racks.

The interface should use Voxel’s existing configuration, lifecycle, and Falcon topology services directly rather than invoking CLI commands as subprocesses, so that operators could run voxel tui and global options like --config, --workdir, --name, --dataset, and any environment variables will work consistently.

Capabilities
1. Deployment Management

Provides a deployment view that can:

  • Launch, route, and destroy a deployment.
  • Display the current operation and its ordered phases.
  • Show per-resource progress and actionable failures.
  • Reconcile the displayed state with live Falcon resources.
  • Safely cancel an active operation, either retaining or destroying partial resources.
  • Require confirmation for destructive or state-changing actions.
  • Preserve durable logs outside the terminal interface.
2. Topology visualization

Renders the configured and observed deployment topology, including:

  • Customer and fabric routers.
  • Rack-local switch zones.
  • Sleds and their rack membership.
  • Shared switch-fabric relationships.
  • The above, for multiple interdependent racks.

So that operators should be able to select a rack, navigate resources in a stable order, and inspect an individual resource without losing its health or traffic context.

3. Speeds and feeds

Collects and displays things like:

  • RSS readiness for each rack.
  • Resource health and data freshness.
  • RX/TX byte and packet rates.
  • Short traffic histories.
  • Zone-level traffic rankings.
  • Node addresses and collection errors.
  • Lifecycle and application logs.
Constraints
  • It must reuse Voxel’s in-process lifecycle and topology services rather than shelling out to voxel.
  • Terminal state must be restored on normal exit, cancellation, panic, or background-task failure.
  • Destructive actions must default to a safe choice.
  • Rendered log history may be bounded, but durable logs must remain available on disk.
  • Small terminals should show an explicit minimum-size message rather than silently clipping controls or topology information.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.