GE

georgeguimaraes/elixir-agent-tools

Developer tools
182 stars 품질 70 트렌드 70

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:

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.

View this README on GitHub

추천 도구

다른 키워드를 입력하거나 필터를 제거해 보세요.

설치

npx skillfish add georgeguimaraes/elixir-agent-tools