# Crystal driving the LLM?

**URL:** <https://forum.crystal-lang.org/t/crystal-driving-the-llm/8713>\
**Category:** Community\
**Created:** [February 15, 2026, 5:51pm UTC](https://forum.crystal-lang.org/t/crystal-driving-the-llm/8713 "2026-02-15T17:51:50Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Xen](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/xen/32/2288_2.png) [@Xen](https://forum.crystal-lang.org/u/Xen)\
**Post date:** [February 15, 2026, 5:51pm UTC](https://forum.crystal-lang.org/t/crystal-driving-the-llm/8713/1 "2026-02-15T17:51:50Z")

</div>

So is anyone doing interesting stuff by letting Crystal drive the LLM?

Having Gemini explain it to me, I realized that “agentic coding” is basically just giving the LLM some tools and letting it run in a feedback loop, and I guess that’s pretty much what’s driving the recent OpenClaw hoolabaloo. Was thinking it might be interesting to build a custom agent for something.

Not that Crystal is particularly suited for working with LLMs, but neither is a look of other languages that people are using to build LLM stuff (hello nodejs), so it might as well join the fun.

So are people actually using LLM for anything but writing code?

---

<div class="post-metadata">

**Author:** ![ralsina](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/ralsina/32/2139_2.png) [@ralsina](https://forum.crystal-lang.org/u/ralsina)\
**Post date:** [February 15, 2026, 7:26pm UTC](https://forum.crystal-lang.org/t/crystal-driving-the-llm/8713/2 "2026-02-15T19:26:53Z")

</div>

If you mean have the agent written in crystal? Sure, there are several!

Mine is [Crybot](https://crybot.ralsina.me) which among other things uses a tiny fraction of most nodejs agents. (And is _a lot_ worse in many other things)

---

<div class="post-metadata">

**Author:** ![Xen](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/xen/32/2288_2.png) [@Xen](https://forum.crystal-lang.org/u/Xen)\
**Post date:** [February 15, 2026, 9:28pm UTC](https://forum.crystal-lang.org/t/crystal-driving-the-llm/8713/3 "2026-02-15T21:28:27Z")

</div>

> [@ralsina](#):
>
> If you mean have the agent written in crystal?

I’m fishing for anything where Crystal drives the LLM in some way. From full-blown agents to “I use a Crystal wrapper to make Claude colorize the output of `ls`".

> [@ralsina](#):
>
> Mine is [Crybot](https://crybot.ralsina.me) which among other things uses a tiny fraction of most nodejs agents. (And is _a lot_ worse in many other things)

Whoha… But of course, OpenClaw isn’t the only show in town, so why not in Crystal? In what way is it worse than the competition?

---

<div class="post-metadata">

**Author:** ![ralsina](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/ralsina/32/2139_2.png) [@ralsina](https://forum.crystal-lang.org/u/ralsina)\
**Post date:** [February 16, 2026, 1:27pm UTC](https://forum.crystal-lang.org/t/crystal-driving-the-llm/8713/4 "2026-02-16T13:27:39Z")

</div>

It’s worse in so many things:

- The interaction is not great (you can’t cancel things yet)
- The terminal app sucks (I need to fix logging)
- The sandbox is … not great yet (it’s _conceptually great_)
- This is a (some) weekend project by one guy and not a 50-engineer-with-unlimited-sonnet project

Bugs and missing features galore!

---

<div class="post-metadata">

**Author:** ![Xen](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/xen/32/2288_2.png) [@Xen](https://forum.crystal-lang.org/u/Xen)\
**Post date:** [February 16, 2026, 8:36pm UTC](https://forum.crystal-lang.org/t/crystal-driving-the-llm/8713/5 "2026-02-16T20:36:05Z")

</div>

> [@ralsina](#):
>
> The interaction is not great (you can’t cancel things yet)

Moving fast, I see. 😉

> [@ralsina](#):
>
> This is a (some) weekend project by one guy and not a 50-engineer-with-unlimited-sonnet project

Well, I tried compiling it, and after adding the missing `markd` dependency, I ran into `Error: undefined method ‘instant’ for Time.class`.

---

<div class="post-metadata">

**Author:** ![ralsina](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/ralsina/32/2139_2.png) [@ralsina](https://forum.crystal-lang.org/u/ralsina)\
**Post date:** [February 16, 2026, 10:26pm UTC](https://forum.crystal-lang.org/t/crystal-driving-the-llm/8713/6 "2026-02-16T22:26:58Z")

</div>

You need a newer crystal

---

<div class="post-metadata">

**Author:** ![Xen](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/xen/32/2288_2.png) [@Xen](https://forum.crystal-lang.org/u/Xen)\
**Post date:** [February 16, 2026, 10:49pm UTC](https://forum.crystal-lang.org/t/crystal-driving-the-llm/8713/7 "2026-02-16T22:49:16Z")

</div>

Yeah, I figured, but you know, 1.19 is only a month old and not yet in Debian testing.

---

<div class="post-metadata">

**Author:** ![renich](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/renich/32/2137_2.png) [@renich](https://forum.crystal-lang.org/u/renich)\
**Post date:** [February 17, 2026, 5:23am UTC](https://forum.crystal-lang.org/t/crystal-driving-the-llm/8713/8 "2026-02-17T05:23:58Z")

</div>

crybot is getting better and better every day. Sadly, I got my antigravity subscription cancelled (probably for using opencalw) so I abandoned the project of integrating that with it.

---

<div class="post-metadata">

**Author:** ![Kritoke](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/kritoke/32/3133_2.png) [@Kritoke](https://forum.crystal-lang.org/u/Kritoke)\
**Post date:** [February 17, 2026, 11:24am UTC](https://forum.crystal-lang.org/t/crystal-driving-the-llm/8713/9 "2026-02-17T11:24:05Z")

</div>

Also latest version is not in FreeBSD, but the maintainer has some family stuff dealing with at the moment. So might be a month or two more. The maintainer asked if there are any patches to get it going, if I have sometime, I may take my hand at it. I don’t think there is significant changes to require a lot of other work to get going, I just need to get something local so I can test proper instead of my VPSes.

---

<div class="post-metadata">

**Author:** ![crimson-knight](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/crimson-knight/32/1643_2.png) [@crimson-knight](https://forum.crystal-lang.org/u/crimson-knight)\
**Post date:** [February 17, 2026, 11:51am UTC](https://forum.crystal-lang.org/t/crystal-driving-the-llm/8713/10 "2026-02-17T11:51:30Z")

</div>

Back when Auto GPT had first come out, I built Agent Amber as a CLI tool that was basically what OpenClaw is trying to be today.

Also, looks like OpenAI seized Anthropic’s bitterness about the whole topic and is now sponsoring that project in whole. So I thought that was fascinating.

But yeah, writing an agent harness in Crystal, totally doable. In fact, I think it’s the future, especially so that you can have super lightweight CPU driven programs that run the GPU heavy structure. Of applications, I think that’s a very real future that we’re working towards.

---

<div class="post-metadata">

**Author:** ![ralsina](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/ralsina/32/2139_2.png) [@ralsina](https://forum.crystal-lang.org/u/ralsina)\
**Post date:** [February 17, 2026, 1:42pm UTC](https://forum.crystal-lang.org/t/crystal-driving-the-llm/8713/11 "2026-02-17T13:42:12Z")

</div>

Ok, no more instant usage in the codebase, so crybot should build in 1.11 or later

---

<div class="post-metadata">

**Author:** ![Xen](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/xen/32/2288_2.png) [@Xen](https://forum.crystal-lang.org/u/Xen)\
**Post date:** [February 17, 2026, 8:59pm UTC](https://forum.crystal-lang.org/t/crystal-driving-the-llm/8713/12 "2026-02-17T20:59:31Z")

</div>

Cool

> [@ralsina](#):
>
> Ok, no more instant usage in the codebase, so crybot should build in 1.11 or later

Cool! Something to play with.
