Skip to content

CLI and Automation

s edited this page Aug 1, 2026 · 4 revisions

CLI and Automation

Run supernote-module for the guided menu. Use subcommands for scripts and repeatable commands. Run supernote-module help <command> for the exact options supported by your installed version. For example:

supernote-module help add

Commands

Command Purpose
supernote-module Interactive Add/Update/Validate/Remove/Doctor menu
add Create and link one local module
update Refresh generated files while preserving implementation folders
validate Check files, links, exports, and optionally the Android build
remove Permanently delete one or all modules
doctor Check generator and build prerequisites
help Show installed command help

Global options

Option Effect
-h, --help Show help
-V, --version Show installed version
--quiet Keep warnings/errors and one final result line
--verbose Stream subprocess output and diagnostics
--json Emit one schema-versioned JSON document and never prompt
--no-color Disable color; NO_COLOR is also respected
--plain Use ASCII, line-oriented output without cursor control
--debug Include internal diagnostics and unexpected tracebacks

--quiet, --verbose, and --json are mutually exclusive.

Add

supernote-module add [PACKAGE] [options]

Options: --type <native|jni|jsi>, --description, --javascript-name, --android-namespace, --package-version, --package-manager <npm|yarn>, --skip-install, --build, and --yes.

Without --yes, provide the required options explicitly. With --yes, omitted names and versions use their defaults. Conflicting lockfiles still require an explicit package manager.

supernote-module add my-module --type native --yes

Update

supernote-module update [MODULE] [options]

Options: --package-manager <npm|yarn>, --skip-install, --build, and --yes. Update always targets one module and cannot convert its type. Read Managing Modules before automating it.

Validate

supernote-module validate [MODULE] [--all] [--build]

Use either one module or --all. Plain validation checks files and links; --build also runs your plugin's Android assemble task.

Remove

supernote-module remove [MODULE] [options]

Options: --all, --package-manager <npm|yarn>, --skip-install, and --yes. Outside an interactive terminal, --yes is required and valid only with an explicit module or --all. Removal deletes implementation source too.

Doctor

supernote-module doctor [--type <all|native|jni|jsi>]

Without --type, Doctor checks the requirements for all three backends. Missing generator or build requirements fail it; JSI runtime-policy observations are advisory.

Automation examples

Human-readable, non-interactive:

supernote-module add my-module --type native --yes --plain
supernote-module validate my-module --build --plain

Machine-readable:

supernote-module add my-module --type native --yes --json
supernote-module validate --all --json

Scripts should use an explicit subcommand, inspect the exit status, and parse JSON instead of normal human wording.

Exit codes

Code Meaning
0 Success, help/version, empty state, or deliberate cancellation
1 Operation, verification, build, Doctor, or internal failure
2 Usage or supplied-input error
3 Partial completion or recovery still required
130 Interrupted before mutation or after successful rollback

Human progress uses stderr and final success uses stdout. JSON uses stdout only when a result document can be constructed.

Clone this wiki locally