claude-code-elixir
Health Gecti
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 146 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
This skill provides a suite of development plugins for Claude Code, specifically focused on Elixir, Phoenix, and OTP development. It integrates Language Server Protocol (LSP) features, auto-formatting, and code quality checks directly into the AI coding workflow.
Security Assessment
The overall risk is Low. The tool acts primarily as a bridge to execute local Elixir shell commands (such as `mix format`, `mix compile`, and `mix credo`) and interact with a local LSP server. The light code audit scanned 12 files and found no dangerous patterns, hardcoded secrets, or requests for overly broad permissions. Because it runs local CLI tools, its scope is strictly limited to the local development environment. It does not appear to make external network requests or access sensitive data beyond your project's source code.
Quality Assessment
The project is healthy and actively maintained, with recent updates pushed within the last day. It uses the permissive and standard Apache-2.0 license. Community trust is solid for a niche development tool, boasting 146 GitHub stars. The README is well-documented, clearly outlining installation steps, prerequisites, and exactly what each plugin does.
Verdict
Safe to use.
Claude Code plugin marketplace for Elixir development
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, andmix-credorequire 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
.exfiles (not.exsscripts/tests) - Finds
mix.exsby 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
.exand.exsfiles - 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) |
- José Valim - Gang of None
- Saša Jurić - The Soul of Erlang and Elixir
- Saša Jurić - Clarity
- Designing Elixir Systems with OTP
- Official Elixir Guides
phoenix-thinking
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 |
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 |
- Phoenix Contexts Guide
- German Velasco - DDD for Phoenix Contexts (ElixirConf 2024)
- Ecto Multi-Tenancy Guide
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 |
- Erlang OTP Design Principles
- Elixir GenServer Docs
- Elixir School - OTP Concurrency
- Saša Jurić - Elixir in Action
- Stephen Bussey - Real-Time Phoenix
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.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi