# Igniter

Igniter is an Elixir code-generation and project-patching framework that provides mix tasks to install dependencies, upgrade them with codemods, and refactor code such as renaming a function across a project.

Igniter serves two audiences. For end users, it adds mix tasks: igniter.install adds a dependency to mix.exs and then runs that library's own installer if it has one, igniter.upgrade is a drop-in replacement for the standard dependency-update task that also runs any upgrade patchers a package defines, and refactoring tasks such as igniter.refactor.rename_function rename a function and all its references across a project, optionally leaving the old name marked deprecated.

For library authors and platform teams, Igniter is a toolkit for writing generators that can semantically create and modify existing files in a user's project, commonly called codemods, rather than only scaffolding new ones. An installable archive adds a mix igniter.new task that scaffolds an entirely new Elixir project, optionally combined with other project generators and further --install flags for libraries such as Ash or Ecto. It requires Elixir 1.15 or later, with 1.17 or later recommended for full compatibility.

Website: https://hexdocs.pm/igniter/readme.html
