Quickstart

View Source

Make Claude Code write production-ready Elixir, automatically.

This guide gets you from zero to format-checking, error-detecting Elixir code quickly.

What You'll Build

In this quickstart, you'll:

  1. Watch Claude Code detect formatting issues in code with long lines
  2. See compilation errors caught in real-time
  3. Experience the productivity boost firsthand

Prerequisites

  • Elixir 1.18+ installed
  • Claude Code CLI installed (install guide)
  • An Elixir project

Step 1: Install Claude

Run this single command:

mix igniter.install claude

When prompted:

  • Press Y to install Igniter (if not already installed)
  • Press Y to apply all changes

This automatically:

  • ✅ Adds Claude to your dependencies
  • ✅ Creates .claude.exs configuration
  • ✅ Installs formatting and compilation hooks
  • ✅ Sets up .claude/ directory structure

Step 2: Test Format Checking

Ask Claude Code to create a file with long lines:

Please create a file called lib/user_service.ex with this exact content:

defmodule UserService do
  def format_user_info(user) do
    "User: #{user.first_name} #{user.last_name} (#{user.email}) - Role: #{user.role}, Department: #{user.department}, Status: #{user.status}"
  end

  def build_response(user, account, preferences) do
    {:ok, %{user_id: user.id, account_id: account.id, name: user.name, email: user.email, preferences: preferences, created_at: user.created_at, updated_at: user.updated_at}}
  end
end

Watch the feedback! Claude will create the file, and immediately:

  • 🎨 Format checking runs
  • ⚠️ Claude is alerted that the file needs formatting (lines too long)
  • 🔧 Claude can run mix format to fix it

If Claude formats the file, it will look like:

defmodule UserService do
  def format_user_info(user) do
    "User: #{user.first_name} #{user.last_name} (#{user.email}) - Role: #{user.role}, Department: #{user.department}, Status: #{user.status}"
  end

  def build_response(user, account, preferences) do
    {:ok,
     %{
       user_id: user.id,
       account_id: account.id,
       name: user.name,
       email: user.email,
       preferences: preferences,
       created_at: user.created_at,
       updated_at: user.updated_at
     }}
  end
end

Step 3: Experience Compilation Checking

Ask Claude Code to introduce an error:

Please edit lib/user_service.ex and add a typo - change 'preferences' to 'preferenses' 
in the build_response function

Watch what happens:

  • ❌ Compilation error detected immediately
  • 🔍 Error details shown to Claude
  • 🔧 Claude can fix it automatically

You'll see feedback like:

Compilation failed with warnings/errors:
** (CompileError) lib/user_service.ex:7: undefined variable "preferenses"

Step 4: Try Pre-Commit Protection

Ask Claude Code to commit code with issues:

Please commit all changes with a descriptive message

If there are any formatting issues, compilation errors, or unused dependencies, Claude will:

  • 🛑 Block the commit
  • 📋 Show what needs fixing
  • 🔄 Help resolve issues before committing

What Just Happened?

You've just experienced Claude's core features:

  1. Format Checking - Every .ex and .exs file is checked for proper formatting
  2. Instant Compilation Checks - Errors caught before they reach production
  3. Pre-Commit Validation - Only clean code gets committed
  4. Intelligent Feedback - Claude sees and can fix issues automatically

Next Steps

Enable More Features

Learn More

Troubleshooting

Claude hooks not running?

  • Run claude --version to verify Claude Code CLI is installed
  • Check .claude/settings.json exists
  • Try mix claude.install to reinstall hooks

Can't install Igniter?

  • Ensure you're using Elixir 1.18 or later
  • Run mix deps.get after manual installation

Need help?


🎉 Congratulations! You're now using Claude to write better Elixir code, automatically.