Guides Elixir, Phoenix, and OTP development with patterns for Ecto data layer design, OTP process architecture, LiveView best practices, and Oban background jobs, routing to relevant skills when working on Elixir projects.
This skill should be used when the user asks to "add a database table", "create a new context", "query the database", "add a field to a schema", "validate form input", "fix N+1 queries", "preload this association", "separate these concerns", or mentions Repo, changesets, migrations, Ecto.Multi, has_many, belongs_to, transactions, query composition, or how contexts should talk to each other.
This skill should be used when the user asks to "implement a feature in Elixir", "refactor this module", "should I use a GenServer here?", "how should I structure this?", "use the pipe operator", "add error handling", "make this concurrent", or mentions protocols, behaviours, pattern matching, with statements, comprehensions, structs, or coming from an OOP background. Contains paradigm-shifting insights.
This skill should be used when the user asks to "add a background job", "process async", "schedule a task", "retry failed jobs", "add email sending", "run this later", "add a cron job", "unique jobs", "batch process", or mentions Oban, Oban Pro, workflows, job queues, cascades, grafting, recorded values, job args, or troubleshooting job failures.
This skill should be used when the user asks to "add background processing", "cache this data", "run this async", "handle concurrent requests", "manage state across requests", "process jobs from a queue", "this GenServer is slow", or mentions GenServer, Supervisor, Agent, Task, Registry, DynamicSupervisor, handle_call, handle_cast, supervision trees, fault tolerance, "let it crash", or choosing between Broadway and Oban.
This skill should be used when the user asks to "add a LiveView page", "create a form", "handle real-time updates", "broadcast changes to users", "add a new route", "create an API endpoint", "fix this LiveView bug", "why is mount called twice?", or mentions handle_event, handle_info, handle_params, mount, channels, controllers, components, assigns, sockets, or PubSub. Essential for avoiding duplicate queries in mount.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Claude Code plugins for Elixir development.
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
Install the expert binary and make sure it's on your PATH. See installation instructions.
Note:
mix-format,mix-compile, andmix-credorequire bash (Git Bash or WSL on Windows).
| 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 |
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 |
Auto-runs mix format after editing .ex and .exs files.
Auto-runs mix compile --warnings-as-errors after editing .ex files.
.ex files (not .exs scripts/tests)mix.exs by walking up directoriesAuto-runs mix credo after editing .ex and .exs files to check code quality.
.ex and .exs filesParadigm-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 |
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) |
Architectural patterns for Phoenix and LiveView.
| Concept | Insight |
|---|---|
| Iron Law | NO DATABASE QUERIES IN MOUNT |
| Scopes (1.8+) | Security-first authorization threading |
| mount vs handle_params | mount = setup, handle_params = data |
| PubSub | Scoped topics, broadcast_from to avoid self-broadcast |
| Channel fastlane | Socket state can be stale — re-fetch or include in broadcast |
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 |
Run mix credo after editing Elixir files to check code quality
Elixir Language Server integration for Claude Code
Auto-format Elixir files with mix format after edits
Run mix compile --warnings-as-errors after editing Elixir files
Manage your Ghost blog directly from Claude Code: create, update, publish, schedule posts, upload images, manage tags, members, and newsletters
npx claudepluginhub georgeguimaraes/claude-code-elixir --plugin elixirElixir Language Server integration for Claude Code
Elixir/Phoenix/LiveView development with specialist agents, Iron Laws, and Tidewave MCP integration
Advanced Elixir skills for OTP, pattern matching, and Ecto.
Essential Elixir and Phoenix LiveView development guide with enforced skills, hooks, and patterns for idiomatic code
Elixir, Phoenix, and LiveView code review and documentation skills
Feature development with code-architect/explorer/reviewer agents, CLAUDE.md audit and session learnings, and Agent Skills creation with eval benchmarking from Anthropic.