one9s Documentation

Install, configure and use the OpenNebula TUI.

Requirements

  • Go 1.24+ to build from source.
  • An OpenNebula installation with XML-RPC API enabled (default port 2633).
  • Credentials via ONE_AUTH environment variable or ~/.one/one_auth.

Installation

Pre-built binaries (recommended)

Download the zip for your platform from GitHub Releases:

curl -LO https://github.com/SergioZ3R0/one9s/releases/latest/download/one9s-linux-amd64.zip
unzip one9s-linux-amd64.zip
chmod +x one9s

Platforms: one9s-linux-amd64, one9s-linux-arm64, one9s-darwin-amd64, one9s-darwin-arm64, one9s-windows-amd64.exe.

From source

git clone https://github.com/SergioZ3R0/one9s.git
cd one9s
make build

Configuration

one9s is configured through environment variables:

VariableRequiredDescription
ONE_XMLRPCNoOpenNebula XML-RPC endpoint. Defaults to http://localhost:2633/RPC2.
ONE_AUTHYes*Credentials as user:password or path to auth file.

Note: Falls back to ~/.one/one_auth if ONE_AUTH is not set.

export ONE_AUTH="oneadmin:password"
export ONE_XMLRPC="http://opennebula:2633/RPC2"
./one9s

Usage & key bindings

one9s opens a tabbed TUI. Navigate tabs and interact with the data.

KeyAction
q / Ctrl+CQuit
tabNext tab
?Help / back to VMs
↑/↓ / j/kNavigate rows
PgUp/PgDn / b/fPage up / page down
g/GGo to start / end
/Fuzzy search / filter
F5Refresh current view

VMs tab

All VMs with state, user, CPU, memory, IP and host. Filter by state (i active, o stopped, p poweroff, e error, a all) or use / for fuzzy text search.

Hosts tab

Cluster hosts with state, CPU%, memory%, running VMs. Enable, disable, offline, delete or rename hosts.

Datastores tab

Storage pools with type, total capacity, used and free space.

ACLs tab

Access control rules with decoded hex values: user, resource, rights and zone in human-readable format.

Quotas tab

User quotas for VMs, CPU, Memory, Running VMs, Images, Size and Leases.

VM Actions

Actions are performed on the selected VM. State-aware: invalid actions show an error.

KeyActionValid States
rRebootACTIVE only
sStopACTIVE only
uResume / StartPOWEROFF, SUSPENDED, STOPPED, UNDEPLOYED
xSuspendACTIVE only
dTerminate (hard)Any state (with confirmation)

State filters

KeyFilter
aAll VMs
iActive only (ACTIVE/*)
oStopped (STOPPED, SUSPENDED, HOLD, DONE)
pPoweroff (POWEROFF, UNDEPLOYED)
eError (CLONING_FAILURE, ACTIVE/*FAILURE*)

Host Actions

KeyActionConfirmation
eEnable hostNo
dDisable hostNo
oOffline hostYes (y/n modal)
xDelete hostType yes to confirm
nRename hostType new name

ACL Decoding

OpenNebula ACL rules are stored as hex values. one9s decodes them automatically:

FieldExampleDecoded
User100000002#2 (UID 2)
User200000001@1 (GID 1)
User400000000* (all)
Resource20400000000HOST
Resource40100000065NET/#101
RightsfUSE+MANAGE+ADMIN+CREATE
Rights2MANAGE
Zone400000000* (all zones)

Quotas

one9s shows per-user quotas fetched from one.user.info for each user. Columns show used/limit for:

  • VMs, total VMs allocated
  • CPU, CPU cores allocated
  • Memory, Memory in MB
  • Running, Currently running VMs
  • Images, Disk images
  • Size, Disk size in MB
  • Leases, Network leases

Note: Quota data requires individual one.user.info calls per user. With many users, the first load may take a few seconds.