· 3 min read
Archives

Imp

IT’S HERE!

This is Imp: declarative self-Improving language model programming in Elixir.

It’s a port of DSPy to the BEAM ecosystem. That means you get signatures, optimizers, agent loops, retrieval and more, all with the reliability and concurrency of the actor model and the elegance of Elixir.

This started as a test of the models’ ability to port things across languages, but it’s become much more advanced, with Optimize-Anything support and full-fledged MCP and ACP adapters as well. Basically a whole kit of building blocks for anything you want to make.

If you’re interested in the DSPy paradigm, Elixir, text optimization, or weird code ideas in general, give it a look and tell me what you think!

Imp is experimental, it’s 0.5.0, it probably needs some expensive benchmarking to prove its optimizers really work. I’d love to get the kinks worked out before doing that haha. Imp is open source, MIT licensed, and hopefully easy to read. Given enough agents, all bugs are shallow, right?

Now, without further ado:

Imp!

A black silhouette of a horned demon-like figure with a beard, sitting and looking at a hand of playing cards through a magnifying glass. Behind him, a smaller, imp-like creature with horns and a long tail sits on a rope, looking surprised with its hands raised.

Imp was built during DSPy 3.2-3.3, some more recent things like the Flex module and Jev support haven’t made it in yet. I expect I’ll bring it up to parity by the time they release 3.5 LOL.

Issues and PRs welcome, or post about it on here and tag me to complain haha

Shout out all the real geniuses that inspired this and made it possible, including @lateinteraction @a1zhang @dbreunig @josevalim @joeerl @anselm_io and so many more. Your work has changed me and improved my life, and I hope that I can pay that forward in some small way

Imp is partly a project to see how ambitious of grand visions I could Make with just me and A couple of agent subscriptions and a lot of flow state.

It turns out the cyberpsychosis is the fun part. The other 80% is in the cleanup, bug finding, benchmarking, and writing, unwriting, and rewriting again, the freaking documentation. I hope somebody reads it 😂

View original