bradley

bradley

Claude - Opinionated Claude Code integration for Elixir

I’ve been working with Claude Code extensively and absolutely love it. However, I’ve come across the challenge of managing configuration across multiple projects. For example, some projects I want hooks, other projects I don’t. There are a few projects I want to share hooks. And I just found that reusing hooks in general was something that was messy.

Additionally, I see a lot more potential for managing Claude from the Elixir side and deeply integrating it into the Elixir ecosystem. For example, imagine being able to pull in Usage Rules, which is an awesome library by Zach Daniel and all other configuration that is necessary for Claude to work effectively. Or libraries can define their own sub-agents. Or libraries can even define their own hooks that should be hooked into Claude Code. All of this, I think, can be done with this library, though the support still needs to be added.

How It Works

You use Claude as the library name by adding it to your deps and then running mix claude.install as a mix task, and it will automatically add all of the hooks that are needed for Claude to operate effectively and within bounds. There are only a few hooks right now, but I want to add a lot more, in addition to sub-agents being able to extend hooks with your own custom hooks and more.

Vision

The goal is to create a seamless integration between Claude Code and the Elixir ecosystem, allowing:

  • Project-specific configuration management - Different hook configurations per project
  • Shared hook libraries - Reusable hooks across multiple projects
  • Deep ecosystem integration - Libraries can define their own Claude-specific rules and behaviors
  • Extensible sub-agent system - Libraries can register their own specialized agents
  • Automatic setup - One command to configure Claude Code optimally for your Elixir project

Current Status

This is early-stage development with basic hook management implemented. Much more functionality is planned, including better integration with existing tools like Usage Rules and expanded sub-agent capabilities.

Let me know what you think. I’d love to hear your feedback!

Most Liked

bradley

bradley

Big update, I’ve completely migrated the repo to the new claude marketplace structure. My previous approach was novel when released but is now irrelevant with plugins. I considered archiving the repo and creating a new one but since the whole point of this repo was to make it easy to do elixir dev with claude code, I felt the migration with the current repo was appropriate.

Contributions are welcome!

bradley

bradley

Hi everyone,

I just released v0.3 which now lets you use any mix task or generic command as a hook. Check out the full details in the hooks cheatsheet.

This release also includes a few quality-of-life improvements:

  • Tidewave now auto-installs if Phoenix is detected
  • Updated docs with new guides and cheatsheets
  • Hooks are now more robust and reliable

Happy hook building!

bradley

bradley

I just released v0.2.0. With this new update, I’ve added:

  • Subagent configuration w/ automatic usage rules integration
  • An extensible hook system so you can write your own hooks, in elixir!
  • A new meta subagent following best practices to make it easier to create claude code subagents
  • Automatically pull in usage docs into your CLAUDE.md file following best practices
  • A new mix claude.install igniter task

You can get started with mix igniter.install claude. There’s still so much more to add to scale up claude code’s capabilities and I’m excited to explore that more. See this link below for a full list of features/capabilities.

bradley

bradley

I just released v0.4. This release adds:

  • New custom commands. For example you can run /mix:deps-upgrade phoenix_live_view phoenix to fully upgrade phoenix and liveview
  • Adds nested memories so you can easily manage subdirectory CLAUDE.md’s. This enables injecting relevant context at the directory level as claude traverses and reads from those directories. Try out /memory:nested-add --auto command to auto populate those directories and configure your .claude.exs
  • Configures usage rules to pull all context into the context window at once to help make CLAUDE more informed about your dependencies best practices
  • Adds experimental webhooks for hook reporting
  • Adds auto_install_deps? as a config option to force fetching deps. This is useful for worktree development so you don’t have to remember to manually fetch deps prior
  • Bug fixes and some minor improvments

Would love to hear your feedback if you have any!

automatizai420

automatizai420

beauty, im programer fulltime with claude code, and for elixir is very weird see something like that, appreciate it! im searching for prp`s for elixir , what do you think about that?

Where Next?

Popular in Announcing Top

dimamik
Vault is a lightweight Elixir library for immutable data storage within a process subtree. Due to Elixir’s actor model nature, it’s comm...
New
zachdaniel
:smiling_face_with_sunglasses: New package usage_rules released! Just place a usage-rules.md file in your package and users can sync it t...
#ai
New
kzemek
I’ve recently released v0.2.0 of my Python interop library, Snex. This version rolls up all work-in-progress improvements that have been...
New
metehan
exterm_ai runs a real PTY in Elixir and exposes it in the browser using xterm.js. Previously I shared exterm library without AI this one ...
#ai
New
Zurga
Subscribe to events emitted by EctoWatch, and cache the changed row. Use the sync/3 function to update an in-memory row or list of rows u...
New
restlessronin
The repo is at GitHub - cyberchitta/openai_ex: Community maintained Elixir library for OpenAI API. Docs are at OpenaiEx User Guide — ope...
New
hauleth
It is library created by me and @abc3. It is simple client for DuckDB, but with small twist when compared with other libraries out there ...
New
lud
Hello! I’ve been working on the Oaskit library for a while now, and just released a first version. Since I’ve built JSV I wanted to be ...
New
waseigo
I saw this LinkedIn post: *Can your programming language do this? This is a macro in Clojure called `dotrace`. When you surround a pie...
New
rodloboz
Sifter is a a query filtering library for Ecto. It lets frontend apps send human-readable query strings like: "elixir phoenix status:pu...
New

Other popular topics Top

Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
quazar
How to set Jason to encode all fields in ecto schema, I don’t care about security and implementing only is taking long list of attributes...
New
sacepums
Hey guys. I'm new to elixir and im really stocked about it. But I ran into a bit of problem - I need to convert a date sting, for examp...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
lk-geimfari
What is most correct way to open, read and parse JSON file with poison? For example if we have example.json file in root of some projec...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New

We're in Beta

About us Mission Statement