I want to combine 2 things that I love more than anything.
- Crystal
- AI
Not necessarily in that order.
I vibe code with Crystal all the time, it’s been perfect because of the type system, but the syntax is clean and makes it easy for Claude to mimic the patterns within the files easily. The rate of writing Ruby by accident from the models has also gone down a lot. I’m very grateful for these advancements!
So I decided to do 2 things, that are only related by Crystal and AI.
- I forked
shardsand I added some tooling to allow writing documentation for agents within a library. So now you can write docs for your peferred AI coding assistant and then pass along the skills, subagents and MCPs for that library. Theshards-alphaproject is what I called it so that there is an easy but different command from the realshards, this way you can try it out without disrupting the normal shards installation. This is just for testing the idea out as my workflow improves. I think others will enjoy the level of plug-and-play that I have achieved with this.
If you want to try it:
# Via Homebrew
brew tap crimson-knight/shards
brew install shards-alpha
# -- OR --
# Install from source
git clone https://github.com/crimson-knight/shards.git
cd shards
crystal build src/shards.cr -o bin/shards-alpha --release
# Copy bin/shards-alpha somewhere on your PATH or symlink it into your /local/usr/bin
Then in your project:
# Set up Claude Code with compliance skills + agents
shards-alpha assistant init
# Use it like normal shards — everything is compatible
shards-alpha install
- I went really crazy and decided to see if I could create a ralph-loop and get Claude Opus 4.6 to figure out how to implement WASM 3.0 as a compile target with garbage collection.
And it works! There’s support for all kinds of features that are part of the spec, but I’m still working through linking all of the C libraries that we depend on being linked/compiled into the WASM target. This took over six hours while running on a loop and at one point it gave up because it couldn’t figure out the path it was on. I had it think from a more first-principles perspective about it’s original architectural decisions and then it realized it had made an assumption too briefly–found the fig that worked that unlocked GC support–and it chugged away until done from there.
You can check it out here Implement WebAssembly (wasm32-wasi) as a compile target by crimson-knight · Pull Request #2 · crimson-knight/crystal · GitHub
My plan is to experiment with building full stack apps with Crystal so that I can create a mono repo, and serve the web API and the entire browser app from Crystal+Amber.
What a world we live in. This is just so cool.
