I'd like to introduce rocco, a chat bot written in Roc! :smiley:
@rocco help
Hi, I'm @rocco, a Roc chat bot!
Subcommands: echo
, help
, issue
, pr
See https://github.com/JanCVanB/rocco :smile:
Currently, rocco reads the second word of any message mentioning them, and if it's one of those 4 words above it responds accordingly. If not, it returns some kind of error message instead.
Theoretically it could do almost anything, and I welcome your contributions to make it do whatever you want!
@Anton suggested we could add some way to create a new issue from the last (few) message(s), which would definitely be useful
You can also private message it, though, so text-based games could maybe also work, haha
More broadly, it could be an easy way for us to run text I/O prototypes of our apps in the cloud without having to set up fresh cloud deployments for each (since there's no limit to how many subcommands it could have)
Future aside, I really enjoyed containerizing a Roc app & deploying it - very fun to feel it interoperate with a different category of useful tech
@rocco issue 4064 was one of the surprises I ran into, but @Anton helped me figure out a lot of CI/CD stuff - thank you, @Anton !!
https://github.com/roc-lang/roc/issues/4064
(very minor issue, though, and looking to make that irrelevant by using the Json
library soon)
@rocco echo that's all! :tada:
that's all! :tada:
Awesome!
@rocco echo @rocco echo @rocco echo
@rocco echo @rocco echo @rocco echo @rocco echo
@rocco echo @rocco echo @rocco echo
@rocco echo Cmon' do the recursion
Cmon' do the recursion
(deleted)
(deleted)
@rocco echo @Zeljko Nesic What, do you just expect me to bark like a dog at your command?
@Zeljko Nesic What, do you just expect me to bark like a dog at your command?
@rocco echo oh wait…
oh wait…
@rocco echo Woof
haha did rocco put Zeljko in a block list?
(deleted)
naughty boy
I love this idea so much! Congrats @JanCVanB !
How hard would it be to replace the go webserver with a custom "chatbot" platform (written in rust)? Then it would be "all roc"
Given how simple the go web server is, shouldn't be hard. If you do a synchronous rust web server platform, you don't have to do anything too complex around the ffi.
Async is still messy on the other hand.
Also, roc glue
should help with any type conversions if you want to pass around more structured request information.
*simple for having to deal with a platform and ffi and such. Obviously, still requires working on a platform and potentially dubious bugs.
@Jared is this something you want to try and do? If not, might make a good example for a beginner session on platform development. I am thinking of leading one of those at some point
I probably won't be tackling it in the immediate term, but I'd love to see a recording of that session!
Last updated: Jul 06 2025 at 12:14 UTC