An addon is a declarative package that modifies an existing project. You run it from inside your project directory, and Anesis reads the addon's manifest, detects your project setup, asks for any needed inputs, and applies file operations — creating, injecting, replacing, or appending content. The result is recorded in anesis.lock.
anesis addon install pre-downloads the addon and saves it to the local cache. You can skip this step — running an addon command auto-installs it if it isn't cached yet.
# Install an addon by its registry ID
anesis addon install nest-drizzle
# Anesis downloads the addon and caches it at:
# ~/.anesis/cache/addons/nest-drizzle/Explicit installation is useful in CI environments or when you want to ensure an addon is available before moving into a project directory.
Browse the addon registry to see what's available.
The addon ID is what you pass to anesis addon install and then to anesis use <addon-id> <command>. Each addon also lists the commands it exposes and which project types it supports.
This is the primary way to use an addon. Run it from your project root — Anesis handles detection, inputs, and file operations automatically.
# Run an addon command from your project root
anesis use nest-drizzle install
# The general form is:
anesis use <addon-id> <command>
# Omit the command to list what the addon exposes
anesis use nest-drizzle
# Omit the addon to pick one interactively (add --installed to only show cached ones)
anesis use
# Preview the plan (variant, inputs, steps) without touching any files
anesis use nest-drizzle install --dry-run
# Non-interactive: accept defaults and pass inputs up front
anesis use nest-drizzle install --yes --input driver=postgres# If the addon isn't cached yet, Anesis installs it automatically:
anesis use nest-drizzle install
# → addon not found locally, installing...
# → prompting for inputs...
# → applying steps...When you run anesis use <addon-id> <command>, Anesis works through these steps:
anesis.lock.Addons are designed to run after your project is scaffolded. Install the template first, then apply addons.
# 1. Log in (required for registry access)
anesis login
# 2. Install an addon (optional — running a command auto-installs)
anesis addon install nest-drizzle
# 3. Create a new project
anesis new my-project nestjs
cd my-project
# 4. Run addon commands from inside the project
anesis use nest-drizzle install
anesis use nest-drizzle generateBoth commands operate on local cache files only — no network call required.
# See which addons are cached locally
anesis addon list
# Remove an addon from the local cache
anesis addon remove nest-drizzleRe-fetch the addon from its source URL when the addon author has pushed new changes. This is a maintainer action on the registry entry, not a per-project upgrade.
# Re-fetch the addon's registry entry from its source URL (cache-level update)
anesis addon update https://github.com/owner/repoUpdating the cache does not affect any anesis.lock files in your projects. Those track what was applied, not the current addon version.
Iterate on an addon without publishing it. anesis addon link validates a directory and caches it under its manifest id; anesis addon test runs one of its commands against a throwaway copy of a project and shows you the diff.
# Validate a local directory as an addon and cache it for testing
anesis addon link ./my-addon --force
# Dry-run a command against the addon's bundled test-fixture/ (or your own project)
anesis addon test my-addon install
anesis addon test my-addon install --project ./some/existing/projectThese three operate on the current project, not the registry — don't confuse anesis update <addon-id>(upgrades what's applied here) with anesis addon update <url> (refreshes the registry entry, shown above).
# Revert everything "nest-drizzle" applied to this project, in reverse order
anesis undo nest-drizzle
# See which applied addons have a newer version in the registry
anesis outdated
# Upgrade an applied addon in place: undo the old version, install the new one,
# and replay every command it had already run with the same inputs
anesis update nest-drizzleAddons ask questions before applying changes. Answers are used throughout the file operations as template variables.
textbooleanselectEvery input value is available in steps in multiple casing forms: _pascal, _camel, _kebab, and _snake.
A file in your project root that tracks which addons have been applied and which commands have run.
anesis.lock is created in the project root the first time an addon command runs successfully."once": true in the manifest will not run again if their name already appears in anesis.lock.anesis undo replays in reverse, and the stored inputs are what anesis update <addon-id> reuses when it replays commands against the new version.Ready to build and share your own?
anesis.addon.json manifest with detection rules, variants, input prompts, and declarative file-operation steps.