Skip to content

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

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

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

Conversation

@drew
Copy link
Collaborator

@drew drew commented Mar 6, 2026

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)

Old New
cluster admin deploy gateway start
cluster admin destroy gateway stop
cluster admin select gateway select
cluster admin list gateway list
sandbox status status
sandbox forward forward
sandbox logs logs
sandbox policy get|set policy get|set
sandbox create --sync sandbox 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

@drew drew added the test:e2e Requires end-to-end coverage label Mar 6, 2026
@drew drew force-pushed the feat/cli-restructure-114 branch 2 times, most recently from e4ee5bb to 1eca569 Compare March 6, 2026 21:33
@drew drew force-pushed the feat/cli-restructure-114 branch 3 times, most recently from 6c4f64e to c64f754 Compare March 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 drew force-pushed the feat/cli-restructure-114 branch from c64f754 to 046f3d3 Compare March 7, 2026 00:13
@drew drew merged commit 002fed7 into main Mar 7, 2026
10 checks passed
@drew drew deleted the feat/cli-restructure-114 branch March 7, 2026 00:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:e2e Requires end-to-end coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CLI improvements and simplifications

2 participants