Dark-Alex-17

u/aclarke@lemmy.world
50 posts · 60 comments

Recent posts

Recent comments

By popular demand, Loki is now Coyote!

I've just released a new version with the full rename.


Thanks to @minticecream for the suggestion!


All the docs are updated except for the screenshots and gifs. I'll update those tomorrow (since they don't do any harm right now and don't require another release to be updated).

For almost a year I've been using Loki as the name but it never really satisfied me. Not to mention it's already the name of an extremely popular logging system by Grafana, which makes Loki hard to discover.

Got some great feedback and the rename was born! Thanks again everyone who gave suggestions and for all the positive feedback!

OpenCode is specific to coding workflows. Loki is built to be a general LLM runtine/workflow engine for any problem domain, not just code. An example use I have for it is a cron job that runs at boot to

  • See if the cause of the reboot was power loss (LLM)
  • If it was, check all services to ensure they're up and running (tool)
  • If a service isn't up, then use an LLM to see what happened (LLM)
  • Try out the usual methods for getting that service started (tool + RAG)
  • If none of those work, try figuring out what's ultimately wrong (LLM)
  • Send me a ntfy notification on my phone to let me know what service isn't running, and the suspected cause with some context (tool)

Yes it does. By default, any of the execute_command or fs_write/fs_patch/etc. tools all have guards around them that prompt for user confirmation before doing things. They can be disabled via the AUTO_APPROVE environment variable if necessary (like they are when using the sisyphus agent). For bash tools, I've included functions that can help do this when you write your own tools. For Python tools, you can use the usual input methods.

Unfortunately, yes. It's one reason I'm trying to figure out a good mechanism to maybe do something like multiple ollama hosts. So like: you can specify what model to use specifically in an agent. But if an agent delegates to a sub-agent, it unloads that model and loads the new one. I'm trying to figure out if there's a way to "alternate" between multiple hosts (say, ollama running locally and one running on your server), so that when a switch happens, it does it on the secondary host while also looking ahead to see what needs to be switched, if anything, on the primary host.

It supports multiple Ollama hosts right now as-is so what I've honestly been doing for the time being is specify which model on which host each agent uses so there's only loading of one model at the beginning of a session. Then there's no unloading/loading/etc. The other thing I've been trying is to see how small I can get the models to be without losing performance. While the tricks implemented in Loki help dramatically, I know there's still a lot more I can do to improve it further.

So actually, this was the original purpose of it. But all the help I tried to get on it didn't really have much interest in doing anything outside of the usual big model providers, so I tried advertising a more general use case to attract more input. I can't deny that agnostic support for even the big providers is helpful when you're trying to stay current with the rapid advances in LLMs.

After that, I kind of gave up on getting feedback on local-first models. So, instead, I just dove in head-first the way I wanted;Trying new things, building new agents to try and rival Claude Code, adding features as I found them useful and necessary to improve that reliability, etc., and iterating. Then, with the most recent release on Friday, I had done so many changes and improvements specifically for local models that I thought I finally had a strong enough tool to maybe pique enough people's interest to get some feedback and input. 🙂

Oh, and the config example shows how to add Ollama models here

That's exactly the reason why I made it only work with user-defined aliases. That way it forces you to think of how to cover the most ground command-wise without needing anything interactive or too much response data. It's slow but it's functional and that's really all I wanted from it. I can have scripts on my server that fix things and just invoke them with this.