Elixir development skills with optional Mix checks and Expert language server integration
개요
Elixir development guidance for coding agents, with optional Mix checks and Expert language server integration. Five skills covering language idioms, Phoenix interfaces, Ecto persistence, OTP processes, and Oban jobs. Install them with npx skills, then add optional plugins when you want automatic checks or code navigation. Modern coding agents already know the basics. Their context should go toward your code and your problem. We keep only guidance that changes a decision or prevents a demonstrated mistake. If the agent would do the same thing without an instruction, that instruction doesn't belong here. Install all five skills with the Skills CLI and choose your agent when prompted. Works with Codex, Claude Code, OpenCode, and other supported agents: Add -g to make the skills available across projects. Start a new session after installation. Mix checks and code navigation are optional tools you can add later.
README
Elixir Agent Tools
Elixir development guidance for coding agents, with optional Mix checks and Expert language server integration.
Five skills covering language idioms, Phoenix interfaces, Ecto persistence, OTP processes, and Oban jobs. Install them with npx skills, then add optional plugins when you want automatic checks or code navigation.
These skills are small on purpose. Every instruction must change the agent’s behavior. Modern coding agents already know the basics. Their context should go toward your code and your problem. We keep only guidance that changes a decision or prevents a demonstrated mistake. If the agent would do the same thing without an instruction, that instruction doesn’t belong here.
Installation
Install all five skills with the Skills CLI and choose your agent when prompted. Works with Codex, Claude Code, OpenCode, and other supported agents:
npx skills add georgeguimaraes/elixir-agent-tools --skill '*'
Add -g to make the skills available across projects. Start a new session after installation. Mix checks and code navigation are optional tools you can add later.
Elixir skills
Each skill has its own discovery description. The agent can load several skills for a task that crosses domains, such as a LiveView form backed by an Ecto changeset. There is no startup hook or mandatory routing skill.
| Skill | Scope | Example request |
|---|---|---|
| elixir | Functions, modules, data structures, pattern matching, error handling | “Refactor this nested case expression” |
| phoenix | LiveView, components, HTTP endpoints, Plug, channels, PubSub | “Keep this LiveView filter in sync with the URL” |
| ecto | Schemas, changesets, queries, transactions, migrations, data access | “Fix the N+1 queries on this page” |
| otp | Processes, supervision, runtime concurrency, ETS, Broadway | “Find the bottleneck in this GenServer” |
| oban | Durable jobs, retries, scheduling, uniqueness, Oban Pro workflows | “Send these emails in a job that retries failures” |
OTP covers work and state managed by running processes. Oban covers jobs that need persistence, retry policies, or scheduling. Phoenix owns interface behavior, while Ecto owns the persistence behind it.
Upgrading to elixir-dev 3.0
Skill names now use their domain directly: elixir, phoenix, ecto, otp, and oban. Remove the -thinking suffix from explicit skill references in your prompts and agent instructions. The using-elixir-skills router and its startup hook have been removed.
The plugin is now named elixir-dev and the marketplace is elixir-agent-tools. If you installed from the old Claude Code marketplace, uninstall the plugins you used from claude-code-elixir, remove that marketplace, and add georgeguimaraes/elixir-agent-tools. Reinstall your chosen plugins with the new marketplace ID using the installation commands above. The old elixir plugin is replaced by elixir-dev.
Update any explicit plugin-qualified skill references to use the new bundle name.
If you installed skills manually, replace your old skill links or copies with the renamed folders under plugins/elixir-dev/skills/.
Sources
The skills draw on Elixir and Erlang documentation, framework guides, and talks about application design:
- 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 1.8 Scopes
- Phoenix LiveView Docs
- Stephen Bussey - Real-Time Phoenix
- Phoenix Contexts Guide
- German Velasco - DDD for Phoenix Contexts (ElixirConf 2024)
- Ecto Multi-Tenancy Guide
- Erlang OTP Design Principles
- Elixir GenServer Docs
- Elixir School - OTP Concurrency
- Saša Jurić - Elixir in Action
Optional tools
These tools use native plugins. Add the marketplace for your agent below, then install any tools you want. The skills work without them.
| Plugin | What you get | Requirements |
|---|---|---|
| mix-format | Run mix format after edits to .ex and .exs files |
Claude Code or Codex, Bash, Elixir/Mix, a Mix project |
| mix-compile | Compile with --warnings-as-errors after edits to .ex files |
Claude Code or Codex, Bash, Elixir/Mix, a Mix project |
| mix-credo | Run Credo after edits to .ex and .exs files |
Claude Code or Codex, Bash, Elixir/Mix, Credo in the project |
| elixir-lsp | Code navigation and diagnostics through Expert | Claude Code, Expert, Python 3 |
The Mix hooks support macOS and Linux, including WSL on Windows. They use Bash 3.2+, standard Unix tools, and the OS file-lock utility: lockf on macOS or flock on Linux/WSL. JSON parsing is bundled, so the Mix hooks need no jq, Python, uv, or newer Elixir version.
The three Mix plugins share a Bash runner and a bundled JSON.sh parser. They handle Claude Code’s Edit, MultiEdit, and Write events and Codex’s apply_patch events, including patches spanning multiple files or projects. Shell commands that write files do not trigger these edit hooks.
Checks run synchronously and return failures as context to the agent. The plugins serialize their Mix commands per project, but hook execution order is not guaranteed. Formatting is not guaranteed to finish before compilation or Credo starts. Hooks have bounded waits and report timeouts. Mix plugins 2.0 replace the old single-file scripts and asynchronous Credo hook.
mix-format
Runs mix format on surviving edited .ex and .exs files, using the nearest parent mix.exs to locate each project. Reports formatting failures.
mix-compile
Runs mix compile --warnings-as-errors once per affected Mix project after editing an .ex file. Deletions and both sides of a move also trigger compilation. Reports compiler warnings and errors. Edits to .exs scripts and tests don’t trigger compilation.
Skips compilation when lsof detects a BEAM process running from the project directory, to avoid competing with a running server or Mix task.
mix-credo
Runs mix credo for each surviving edited .ex or .exs file using the project’s Credo configuration. Reports code quality issues and skips the check if the Credo task isn’t installed. Dependency and project failures remain visible.
elixir-lsp
Connects Claude Code to Expert for navigation and compiler diagnostics in .ex, .exs, .heex, and .leex files.
Install the expert binary using the Expert installation guide and make sure it’s on your PATH. The bundled wrapper also requires Python 3.
The wrapper works around Claude Code’s handling of server-initiated LSP requests, including client/registerCapability (upstream issue). See expert-wrapper for the implementation.
Developing the hooks
Edit the canonical runner and parser helpers under scripts/mix-hooks/, then run bash scripts/sync-mix-hooks.sh to bundle them into the three independently installable plugins. The bundled JSON.sh source and its MIT license live under vendor/ in each copy.
Run bash test/verify-plugins.sh to check package structure and bundle consistency. Run elixir test/test_mix_hooks.exs for behavioral tests with isolated plugin installations and fake Mix commands. The development checks need Bash, Elixir, and perl. They don’t affect the Mix hooks themselves, which use Bash only.
License
Copyright © 2025 George Guimarães
Licensed under the Apache License, Version 2.0. See LICENSE.
추천 도구
다른 키워드를 입력하거나 필터를 제거해 보세요.
설치
npx skillfish add georgeguimaraes/elixir-agent-tools