this post was submitted on 26 May 2026
260 points (82.8% liked)

Selfhosted

50711 readers
960 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

  7. No low-effort posts. This is subjective and will largely be determined by the community member reports.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 3 years ago
MODERATORS
 

For the longest time, I've been trying to figure out a way to "survive" in this new AI age without having to fork over a ton of money just to keep up. I've tried using local models via Ollama, and while they definitely work to a degree, they're (unsurprisingly) not as good as the big model providers.

The local models tend to

  • Forget what they're doing
  • Struggle to break larger tasks into smaller ones
  • Lose focus easily
  • Have weaker coding performance
  • Drift over longer sessions

So to improve the reliability of fully local, smaller models (and to keep all my data local and in my own network), I created Coyote.

It's a local-first, batteries-included command line tool and runtime for building and running LLM workflows locally. It's model agnostic and supports things like

  • Agents and agent delegation
  • Roles/personas
  • MCP Servers
  • RAG
  • Custom tools
  • Macros
  • Workflow Scripting

A lot of the features it supports are specifically designed to compensate for weaknesses in smaller local models. For example:

  • Auto continuation to keep pushing models to completion instead of stopping halfway through problems
  • Parallel agent delegation so tasks can be split into smaller, focused scopes
  • Workflow-based execution ("If this, do that") for building more reliable and repeatable automations

It also supports the major cloud providers if you want them (which definitely helped while testing πŸ˜„), but my long-term goal is simple:

Get as close as possible to Claude Code-style reliability using fully local models.

I'm always open to feedback, questions, or ideas.

Repo: https://github.com/Dark-Alex-17/coyote

top 50 comments
sorted by: hot top controversial new old
[–] RobotToaster@mander.xyz 92 points 3 days ago (2 children)

Naming an AI tool after a god of mischief seems like tempting the fates. πŸ˜†

[–] Natanox@discuss.tchncs.de 19 points 3 days ago (1 children)

I can respect the self-awareness though.

[–] Einskjaldi@lemmy.world 6 points 2 days ago

Can it be used with horses?

load more comments (1 replies)
[–] helix@feddit.org 75 points 3 days ago (1 children)

Looks cool! I really like some aspects of LLMs but cloud hosting always turns me off.

You might want to rethink the name though as Loki already is a well known log server: https://github.com/grafana/loki

[–] aclarke@lemmy.world 38 points 3 days ago (5 children)

Yeah... πŸ˜… I originally named it Loki because, well...if you leave LLMs unsupervised they just create mischief. Any ideas of a good rename? I've gotten this comment before and I just couldn't think of anything good.

[–] minticecream@lemmy.world 48 points 3 days ago (3 children)

Maybe Coyote? Coyote is the trickster spirit in a lot of Native American mythologies.

[–] aclarke@lemmy.world 22 points 3 days ago (2 children)

Ooh I like Coyote! That's definitely in the running now. Not to mention that's really a really cool allusion to Native American mythology!

[–] helix@feddit.org 11 points 3 days ago* (last edited 3 days ago) (4 children)

Or Coyode (mixture between code and coyote, could be written co[yo]de for extra yo). Only has 4 duckduckgo results so easily searchable and distinguishable.

ChatGPT generated logo exampleco[yo]de logo: coyote with a hoodie and the aforementioned spelling

load more comments (4 replies)
[–] MalReynolds@slrpnk.net 5 points 3 days ago* (last edited 3 days ago)

Not to mention road-runners (humans) and ACME (OpenAi, Anthropic etc.) extending the metaphor in a different direction... Wile.E. (coyote, suupergenius) might be another name option.

Ahh, ninja'd, I'll leave it as another vote.

[–] aclarke@lemmy.world 6 points 3 days ago* (last edited 1 day ago) (1 children)

Do you have a GitHub and would you be willing to share it with me so I could credit you with the name? No worries if not, I can just link to your Lemmy profile instead of you prefer. I just don't want to change it without giving credit.

[–] minticecream@lemmy.world 3 points 2 days ago

Sure! My GitHub is github.com/erichury/ I'm just barely getting into software development, so It'd be nice to have some love on my GitHub page to show off :).

load more comments (1 replies)
[–] Einskjaldi@lemmy.world 2 points 2 days ago

Weapons like Gungnir are popular names, Lævateinn is a little hard to spell though.

[–] panda_abyss@lemmy.ca 5 points 3 days ago

I feel like that well describes a border collie.

Wants to do stuff, but if you don’t attend they’ll find stuff to do.

load more comments (2 replies)
[–] aclarke@lemmy.world 5 points 2 days ago* (last edited 2 days ago)

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!

[–] minfapper@piefed.social 26 points 3 days ago (3 children)

I'm a little confused about this thing's use case.

What does it do differently/better than OpenCode ?

[–] aclarke@lemmy.world 18 points 3 days ago

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)
[–] naught@sh.itjust.works 8 points 3 days ago (3 children)

Opencode isn't very fun to set up with local LLMs and I've had issues with tool calling, but it's very doable! That said, OpenCode is my go-to, absolutely love it compared to all alternatives I've tried

[–] aclarke@lemmy.world 6 points 3 days ago

When it comes to writing code, OpenCode is my go-to as well. It's my ultimate benchmark for how well optimized and reliable I can make local models function in Loki.

