elixir — Claude Code skill for Elixir and Phoenix work
A skill that tells your coding agent how to write Elixir and Phoenix: functional patterns, Ecto, LiveView, OTP. Useful when the project actually runs on BEAM.
npx skills add Mindrally/skills --skill elixir -a claude-codeWhat elixir does
The skill loads as a set of instructions and shapes everything the agent writes afterwards. Naming rules come first: snake_case for files, functions and variables, PascalCase for modules, Phoenix conventions for contexts, schemas and controllers. Formatting and the pipe operator |> get their own section.
On the technical side it asks for pattern matching and guards, Phoenix built-ins and macros, Ecto for database work. Error handling follows the let-it-crash philosophy with supervisor trees, validation goes through changesets, and user-facing errors land in flash messages. Advanced topics cover LiveView, Tailwind CSS, GenServer, ExUnit with TDD, plus Guardian or Pow for auth.
Performance advice is concrete: indexes and caching with ETS or Redis, preload in Ecto to kill N+1 queries, OTP patterns, process pooling. One thing to keep in mind — this is guidance for the agent, not a library. Point it at a non-Elixir codebase and it will push Elixir conventions into code that has no business using them, so confirm the skill actually loaded before you trust the first output.
What it helps with
- write idiomatic Elixir without second-guessing every function
- lay out Phoenix modules into contexts and schemas correctly
- kill N+1 queries with Ecto
preload - build validation and error messages on changesets and flash
- add LiveView and GenServer without breaking the supervisor tree
Example prompts for the agent
- add an orders context following Phoenix conventions
- rewrite this controller using pattern matching and guards
- check these Ecto queries for N+1 and suggest preloads
How to install elixir
1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill elixir -a claude-code2Manually: put the files in place
~/.claude/skills/elixir/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/elixir/
1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill elixir -a codex2Manually: put the files in place
.agents/skills/elixir/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill elixir -a cursor2Manually: put the files in place
.cursor/skills/elixir/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Mindrally/skills elixir2Manually: put the files in place
.github/skills/elixir/SKILL.md1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill elixir -a gemini-cli2Platform CLI
gemini skills install https://github.com/Mindrally/skills --path elixirManually: put the files in place
.devin/skills/elixir/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Mindrally/skills --skill elixir -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about elixir
How do I install elixir in Claude?
Run npx skills add Mindrally/skills --skill elixir -a claude-code. The skill file lands at ~/.claude/skills/elixir/SKILL.md.
What does the elixir skill do?
It sets the agent up as an Elixir and Phoenix expert: naming conventions, Ecto usage, error handling, LiveView, OTP and performance.
Does it work on a project that is not Elixir?
No. The instructions target Elixir, Phoenix and Ecto, so on another language they produce advice that does not fit.
Source text
SKILL.md · Apache-2.0
--- name: elixir description: Expert in Elixir and Phoenix development with functional programming patterns metadata: maintainer: Mindrally source: https://github.com/Mindrally/skills --- # Elixir You are an expert in Elixir and Phoenix development with deep knowledge of functional programming and concurrent systems. ## Core Principles - Write concise, idiomatic Elixir code with accurate examples - Follow Phoenix conventions and best practices - Embrace functional programming patterns and immutability - Prefer higher-order functions and recursion over imperative loops - Use descriptive naming (e.g., `user_signed_in?`, `calculate_total`) ## Naming Conventions - Use `snake_case` for files, functions, and variables - Use `PascalCase` for module names - Follow Phoenix conventions for contexts, schemas, and controllers ## Technical Practices ### Elixir & Phoenix Usage - Use Elixir's pattern matching and guards effectively - Leverage Phoenix's built-in functions and macros - Use Ecto effectively for database operations ### Formatting - Follow the Elixir Style Guide - Use Elixir's pipe operator `|>` for function chaining - Prefer single quotes for charlists, double quotes for strings ### Error Handling - Use Elixir's 'let it crash' philosophy and supervisor trees - Implement proper error logging with user-friendly messages - Use Ecto changesets for validation - Handle errors gracefully with flash messages ## Advanced Topics - Use Phoenix LiveView for dynamic, real-time interactions - Implement responsive design with Tailwind CSS - Implement GenServers for stateful processes - Use ExUnit for comprehensive testing with TDD - Apply Guardian/Pow for authentication and authorization ## Performance - Optimize with database indexing and caching (ETS, Redis) - Use Ecto's `preload` to avoid N+1 queries - Leverage OTP patterns for concurrent operations - Use process pooling for resource management
© Mindrally · Apache-2.0 · Mindrally/skills