Skip to content

feat(cli): restructure CLI commands for simpler UX - #156

Merged
drew merged 1 commit into
mainfrom
feat/cli-restructure-114
Mar 7, 2026
Merged

feat(cli): restructure CLI commands for simpler UX#156
drew merged 1 commit into
mainfrom
feat/cli-restructure-114

Conversation

@drew

@drewdrew commented Mar 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

Restructures the nemoclaw CLI to flatten deeply nested subcommands and improve discoverability, implementing all items from #114.

  • Top-level promotions: nemoclaw status, forward, logs, policy now work directly instead of requiring sandbox prefix
  • Gateway subcommand: New nemoclaw gateway start|stop|select|list replacing cluster admin deploy|destroy|select|list; hidden backwards-compat alias for cluster admin deploy with deprecation warning
  • Upload replaces sync: --upload <local>[:<remote>] with .gitignore filtering by default (--no-git-ignore to disable); new sandbox upload/download subcommands for file transfer
  • Graceful missing gateway: nemoclaw status prints a friendly message instead of erroring when no gateway is configured
  • Gateway select UX: Running gateway select without args lists available gateways with a hint to run gateway select <name>

Command mapping (old → new)

OldNew
cluster admin deploygateway start
cluster admin destroygateway stop
cluster admin selectgateway select
cluster admin listgateway list
sandbox statusstatus
sandbox forwardforward
sandbox logslogs
sandbox policy get|setpolicy get|set
sandbox create --syncsandbox create --upload <path>[:<remote>]
(new)sandbox upload <name> <path>
(new)sandbox download <name> <remote> [local]

Files changed (22 files, +836 −579)

Core implementation: main.rs (enum restructure, routing, parse_upload_spec()), run.rs (signature changes, public helpers), bootstrap.rs (error messages)

Documentation: README, 6 architecture docs, 4 agent skills, 4 examples, 4 e2e tests/scripts

Testing

  • All 50 Rust tests pass (26 lib + 13 bin + 2 mTLS + 6 provider + 3 sandbox name)
  • Pre-commit suite passes (fmt, clippy, check, test, helm lint, license, python)
  • New tests: parse_upload_spec_* (3 tests), sandbox_upload_uses_path_value_hint, sandbox_upload_completion_suggests_local_paths

Closes#114

@drewdrew added the test:e2e Requires end-to-end coverage label Mar 6, 2026
@drew
drewforce-pushed the feat/cli-restructure-114 branch 2 times, most recently from e4ee5bb to 1eca569CompareMarch 6, 2026 21:33
@drew
drewforce-pushed the feat/cli-restructure-114 branch 3 times, most recently from 6c4f64e to c64f754CompareMarch 6, 2026 23:34
Restructure the nemoclaw CLI to flatten deeply nested subcommands and
improve discoverability. Key changes:
- Promote sandbox operations to top level: status, forward, logs, policy
- Add gateway subcommand (start, stop, select, list) replacing cluster admin
- Replace --sync with --upload <local>[:<remote>] supporting .gitignore filtering
- Add sandbox upload/download subcommands for file transfer
- Add gateway select (no-arg shows available gateways)
- Graceful handling when no gateway is configured (nemoclaw status)
- Hidden backwards-compat alias for cluster admin deploy with deprecation warning
- Update all documentation, examples, e2e tests, and agent skills
Closes#114
@drew
drewforce-pushed the feat/cli-restructure-114 branch from c64f754 to 046f3d3CompareMarch 7, 2026 00:13
@drew
drew merged commit 002fed7 into mainMar 7, 2026
10 checks passed
@drew
drew deleted the feat/cli-restructure-114 branch March 7, 2026 00:26
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:e2eRequires end-to-end coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CLI improvements and simplifications

2 participants

@drew@pimlock