cyberine
Design notes

CLI Flag Audit (T428)

Inventory of every top-level subcommand and sub-subcommand, with --help/-h status before and after T428.

Summary

  • All commands now respond to --help/-h with usage on stdout + exit 0.
  • Shared helper hasHelpFlag(argv: string[]): boolean added to src/commands/shared/ansi.ts.
  • Usage functions updated to accept an optional out: NodeJS.WriteStream parameter (default process.stderr) so the same function serves both error path (stderr) and explicit help (stdout).
  • Convention enforced throughout: explicit --help/-h → stdout + exit 0; missing/wrong args → usage to stderr + exit 1.

Inventory

CommandHas --help (before)Has --help (after)Flags parsedGaps / Notes
cyberine --help / -hyesyes—Already working
cyberine runnoyes--bg, --cheap, --fleet, --mode, --high-risk
cyberine routenoyes--json
cyberine applynoyes--dry-run, --step, --commit, -m
cyberine waitnoyes—
cyberine digestnoyes—
cyberine landnoyes--dry-run
cyberine tasksnoyes--all
cyberine nextyesyes--dispatchAlready working
cyberine researchyesyes--depth, --outAlready working; parsed via parseResearchArgs
cyberine authnoyes—
cyberine auth loginnoyes—
cyberine auth listnoyes—
cyberine auth statusnoyes—
cyberine auth logoutnoyes—
cyberine fleetyesyes—Already had help; improved sub-subcommand handling
cyberine fleet initnoyes—
cyberine fleet enableno (bug: read --help as provider)yes—Critical bug fixed
cyberine fleet disableno (same bug)yes—
cyberine fleet set-defaultnoyes—
cyberine fleet set-modelnoyes—
cyberine fleet routenoyes—
cyberine confignoyes—
cyberine config pathnoyes—
cyberine config shownoyes--json
cyberine config getnoyes—
cyberine config setnoyes--global, --project, --local
cyberine config doctornoyes—
cyberine initnoyes--update, --yes/-y
cyberine setupdelegated to runSetupCommandno change—Has its own --status flag; no --help added (interactive wizard pattern)
cyberine memorynoyes—
cyberine pluginnoyes—
cyberine plugin listnoyes—
cyberine plugin infonoyes—
cyberine plugin doctornoyes—
cyberine plugin installnoyes--yes
cyberine plugin removenoyes--yes
cyberine plugin enablenoyes—
cyberine plugin disablenoyes—
cyberine skillnoyes—
cyberine plansnoyes--all
cyberine modelnoyes—
cyberine modelsnoyes—
cyberine groupnoyes—
cyberine cooldownnoyes—
cyberine costnoyes--days
cyberine creditsnoyes—
cyberine usagenoyes—
cyberine cronnoyes—
cyberine schedulenoyes--at, --notify, --webhook, --retries, --backoff-ms
cyberine enqueuenoyes--mode
cyberine queuenoyes—
cyberine wfnoyes--bg
cyberine evalnoyes--compare
cyberine track-recordnoyes—
cyberine api-tokennoyes—
cyberine servenoyes--port, --host
cyberine reapno changeno change--dry-runcmdReap does not parse args; passed as bool from cyberine.ts. --dry-run already handled at dispatch layer. Low priority follow-up.
cyberine maintenanceno changeno change—No args accepted; --help would be trivial but not blocking. Follow-up.
cyberine statusno changeno change—No args accepted. Follow-up.
cyberine daemonno changeno change—Internal; no user-facing args. Low priority.
cyberine webno changeno change--port, --hostDelegated to resolveWebOptions; no --help gate added. Follow-up.
cyberine chatdelegated to runChatno change--task, sessions, --continue, --resumeInteractive REPL; has its own help system.
cyberine agentsdelegated to cmdAgentsTuino change--once, --jsonTUI; no plain --help needed.
cyberine tuidelegated to cmdTuino change--dirTUI; low priority.
cyberine trajectoryno changeno changeexport --outVery narrow command; follow-up.
cyberine provenanceno changeno changeexport --out --scopeVery narrow command; follow-up.
cyberine evolveno changeno changestart --goal, status, stop, steerComplex multi-step flow; own help system. Follow-up.

Files Changed

FileChange
src/commands/shared/ansi.tsAdded hasHelpFlag(argv) helper
src/commands/fleet.tsFixed enable/disable bug; added help to all sub-subcommands; updated fleetUsage(out?)
src/commands/config.tsAdded help to all sub-subcommands; updated configUsage(out?)
src/auth/authCommand.tsAdded help to runAuthCommand and all sub-subcommands
src/commands/billing.tsAdded help to cmdCooldown, cmdCost, cmdCredits, cmdUsage
src/commands/memory.tsUpdated memoryUsage(out?); added help to cmdMemory
src/commands/plugins.tsUpdated pluginUsage(out?); added help to cmdPlugin and all sub-subcommands
src/commands/tasks.tsUpdated skillUsage(out?), plansUsage(out?); added help to cmdSkill, cmdPlans
src/commands/models.tsUpdated modelUsage(out?), groupUsage(out?), modelsUsage(out?); added help
src/commands/misc.tsAdded help to cmdTrackRecord, cmdWf, cmdEval; updated signature
src/commands/lifecycle.tsUpdated landUsage(out?)
src/commands/apiTokens.tsUpdated usage(out?); added help to cmdApiToken
src/commands/init.tsAdded help to cmdInit
src/commands/ops.tsAdded help to cmdCron, cmdSchedule, cmdEnqueue, cmdQueue, cmdServe
src/cyberine.tsAdded help to run, route, apply, wait, digest, land, tasks dispatch sites; updated callsites for cmdTrackRecord and cmdUsage

Follow-up Tasks

These were intentionally deferred: they are either narrow internal commands, TUI entry points, or commands whose help path requires non-trivial refactoring:

  • cyberine reap --help — cmdReap receives a boolean not args; would need signature change.
  • cyberine maintenance --help — no args accepted; trivial but not blocking.
  • cyberine status --help — no args accepted; trivial.
  • cyberine daemon --help — internal; low user-facing value.
  • cyberine web --help — delegated to resolveWebOptions; needs update there.
  • cyberine agents --help — TUI entry; has --once/--json but no help gate.
  • cyberine tui --help — TUI; low priority.
  • cyberine chat --help — interactive REPL; has its own help system (/help slash command).
  • cyberine trajectory --help / cyberine provenance --help — narrow expert commands; low traffic.
  • cyberine evolve --help — complex multi-step flow; has its own sub-subcommand routing.