SergioZ3R0/one9s

one9s -TUI for OpenNebula - Monitor VMs, Hosts, Datastores, manage ACLs & Quotas from your terminal

Go

2

76 commits

updated Sep 21, 2026

See the code

See what people are saying (1)

SourceMessageScoreDate

Meet one9s: A blazing fast, k9s-style TUI for OpenNebula (Go & Bubble Tea) (r/commandline)

Hey folks, If you use OpenNebula, you probably know the daily struggle. Sure, the `onevm` CLI exists, but by default, only `oneadmin` can use it without fighting a permissions battle. That leaves regular users connecting to a VPN/tunnel, logging into the Sunstone web UI, hunting down their machine…

1

Sep 22, 2026

README

one9s

one9s

Terminal UI for OpenNebula cluster management
Monitor VMs, Hosts, Datastores, Manage ACLs and Quotas from your terminal
one9s.scszero.com  |  Documentation

one9s is a TUI (terminal user interface) for managing and monitoring OpenNebula clusters directly from your terminal, inspired by k9s and lazygit.

No Sunstone web UI. No Ruby CLI dependencies. Just a single binary that talks to the OpenNebula XML-RPC API.

https://github.com/user-attachments/assets/d30f232b-1ae5-4170-a2b8-efb1c4ba4879

Features

  • VM Management - monitor all VMs with state, CPU, memory, IP, host. Split view with detail pane showing full VM info.
  • VM Lifecycle - reboot, stop, resume, suspend, terminate directly from the terminal with confirmation modals.
  • Host Management - enable, disable, offline, delete, rename hosts. Detail view with CPU/Memory progress bars.
  • Datastore Monitoring - view storage pools with type, total capacity, used and free space.
  • ACL Rules - view and decode access control rules (user, resource, rights, zone) from hex to human-readable.
  • User Quotas - view and edit per-user quotas for VMs, CPU, Memory, Running VMs, Images, Size and Leases.
  • Fuzzy Search - / key for instant filtering on all tabs.
  • Vault Encryption - credentials encrypted with AES-256-GCM, safe from third-party access.
  • Cross-platform - single binary for Linux, macOS, Windows (amd64/arm64).

Quick Start

Download

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

Configure

mkdir -p ~/.one9s
cat > ~/.one9s/config << 'EOF'
ONE_XMLRPC=http://opennebula:2633/RPC2
ONE_AUTH=oneadmin:password
EOF
chmod 600 ~/.one9s/config

Or as a one-liner:

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

Store credentials encrypted with AES-256-GCM:

# Create encrypted vault
one9s vault init

# Run (prompts for vault password)
./one9s

# Or skip vault with direct env vars (no password prompt)
ONE_AUTH="oneadmin:password" ONE_XMLRPC="http://opennebula:2633/RPC2" ./one9s

Vault commands:

CommandDescription
one9s vault initCreate new encrypted config
one9s vault encryptEncrypt existing plain config
one9s vault decryptDecrypt and display contents

Vault password can be set via ONE_VAULT_PASS env var to skip the prompt.

Run

./one9s

Key Bindings

KeyAction
tab / shift+tabNext / previous tab
↑/↓ / j/kNavigate rows
PgUp/PgDn / b/fPage up / page down
g/GGo to start / end
enterView details (VMs/Hosts split view)
/Fuzzy search
F5Refresh current view
?Help

VM Actions (VMs tab)

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

VM State Filters (VMs tab)

KeyFilter
aAll VMs
iActive only
oStopped only
pPoweroff only
eError only

Host Actions (Hosts tab)

KeyAction
eEnable host
dDisable host
oOffline host (confirmation required)
xDelete host (type yes to confirm)
nRename host (type new name)

Quota Actions (Quotas tab)

KeyAction
eEdit user quota (form modal with VMs, CPU, Memory, etc.)

Permissions

one9s requires appropriate OpenNebula permissions. If an action fails due to insufficient permissions, you'll see a clear message like "permission denied: requires VM:MANAGE".

ActionRequired Permission
View VMs, Hosts, Datastores, ACLsVM:USE, HOST:USE, DS:USE, ACL:USE
Reboot, Stop, Suspend, Resume VMVM:MANAGE
Terminate VMVM:ADMIN
Enable/Disable/Offline HostHOST:ADMIN
Delete/Rename HostHOST:ADMIN
Edit QuotasQuota:ADMIN

Stack

License

Apache License 2.0

api
bubbletea
cli
cloud
cluster
go
golang
hpc
opennebula
opennebula-xmlrpc
terminal
tui
virtualization

Contributors

SergioZ3R0

76 commits

SergioZ3R0/one9s

