Presets
Presets let you capture scaffold metadata, installed enhancements, and config overrides into a reusable bundle.
Quick start
Section titled “Quick start”Save a preset from an existing project:
tinkerise preset save my-stack --framework next --category web --description "Team Next.js baseline"Apply it later:
tinkerise preset use my-stackPreset lifecycle commands
Section titled “Preset lifecycle commands”1) Save
Section titled “1) Save”tinkerise preset save <name>Behavior:
- Reads current project config (
tinkerise.config.ts) when present - Detects installed enhancements by running module
detect()checks - Stores a local JSON preset in your presets directory
Optional flags:
--description <desc>--framework <fw>--category <cat>
Expected outcome: Preset "<name>" saved ... and detected enhancement IDs printed when available.
2) Use
Section titled “2) Use”tinkerise preset use <name>Behavior:
- Tries local preset first
- Falls back to npm package name
tinkerise-preset-<name> - Prints preset summary (framework, category, enhancements, config)
- Applies included enhancements immediately
If a preset references unknown enhancement IDs, they are skipped with a warning.
Expected outcome: enhancement summaries plus Preset "<name>" applied.
3) List
Section titled “3) List”tinkerise preset listBehavior:
- Shows Local presets from your presets directory
- Shows discoverable npm presets in current workspace context
Expected outcome: two sections (Local presets, npm presets) with names or (none).
4) Delete
Section titled “4) Delete”tinkerise preset delete <name>Behavior:
- Removes a local preset by name
- Throws a not-found error when the preset does not exist
Expected outcome: Preset "<name>" deleted.
Practical naming and versioning
Section titled “Practical naming and versioning”For teams, use a convention that communicates intent and evolution:
web-next-baselineapi-fastapi-dockermobile-rn-strict-ts
When preset behavior changes substantially, publish a new preset package or a new preset name rather than silently changing old behavior.
Team sharing workflow
Section titled “Team sharing workflow”- Create and validate preset locally with
preset save - Commit the corresponding scaffold/config conventions in your template repo
- Publish preset package using
tinkerise-preset-<name>naming - Team members run
tinkerise preset use <name> - Pair presets with project-level
tinkerise.config.tsfor repo-specific overrides
How presets interact with configuration
Section titled “How presets interact with configuration”Preset config is the lowest-priority layer in final resolution:
preset -> global -> project -> CLI
That means presets provide defaults, while user/global/project choices and command flags can override them.