Manage Modules from Your Terminal
List, add, switch on or off and uninstall an app's Modules with stardeck modules.
Run it inside your app's clone:
npx @stardeckai/cli@latest modules list| Command | What it does |
|---|---|
modules list | Every Module the app has or has removed: on, off or uninstalled, where it came from, and what uses it. |
modules enable <module> | Switches a Module on, with the Modules it uses. |
modules disable <module> | Switches a Module off. Refused while an enabled Module uses it. |
modules uninstall <module> | Removes the Module's source from main. Your data stays. |
modules add <module> | Brings a Module back, or installs one published by another app. |
| Option | What it does |
|---|---|
--from <app> | With add: install the published release from another app in your organization. |
--version <v> | With --from: the release to install. Defaults to the latest. |
--dry-run | Show what would change and stop. |
--yes | Apply without the confirmation prompt. Required without a terminal. |
--json | Machine-readable output. Without --yes it stays a dry run. |
--project <id> | App to change. Defaults to the clone's stardeck.project.json. |
What uninstall does
Uninstalling a Module commits its removal to main, so the Module's code stops being part of the app. Stardeck shows the plan first and applies it only for the confirmation it showed: if the app changed in between, it refuses and shows the new plan.
Uninstall refuses, and changes nothing, when:
- another Module uses it, including one that is switched off;
- the app's own code imports it;
- you changed its source from Stardeck's version, or stopped its updates;
- the checkout has work that would be lost, or the branch is locked by someone else;
- you are not an admin of the app.
Uninstall also removes the folders other Modules keep for it (<other>/enhancements/<module>/), because they import it; restore brings them back. A customized one blocks the uninstall like any other edited file. It never removes the Module's tables or rows, shared packages, or your edits elsewhere. It does not deploy: production keeps running the previous build until you deploy, and a production schema change needs its own approval.
Adding a Module back
modules add restores a Module you uninstalled at the version your app is based on, not the latest. Later updates then manage it again.
modules add <module> --from <app> installs a published release from another app in the same organization. The app keeps taking updates, and they leave that Module alone. A Stardeck update that ships a Module with the same name, or that makes one of its Modules use an uninstalled Module, is refused with the names.
If a run is interrupted, run the command again with --yes to finish or undo it.