georgeguimaraes/claude-code-elixir
georgeguimaraes/claude-code-elixir · 5 plugins
Marketplace Elixir development skills with optional Mix checks and Expert language server integration
Install
The repo has no one-line install. Follow its README.
Plugins 5
After adding the marketplace, install one with /plugin install <name>@elixir-agent-tools.
- 1elixir-lspElixir Language Server integration for go-to-definition, references, and hover docs
/plugin install elixir-lsp@elixir-agent-tools - 2elixir-devDevelopment guidance for Elixir, Phoenix, Ecto, OTP, and Oban
/plugin install elixir-dev@elixir-agent-tools - 3mix-compileAuto-compile Elixir files with warnings-as-errors after edits
/plugin install mix-compile@elixir-agent-tools - 4mix-formatAuto-format Elixir files with mix format after edits
/plugin install mix-format@elixir-agent-tools - 5mix-credoRun Credo static analysis after editing Elixir files
/plugin install mix-credo@elixir-agent-tools
Files
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.
Alternative: native Claude Code or Codex plugin
Install the same five skills as a plugin. Choose this or npx skills to avoid duplicate skills.
Claude Code
claude plugin marketplace add georgeguimaraes/elixir-agent-tools
claude plugin install elixir-dev@elixir-agent-toolsCodex
codex plugin marketplace add georgeguimaraes/elixir-agent-tools
codex plugin add elixir-dev@elixir-agent-toolsManual installation
For agents that discover skills under ~/.agents/skills, clone this repository into a persistent location and link each skill:
git clone https://github.com/georgeguimaraes/elixir-agent-tools.git "$HOME/.local/share/elixir-agent-tools"
mkdir -p "$HOME/.agents/skills"
for skill in elixir phoenix ecto otp oban; do
ln -s "$HOME/.local/share/elixir-agent-tools/plugins/elixir-dev/skills/$skill" "$HOME/.agents/skills/$skill"
doneIf a destination already exists, inspect it before replacing it. Start a new session after installation. Updating the clone updates the linked skills.
For other agents with Agent Skills support, install the individual folders from plugins/elixir-dev/skills/ in that agent's skill directory.
Try a local checkout in Codex
Register the local directory instead of the GitHub repository:
codex plugin marketplace add /path/to/elixir-agent-tools
codex plugin add elixir-dev@elixir-agent-toolsStart a new session after installation.
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 |
Install tools in Claude Code
Add the marketplace once:
claude plugin marketplace add georgeguimaraes/elixir-agent-toolsRun only the commands for the tools you want:
claude plugin install mix-format@elixir-agent-tools
claude plugin install mix-compile@elixir-agent-tools
claude plugin install mix-credo@elixir-agent-tools
claude plugin install elixir-lsp@elixir-agent-toolsInstall tools in Codex
Add the marketplace once:
codex plugin marketplace add georgeguimaraes/elixir-agent-toolsRun only the commands for the checks you want:
codex plugin add mix-format@elixir-agent-tools
codex plugin add mix-compile@elixir-agent-tools
codex plugin add mix-credo@elixir-agent-toolsUse /hooks in Codex to review and trust the installed hook commands. Codex requires hook trust separately from plugin installation. See the Codex hooks documentation. The Expert LSP plugin remains Claude Code only.
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 (c) 2025 George Guimarães
Licensed under the Apache License, Version 2.0. See LICENSE.
{
"name": "elixir-agent-tools",
"owner": {
"name": "George Guimaraes"
},
"metadata": {
"description": "Elixir development skills with optional Mix checks and Expert language server integration",
"pluginRoot": "./plugins",
"version": "4.0.0"
},
"plugins": [
{
"name": "elixir-lsp",
"source": "./plugins/elixir-lsp",
"description": "Elixir Language Server integration for go-to-definition, references, and hover docs",
"category": "lsp",
"keywords": [
"elixir",
"lsp",
"language-server",
"intellisense",
"autocomplete"
]
},
{
"name": "elixir-dev",
"source": "./plugins/elixir-dev",
"description": "Development guidance for Elixir, Phoenix, Ecto, OTP, and Oban",
"category": "skills",
"keywords": [
"elixir",
"phoenix",
"ecto",
"otp",
"oban",
"liveview",
"genserver"
]
},
{
"name": "mix-compile",
"source": "./plugins/mix-compile",
"description": "Auto-compile Elixir files with warnings-as-errors after edits",
"category": "hooks",
"keywords": [
"elixir",
"mix",
"compile",
"warnings",
"errors"
]
},
{
"name": "mix-format",
"source": "./plugins/mix-format",
"description": "Auto-format Elixir files with mix format after edits",
"category": "hooks",
"keywords": [
"elixir",
"mix",
"format",
"formatting",
"code-style"
]
},
{
"name": "mix-credo",
"source": "./plugins/mix-credo",
"description": "Run Credo static analysis after editing Elixir files",
"category": "hooks",
"keywords": [
"elixir",
"mix",
"credo",
"linting",
"code-quality"
]
}
]
}Facts
- Kind
- Marketplace
- Repo
- georgeguimaraes/claude-code-elixir
- Group
- Uncategorized
- Marketplace name
- elixir-agent-tools
- Owner
- George Guimaraes
- License
- Apache-2.0
- Language
- Elixir
- Created
- 2025-12-26
- Forks
- 15
- Topics
- claude-code, ecto, elixir, marketplace, oban, otp, phoenix
- Plugins
- 5
- 1f/prompts.chatf/prompts.chatf.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.
- 2affaan-m/everything-claude-codeaffaan-m/everything-claude-codeThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
- 3obra/superpowersobra/superpowersAn agentic skills framework & software development methodology that works.
- 4anthropics/skillsanthropics/skillsPublic repository for Agent Skills
- 5anthropics/claude-codeanthropics/claude-codeClaude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.
- 6nextlevelbuilder/ui-ux-pro-max-skillnextlevelbuilder/ui-ux-pro-max-skillAn AI skill that provides design intelligence for building professional UI/UX across multiple platforms.