Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
George Guimaraes avatar

Mix Format

  • 167 repo stars
  • Updated April 28, 2026
  • georgeguimaraes/claude-code-elixir

Auto-format Elixir files with mix format after edits to enforce consistent code style.

About

A hook that automatically formats Elixir files with mix format after edits. Developers use it to keep an Elixir codebase consistently styled without manual formatting.

  • Runs mix format after edits
  • Consistent Elixir code style
  • Automatic on save

Mix Format by the numbers

  • Data as of Jul 29, 2026 (Skillselion catalog sync)
/plugin marketplace add georgeguimaraes/claude-code-elixir
/plugin install mix-format@claude-code-elixir

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
repo stars167
Last updatedApril 28, 2026
Repositorygeorgeguimaraes/claude-code-elixir

What it does

Auto-format Elixir files with mix format after edits to enforce consistent code style.

README.md

Claude Code Elixir

Claude Code plugins for Elixir development.

Installation

claude plugin marketplace add georgeguimaraes/claude-code-elixir

Install all plugins:

claude plugin install elixir-lsp@claude-code-elixir && \
claude plugin install mix-format@claude-code-elixir && \
claude plugin install mix-compile@claude-code-elixir && \
claude plugin install mix-credo@claude-code-elixir && \
claude plugin install elixir@claude-code-elixir

Prerequisites

Install the expert binary and make sure it's on your PATH. See installation instructions.

Note: mix-format, mix-compile, and mix-credo require bash (Git Bash or WSL on Windows).


Plugins

Overview

Plugin Type Description
elixir-lsp LSP Language Server with completions, go-to-definition, diagnostics
mix-format Hook Auto-format .ex/.exs files on save
mix-compile Hook Compile with --warnings-as-errors on save
mix-credo Hook Run Credo code quality checks on save
elixir Skills BEAM architecture, Phoenix, Ecto, OTP patterns

Tools

elixir-lsp

Elixir Language Server integration powered by Expert.

Feature Description
Navigation Go to definition, find references
Completions With signature help and docs
Diagnostics Compiler warnings and errors
File types .ex, .exs, .heex, .leex
mix-format

Auto-runs mix format after editing .ex and .exs files.

mix-compile

Auto-runs mix compile --warnings-as-errors after editing .ex files.

  • Only .ex files (not .exs scripts/tests)
  • Finds mix.exs by walking up directories
  • Fails on warnings or errors
mix-credo

Auto-runs mix credo after editing .ex and .exs files to check code quality.

  • Runs on both .ex and .exs files
  • Uses project's default Credo configuration
  • Gracefully skips if Credo is not installed
  • Fails on code quality issues

Skills

elixir

Paradigm-shifting skills for Elixir, Phoenix, and OTP development. Includes a SessionStart hook that auto-suggests skills when working on Elixir code.

Included skills:

Skill Use When
elixir-thinking Designing modules, processes, data structures
phoenix-thinking Working with Phoenix, LiveView, PubSub
ecto-thinking Working with Ecto, contexts, schemas
otp-thinking Implementing GenServers, supervisors, Tasks
elixir-thinking

Mental models for writing Elixir — how it differs from OOP.

Concept Insight
Iron Law NO PROCESS WITHOUT A RUNTIME REASON
Three dimensions Behavior, state, mutability are decoupled
Processes For runtime (state/concurrency/faults), not code organization
"Let it crash" Means "let it heal" — supervisors restart
Polymorphism Behaviors → Protocols → Message passing (least to most dynamic)
Sources
phoenix-thinking

Architectural patterns for Phoenix and LiveView.

Concept Insight
Where to load data mount/3 by default; handle_params/3 for live navigation (push_patch)
Initial double-load mount and handle_params both run twice; use connected?/1, assign_async/3, or assign_new/3
Scopes (1.8+) Security-first authorization threading
PubSub Scoped topics, broadcast_from to avoid self-broadcast
Channel fastlane Socket state can be stale — re-fetch or include in broadcast
Sources
ecto-thinking

Architectural patterns for Ecto and contexts.

Concept Insight
Contexts Bounded domains with their own "dialect"
Cross-context refs Use IDs, not belongs_to associations
Schemas Multiple changesets per schema, embedded_schema for forms
Preloads Separate vs join — pick based on data shape
pool_count vs pool_size pool_count = DBConnection pools, pool_size = connections per pool
Sources
otp-thinking

OTP design patterns and when to use each abstraction.

Concept Insight
Iron Law GENSERVER IS A BOTTLENECK BY DESIGN
ETS Bypasses bottleneck — concurrent reads with :read_concurrency
Task.Supervisor THE pattern for async work (not raw Task.async)
Registry + DynamicSupervisor Named dynamic processes without atom leaks
Broadway vs Oban External queues vs background jobs — different problems
Sources

Known Issues

elixir-lsp: client/registerCapability workaround. Claude Code's LSP client doesn't respond to client/registerCapability requests that Expert sends during initialization (anthropics/claude-code#32595). The plugin includes a Python wrapper (expert-wrapper) that intercepts these requests and auto-responds so Expert can initialize properly. The wrapper will be removed once the upstream fix lands. Requires Python 3 on PATH.

Troubleshooting

expert not found: Ensure the expert binary is on your PATH. See installation instructions.


License

Copyright (c) 2025 George Guimarães

Licensed under the Apache License, Version 2.0. See LICENSE for details.

Related skills

Code Review & Qualitybackendtesting

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.