$ dana server create web-01 --wait --ssh ✓ input valid creating web-01 waiting for ACTIVE .......... done connecting to 203.0.113.24 debian@web-01:~$ exit $ dana server delete web-01 This permanently deletes web-01. Type the server name to confirm: web-01 ✓ deleted web-01
DanaCloud · developer tooling · 2026
The dana CLI, past its v1.0 spec
Made the dana CLI fast for the common path and careful with destructive commands.
I added server wait and server ssh, chained as create --wait --ssh, plus name-based targeting, a typed confirmation for delete, --dry-run, and input validation before any request goes out.
9additions past the v1.0 spec
1command from create to an SSH session
0requests sent on invalid input
Read moreShow less
- Problem
- The v1.0 spec covered the API calls and little else. Getting from "create" to a shell meant polling for status and looking up an address, every command needed a server ID, and nothing double-checked a delete.
- Approach
- I added
server waitandserver sshand chained them ascreate --wait --ssh. Commands accept server names,deleteasks you to type the name,--dry-runprints the exact API payload, and the CLI validates input before it sends anything.server createandflavor listshow a monthly cost estimate from the per-datacenter pricing catalog, andbilling usageranks resources by spend. I wrote up each deviation from the PRD in an engineering addendum. - Outcome
- The common path is one command, and the dangerous ones ask first.
- Python
- Typer
- REST API
- OpenStack
Internal tool · code private