[–] Evotech@lemmy.world 3 points 3 days ago (3 children)

Opencode needs like 10k tokens just to get started

[–] vegetaaaaaaa@lemmy.world 1 points 2 days ago

That's only if you use the default Build agent with the built-in prompt (https://github.com/anomalyco/opencode/blob/dev/packages/opencode/src/session/prompt/default.txt), and yes it is quite large.

It's trivial to create custom agents in opencode.json with custom prompts, tools, whatever..

For example I have created a Personal agent which handles menial stuff such as searching/editing my notes, appointments, tasks... with a restricted set of tools and skills.

The single most important change I made is only allowing the local provider in the config, which disables all cloud providers. IMHO this should be the default but I'm not complaining. It's the best open-source harness I've tried so far. I want to try pi.dev someday (quite minimal, needs a good amount of setup and tuning).

I also argue that some local models actually behave much better with a semi-large system prompt (qwen 3.6 for example tends to lose itself in reasoning if you only use the default You are a helpful assistant system prompt and a basic Say hi user prompt - opencode-like large system prompts fixes this; even if you lose some time for initial prompt loading)

load more comments (2 replies)
[–] alehc@slrpnk.net 2 points 3 days ago (1 children)

Haven't configured much beyond this but what's wrong with ollama launch opencode <model>? Haven't had an issue yet.

load more comments (1 replies)
[–] Meron35@lemmy.world 4 points 3 days ago

Ditto. I don't see how this is different/better from existing harnesses such as Opencode, Pi, and even "commercial" open source offerings such as the CLIs for Codex, Copilot, and Gemini, especially once tricked out with plugins and extensions.

[–] CallMeAl@piefed.zip 29 points 3 days ago* (last edited 3 days ago) (1 children)

I like that you are so focused on local models but I can't find any info on setting up local models in the clients setup https://github.com/Dark-Alex-17/loki/wiki/Clients

What am I missing?

Edit: well it seems this post is an entirely fictional origin story. Here is the first time OP posted about his project 6 months ago https://piefed.zip/c/rust/p/663115/loki-an-all-in-one-batteries-included-llm-cli

[–] aclarke@lemmy.world 10 points 3 days ago* (last edited 3 days ago) (7 children)

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

load more comments (7 replies)
[–] CIA_chatbot@lemmy.world 23 points 3 days ago (2 children)

Just an fyi, Loki is also an extremely popular logging system by Grafana, might want a rename if you don’t want to deal with people not finding your project due to having a larger project named the same thing

[–] Hawk@lemmy.dbzer0.com 2 points 2 days ago

This was my first thought

[–] boonhet@sopuli.xyz 2 points 2 days ago

Loki, check my Loki logs!

[–] corbindallas@fedinsfw.app 9 points 3 days ago (1 children)

did you even try pi or opencode?

[–] qarbone@lemmy.world 20 points 3 days ago (2 children)

I mean, maybe they just wanted to build something?

[–] RickyRigatoni@piefed.zip 10 points 3 days ago (1 children)

Does it have built-in protections so it doesn't randomly decide to delete every file it has permissions to?

[–] aclarke@lemmy.world 8 points 3 days ago (1 children)

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.

[–] RickyRigatoni@piefed.zip 14 points 3 days ago (1 children)

As usual, leave it to the random developers on the internet to put more care and thought into something than the multibillion dollar companies.

[–] boonhet@sopuli.xyz 1 points 2 days ago

The multibillion dollar companies do this too but people find the permission prompts annoying and use the full dumbass mode instead lol

[–] silver@das-eck.haus 2 points 2 days ago

Looks sick, gonna check this out

[–] napkin2020@sh.itjust.works 2 points 2 days ago

Tried building something like this myself and it was surprisingly complicated. Sounds exactly what I needed!

[–] nimble@lemmy.blahaj.zone 7 points 3 days ago (1 children)

I'm confused. You say in post title you don't want to send code to the cloud but the image you attached shows openai gpt4o. So what's the deal?

load more comments (1 replies)
[–] Blue_Morpho@lemmy.world 7 points 3 days ago (1 children)

What local model are you using?

[–] aclarke@lemmy.world 14 points 3 days ago (1 children)

I'm using a ton of different ones but the main ones I use daily are

  • gemma4:26b
  • deepseek-coder
  • deepseek-r1:32b
  • devstral:24b
  • granite-code:34b
  • openthinker:latest
  • phi4:latest
  • qwen3:30b
  • mixtral:8x22b

I'm also going to use this opportunity to plug an amazing project to help figure out which models will work well on my hardware: https://github.com/AlexsJones/llmfit Is amazing!

[–] Blue_Morpho@lemmy.world 7 points 3 days ago (1 children)

Isn't it a huge delay to swap out to a different ~30b model every few minutes depending on the use case?

[–] aclarke@lemmy.world 5 points 3 days ago

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.

[–] homesweethomeMrL@lemmy.world 6 points 3 days ago (1 children)

Very cool idea! Going with the Coyote theme maybe name it Wile E?

Certified Genius: Have Brain, Will Travel

[–] sturmblast@lemmy.world 1 points 2 days ago

I got a project brewing myself, looks good!

load more comments
view more: next β€Ί