Modules
Defines a cookbook: one package's tree of steps and recipes.
Composer's built-in cookbook: steps for setting up a fresh phx.new app.
Generates Gigalixir deployment configuration: buildpacks, Procfile, release scripts, and production SSL/endpoint config.
Configures libcluster's Kubernetes strategy for clustering on Gigalixir.
Adds libcluster for clustering Elixir nodes.
Generates a MyApp.Schema module with sensible primary key and timestamp
defaults. Uses UUIDv7 for primary keys when the uuidv7 dependency is
present, :binary_id otherwise.
Updates the ecto.drop alias in mix.exs to use --force-drop.
Adds uuidv7 for time-sortable UUID primary keys. Updates the app's Schema module when present.
Adds oban_pro for advanced background job processing features. Requires an Oban Pro license.
Generates a migration enabling common PostgreSQL extensions (citext, pg_trgm, unaccent, vector).
Adds pgvector support for vector similarity search in Postgres.
Replaces the esbuild and tailwind asset pipeline with bun.
Replaces the Layouts.app/1 component with a minimal header-and-main layout.
Replaces the phx.new marketing home page with a minimal starting point,
and updates the generated page controller test to match.
Adds Remix Icons as a Tailwind plugin with remix-#{ICON} classes.
Removes the AGENTS.md file that phx.new generates.
Removes the :daisyui Mix dependency and the CSS plugin blocks that phx.new generates.
Removes the suffix=" · Phoenix Framework" attribute from <.live_title> in the root layout.
Removes the theme toggle that phx.new generates: the theme scripts in the
root layout, and the theme_toggle component and its usage in Layouts.
Removes the topbar progress indicator that phx.new generates.
Generates a formatter that sorts Tailwind CSS classes in HEEx templates.
Adds credo as a dev/test dependency.
Adds dotenv_parser to load environment variables from a .env file.
Adds exsync to reload modules on file changes.
Defaults generators to binary_id primary keys and utc_datetime_usec timestamps, migrations included.
Adds macOS system files to .gitignore, creating the file if needed.
Adds config :app, env: Mix.env() to config.exs so the environment is readable at runtime.
Adds mix_test_watch to automatically run tests on file changes.
Adds quokka, a formatter plugin that rewrites code to match your Credo configuration.
Sorts the dependencies in mix.exs alphabetically by name.
Creates .mcp.json pointing at a local Tidewave MCP server.
Finds the cookbooks available to the current project.
Opens a file in the user's editor, for mix composer.recipe.edit and
mix composer.step.edit.
Formats the {:error, reason} values returned by composer's modules, and
the warnings returned by Composer.Resolver.warnings/1.
The controlled facet vocabulary that steps declare with use Composer.Step.
Git support for mix composer.recipe.run: the pre-flight status check,
the commit message, and the commit itself.
Conveniences for writing steps.
The shell completion index: _build/composer/index.
composer-ls, the language server for recipe group files, started by
mix composer.lsp. See the Composer LSP guide.
Quick fixes from lint's suggestions.
Completion items for a context from Composer.LSP.Cursor.context/3.
Maps Composer data to the Language Server Protocol's shapes, as plain
maps with atom keys named like GenLSP's structure fields
(related_information, new_text, ...). Composer.LSP.Server turns
them into GenLSP structures; nothing here depends on GenLSP.
What is under the cursor in a recipe group buffer.
Goto-definition targets and hex: document links.
The diagnostics of a saved recipe group file and of the files that include its recipes, from disk.
Renders a Composer.LSP.Lookup result as Markdown for a hover. Every
hover ends with a footer naming the host project, since a reference
valid in one host may not be in another.
Resolves what is under the cursor (Composer.LSP.Cursor) as a run
would: the recipe's aliases are expanded, and the cookbook owning the
buffer's file is the context unqualified references are looked up in
first. Shared by hover and goto-definition.
Converts columns between Composer and the Language Server Protocol.
The GenLSP server of composer-ls; the only module that uses GenLSP.
The language server's state process, holding a Composer.LSP.Workspace.
The language server's state, as a struct and pure transitions;
Composer.LSP.Session holds it in a process.
Checks a cookbook, or your local recipes, for
mix composer.cookbook.lint.
One problem found by Composer.Lint: what is wrong, how bad it is, and
where.
Renders Composer.Lint.Diagnostics for mix composer.cookbook.lint.
Every function is pure: it returns text and prints nothing.
Local: your recipes, outside any project.
A cookbook's static manifest: lib/composer/<package>/manifest.exs.
Checks the requires of the steps about to run, before anything runs.
A recipe: a named, self-describing list of steps. Recipes live in
group files (see Composer.Recipe.Group), recipes/<group>.exs, and
are addressed as <cookbook>:<group>/<name>.
A recipe group: one recipes/<group>.exs file holding one or more
recipes, keyed by name.
Finds where things are written in a recipe group file, without evaluating it.
A reference to a step or recipe: "cookbook:path".
Resolves references and expands recipes into one flat, acyclic,
de-duplicated step list for Composer.Runner.
Runs a resolved step list against an igniter.
Defines a composer step.
A step's declared metadata, returned by its __composer_step__/0.
Helpers for steps that write files from templates.
Fetches latest package versions from Hex, npm, GitHub, and the Oban Pro docs site so generated dependencies start current instead of pinned to whatever Composer shipped with.
Mix Tasks
Prints a completion script for bash, zsh or fish.
Checks the current project's cookbook (in composer itself, core)
Lists every cookbook composer found, with its package and how many steps and recipes it holds.
Writes lib/composer/<cookbook>/manifest.exs for the current project's
cookbook (in composer itself, core).
Scaffolds the current project's cookbook
Adds a recipe stub to a recipe group, creating the group file when it does not exist.
Scaffolds a step in the current project's cookbook, with every facet stubbed out, and a test for it.
Rebuilds _build/composer/index, the file the completion script reads.
Installs composer. Invoked by igniter via mix igniter.install composer.
Sets up the current app as a composer cookbook, with a default recipe listing every built-in step
Opens the group file that holds a recipe in your editor, at the line where the recipe starts.
An alias for mix composer.recipe.show.
Lists recipes with their shortdocs: your local: recipes first, then
every cookbook's.
Resolves a recipe and applies it to the current app as one diff, then records the run as one git commit.
Shows a recipe's metadata - shortdoc, doc and flags - and its fully expanded, numbered step list, with the recipe each step came from and the include flags that gate it.
Opens the source file of a step in your editor, at its
use Composer.Step line.
Searches step ids, summaries and tags, case-insensitively. Steps whose id matches come first.
An alias for mix composer.step.show.
Lists the steps of every cookbook, optionally filtered.
Runs one or more steps, as one diff.
Shows a step's summary, facets, requires, provides and conflicts,
then dry-runs it against the current project to report the files it
touches and the dependencies it adds. Nothing is written.
Starts composer-ls, the language server for recipe group files, on
stdio. Your editor runs it; see the Composer LSP guide.