one9s -TUI for OpenNebula - Monitor VMs, Hosts, Datastores, manage ACLs & Quotas from your terminal

Go

2

76 commits

updated Sep 21, 2026

See the code

See what people are saying (1)

SourceMessageScoreDate

Meet one9s: A blazing fast, k9s-style TUI for OpenNebula (Go &amp; Bubble Tea) (r/commandline)

Hey folks, If you use OpenNebula, you probably know the daily struggle. Sure, the `onevm` CLI exists, but by default, only `oneadmin` can use it without fighting a permissions battle. That leaves regular users connecting to a VPN/tunnel, logging into the Sunstone web UI, hunting down their machine…

1

Sep 22, 2026

README

one9s

one9s

Terminal UI for OpenNebula cluster management
Monitor VMs, Hosts, Datastores, Manage ACLs and Quotas from your terminal
one9s.scszero.com  |  Documentation

one9s is a TUI (terminal user interface) for managing and monitoring OpenNebula clusters directly from your terminal, inspired by k9s and lazygit.

No Sunstone web UI. No Ruby CLI dependencies. Just a single binary that talks to the OpenNebula XML-RPC API.

https://github.com/user-attachments/assets/d30f232b-1ae5-4170-a2b8-efb1c4ba4879

Features

  • VM Management - monitor all VMs with state, CPU, memory, IP, host. Split view with detail pane showing full VM info.
  • VM Lifecycle - reboot, stop, resume, suspend, terminate directly from the terminal with confirmation modals.
  • Host Management - enable, disable, offline, delete, rename hosts. Detail view with CPU/Memory progress bars.
  • Datastore Monitoring - view storage pools with type, total capacity, used and free space.
  • ACL Rules - view and decode access control rules (user, resource, rights, zone) from hex to human-readable.
  • User Quotas - view and edit per-user quotas for VMs, CPU, Memory, Running VMs, Images, Size and Leases.
  • Fuzzy Search - / key for instant filtering on all tabs.
  • Vault Encryption - credentials encrypted with AES-256-GCM, safe from third-party access.
  • Cross-platform - single binary for Linux, macOS, Windows (amd64/arm64).

Quick Start

Download

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

Configure

mkdir -p ~/.one9s
cat > ~/.one9s/config << 'EOF'
ONE_XMLRPC=http://opennebula:2633/RPC2
ONE_AUTH=oneadmin:password
EOF
chmod 600 ~/.one9s/config

Or as a one-liner:

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

Store credentials encrypted with AES-256-GCM:

# Create encrypted vault
one9s vault init

# Run (prompts for vault password)
./one9s

# Or skip vault with direct env vars (no password prompt)
ONE_AUTH="oneadmin:password" ONE_XMLRPC="http://opennebula:2633/RPC2" ./one9s

Vault commands:

CommandDescription
one9s vault initCreate new encrypted config
one9s vault encryptEncrypt existing plain config
one9s vault decryptDecrypt and display contents

Vault password can be set via ONE_VAULT_PASS env var to skip the prompt.

Run

./one9s

Key Bindings

KeyAction
tab / shift+tabNext / previous tab
↑/↓ / j/kNavigate rows
PgUp/PgDn / b/fPage up / page down
g/GGo to start / end
enterView details (VMs/Hosts split view)
/Fuzzy search
F5Refresh current view
?Help

VM Actions (VMs tab)

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

VM State Filters (VMs tab)

KeyFilter
aAll VMs
iActive only
oStopped only
pPoweroff only
eError only

Host Actions (Hosts tab)

KeyAction
eEnable host
dDisable host
oOffline host (confirmation required)
xDelete host (type yes to confirm)
nRename host (type new name)

Quota Actions (Quotas tab)

KeyAction
eEdit user quota (form modal with VMs, CPU, Memory, etc.)

Permissions

one9s requires appropriate OpenNebula permissions. If an action fails due to insufficient permissions, you'll see a clear message like "permission denied: requires VM:MANAGE".

ActionRequired Permission
View VMs, Hosts, Datastores, ACLsVM:USE, HOST:USE, DS:USE, ACL:USE
Reboot, Stop, Suspend, Resume VMVM:MANAGE
Terminate VMVM:ADMIN
Enable/Disable/Offline HostHOST:ADMIN
Delete/Rename HostHOST:ADMIN
Edit QuotasQuota:ADMIN

Stack

License

Apache License 2.0

api
bubbletea
cli
cloud
cluster
go
golang
hpc
opennebula
opennebula-xmlrpc
terminal
tui
virtualization

Contributors

SergioZ3R0

76 commits

Languages

Go

99.2%