# Mix v1.10.3 API Reference

## Modules

Mix

Mix is a build tool that provides tasks for creating, compiling, and testing Elixir projects, managing its dependencies, and more.

Mix.Config deprecated

A simple configuration API and functions for managing config files.

Mix.ElixirVersionError
Mix.Error
Mix.Generator

Conveniences for working with paths and generating content.

Mix.InvalidTaskError
Mix.NoProjectError
Mix.NoTaskError
Mix.Project

Defines and manipulates Mix projects.

Mix.Release

Defines the release structure and convenience for assembling releases.

Mix.SCM

This module provides helper functions and defines the behaviour required by any source code manager (SCM) used by Mix.

Mix.Shell

Defines `Mix.Shell` contract.

Mix.Shell.IO

This is Mix's default shell.

Mix.Shell.Process

Mix shell that uses the current process mailbox for communication.

Mix.Shell.Quiet

This is Mix's default shell when the `MIX_QUIET` environment variable is set.

Mix.Task

A simple module that provides conveniences for creating, loading and manipulating tasks.

Mix.Task.Compiler

This module defines the behaviour for a Mix task that does compilation.

Mix.Task.Compiler.Diagnostic

Diagnostic information such as a warning or compilation error.

## Mix Tasks

mix app.start

Starts all registered apps.

mix app.tree

Prints the application tree.

mix archive

Lists all installed archives.

mix archive.build

Builds an archive according to the specification of the Erlang Archive Format.

mix archive.check

Checks all archives are available.

mix archive.install

Installs an archive locally.

mix archive.uninstall

Uninstalls local archives.

mix clean

Deletes generated application files.

mix cmd

Executes the given command.

mix compile

A meta task that compiles source files.

mix compile.app

Writes an .app file.

mix compile.elixir

Compiles Elixir source files.

mix compile.erlang

Compiles Erlang source files.

mix compile.leex

Compiles Leex source files.

mix compile.protocols

Consolidates all protocols in all paths.

mix compile.yecc

Compiles Yecc source files.

mix deps

Lists all dependencies and their status.

mix deps.clean

Deletes the given dependencies' files, including build artifacts and fetched sources.

mix deps.compile

Compiles dependencies.

mix deps.get

Gets all out of date dependencies, i.e. dependencies that are not available or have an invalid lock.

mix deps.loadpaths

Checks and loads all dependencies along the way.

mix deps.precompile

Extension point for precompiling dependencies.

mix deps.tree

Prints the dependency tree.

mix deps.unlock

Unlocks the given dependencies.

mix deps.update

Updates the given dependencies.

mix do

Executes the tasks separated by comma.

mix escript

Lists all installed escripts.

mix escript.build

Builds an escript for the project.

mix escript.install

Installs an escript locally.

mix escript.uninstall

Uninstalls local escripts

mix format

Formats the given files and patterns.

mix help

Lists all tasks and aliases or prints the documentation for a given task or alias.

mix iex

A task that simply instructs users to run `iex -S mix`.

mix loadconfig

Loads and persists the given configuration.

mix loadpaths

Loads the application and its dependencies paths.

mix local

Lists local tasks.

mix local.hex

Installs Hex locally.

mix local.public_keys

Public keys are used by Mix to install packages like Rebar and Hex.

mix local.rebar

Fetches a copy of `rebar` or `rebar3` from the given path or URL.

mix new

Creates a new Elixir project. It expects the path of the project as argument.

mix profile.cprof

Profiles the given file or expression using Erlang's `cprof` tool.

mix profile.eprof

Profiles the given file or expression using Erlang's `eprof` tool.

mix profile.fprof

Profiles the given file or expression using Erlang's `fprof` tool.

mix release

Assembles a self-contained release for the current project

mix release.init

Generates sample files for releases.

mix run

Starts the current application and runs code.

mix test

Runs the tests for a project.

mix xref

Prints cross reference information between modules.