$ apm uninstall --help
Options:
--dry-run Show what would be removed without removing
-v, --verbose Show detailed removal information # <-- not in docs
--help Show this message and exit.
$ apm preview --help
Options:
-p, --param TEXT Parameter in format name=value
-v, --verbose Show detailed output # <-- not in docs
--help Show this message and exit.
$ apm unpack --help
Options:
-o, --output PATH Target directory (default: current directory).
--skip-verify Skip bundle completeness check.
--dry-run Show what would be unpacked without writing.
--force Deploy despite critical hidden-character findings.
-v, --verbose Show detailed unpacking information # <-- not in docs
--help Show this message and exit.
$ apm pack --help
Options:
...
-v, --verbose Show detailed packing information # <-- not in docs
--help Show this message and exit.
Docs for these commands only list
CLI Consistency Report
Date: 2026-03-26
APM Version: 0.8.5 (fdd0003)
Commands Inspected: 31
Summary
High Severity
Unicode box-drawing characters in CLI output (Windows cp1252 breakage)
apm --version,apm config,apm runtime list, and any command that renders a RichPanelorTablewithout an ASCII-safe box styleapm --versionoutputs 726 non-ASCII bytes,apm configoutputs 648 non-ASCII bytes, andapm runtime listoutputs 1,209 non-ASCII bytes — all from Rich's default Unicode box-drawing characters (e.g.,\u256d,\u2500,\u2570,\u2502). On Windows terminals using the cp1252 codepage, this raisesUnicodeEncodeError: 'charmap' codec can't encode character.src/apm_cli/commands/_helpers.py:229usesconsole.print(Panel(version_text, border_style="cyan", padding=(0, 1)))which renders with Rich's default rounded Unicode box style.apm configandapm runtime listuse RichTablewith default box styles.Consolewithsafe_box=Trueinsrc/apm_cli/utils/console.py— this forces Rich to use ASCII box characters on all platforms:Medium Severity
apm compile --targetdocs missingcopilotandcursorvaluesapm compile --target[vscode|agents|claude|opencode|all], omittingcopilotandcursorwhich are valid values in the actual CLI.docs/src/content/docs/reference/cli-commands.md, line 908):- `-t, --target [vscode|agents|claude|opencode|all]` - Target agent format. `agents` is an alias for `vscode`. Auto-detects if not specified.-t, --target [copilot|vscode|agents|claude|cursor|opencode|all][copilot|vscode|agents|claude|cursor|opencode|all], and note thatcopilotis the canonical name,vscodeandagentsare deprecated aliases.Multiple commands have undocumented
-v, --verboseflagapm uninstall,apm preview,apm unpack,apm pack-v, --verboseflag in the CLI, but the flag is not mentioned in the CLI reference documentation for any of them.--dry-run(and other flags) under Options, with no mention of--verbose.--v, --verbose- Show detailed outputto the Options section forapm uninstall,apm preview,apm unpack, andapm packindocs/src/content/docs/reference/cli-commands.md.Clean Areas
The following commands and areas passed all checks:
apm install --nonexistent-flag,apm deps infowith no arg,apm config setwith no args,apm mcp showwith no arg).apm depssubcommands: All options documented and consistent;--yes/-yflag onapm deps cleanis documented correctly.apm mcpsubcommands:apm mcp list,apm mcp search,apm mcp show— help text and docs are aligned.--limitdefaults (10 for search, 20 for list) match between CLI and docs.apm configsubcommands:apm config get,apm config set— documented correctly; bareapm configdisplaying current settings works as documented.apm runtimesubcommands:apm runtime setup,apm runtime list,apm runtime remove,apm runtime status— all match documentation.apm compile: All flags documented except the--targetdiscrepancy noted above.apm install: All flags documented (note:vscodeandagentsdeprecated aliases for--targetare present in CLI but absent from docs — covered in medium findings above).apm audit: All flags (--file,--strip,--dry-run,--verbose,--format,--output,--ci,--policy,--no-cache,--no-fail-fast) are documented correctly.apm init:-y, --yesand--pluginflags are documented correctly.apm prune:--dry-runis the only flag; documented correctly.--dry-run,--force,--verbose/-v,--yes/-yare consistently named across all commands that use them.--help/-h: Works on every command and subcommand tested.