Skip to content

Presets

Presets let you capture scaffold metadata, installed enhancements, and config overrides into a reusable bundle.

Save a preset from an existing project:

Terminal window
tinkerise preset save my-stack --framework next --category web --description "Team Next.js baseline"

Apply it later:

Terminal window
tinkerise preset use my-stack
Terminal window
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.

Terminal window
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.

Terminal window
tinkerise preset list

Behavior:

  • 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).

Terminal window
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.

For teams, use a convention that communicates intent and evolution:

  • web-next-baseline
  • api-fastapi-docker
  • mobile-rn-strict-ts

When preset behavior changes substantially, publish a new preset package or a new preset name rather than silently changing old behavior.

  1. Create and validate preset locally with preset save
  2. Commit the corresponding scaffold/config conventions in your template repo
  3. Publish preset package using tinkerise-preset-<name> naming
  4. Team members run tinkerise preset use <name>
  5. Pair presets with project-level tinkerise.config.ts for repo-specific overrides

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.