54
63
aclarke

@lemmy.world

aclarke 55 points 3 years ago

Haven't told this to anyone yet, but you did say "half baked"!

Similar to the idea behind k9s, I've been building a rust-based TUI to manage all your standard Servarrs. I'm calling it Managarr.

I've been working on it since January and I'm almost done with just the Radarr support, allowing you to add/edit/remove movies, indexers, collections, root folders, etc, view logs, tasks, updates, things like that. And you can view specific movie info and do manual searches, trigger searches, add/remove tags, etc.

The only big things left are

  • Finishing the UI for editing indexers and adding them (to support use cases without Prowlarr)
  • Support modifying quality definitions
  • Add sorting functionalities to the library and collections tables
  • Building mock servers for Transmission and Nzbget so I can create a docker container for users to test and play with before they install anything.

Here's a few screenshots:

Once I'm back to not being constantly busy with work, I'm hoping to push this thing across the finish line and get it into alpha and implement all the usual stuff like license, contribution guidelines, CI/CD, release pipelines, adding it to the standard package managers, etc.

path: 0 4776383, hotness: undefined, score: 55, children: 5
aclarke 38 points 5 months ago

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.

path: 0 23938892 23939393, hotness: undefined, score: 38, children: 15
aclarke 23 points 5 months ago

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!

path: 0 23938892 23939393 23939621 23939959, hotness: undefined, score: 23, children: 6
aclarke 23 points 8 months ago

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.

path: 0 21998694 21999402 21999558, hotness: undefined, score: 23, children: 0
aclarke 20 points 2 years ago

To answer your question, I built it for a few reasons:

  • I wanted to learn Rust, so I used this project to do that
  • I really love TUI's and I pretty much live in my command line at work, and since I already automate everything I can to make my work life easier, I wanted to be able to do the same with my homelab
  • I think it looks cool
  • For fun. If no one else ever gets use out of it, that's okay! I just really enjoyed building it and I'm excited to build out more of it.

But also: Why not?

So really, you would only use this if you like TUIs or want a command line tool for interacting with your Servarrs. If you have no use for it, that's totally fine too!

As for container support: if you mean if there's a docker version, yes there is. If that's not what you meant, then my bad!

path: 0 13967614 13968131, hotness: undefined, score: 20, children: 4
aclarke 19 points 5 months 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)
path: 0 23941484 23943282, hotness: undefined, score: 19, children: 0
aclarke 16 points 5 months ago

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!

path: 0 23938967 23939474, hotness: undefined, score: 16, children: 2
aclarke 15 points 8 months ago

They're encrypted with a PSK encrypted with either AES128 or AES256. It's built into the Meshtastic firmware so that's not something I have to handle directly, thankfully!

path: 0 21999427 21999540, hotness: undefined, score: 15, children: 0
aclarke 11 points 5 months ago

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

path: 0 23939065 23939369, hotness: undefined, score: 11, children: 8
aclarke 10 points 2 years ago

You're the first person to catch the reference! Sadly, no I'm not. But I was a prolific PSP modder as a kid so I knew his name and was very familiar with him. So, in my adult life, since he had such a big impact on me, my username is made after him! My real name is Alex so it just kind of worked.

path: 0 13194295 13195901, hotness: undefined, score: 10, children: 2
aclarke 10 points 5 months ago

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.

path: 0 23939346 23939790, hotness: undefined, score: 10, children: 2
aclarke 10 points 3 years ago

Man was put in air jail.

path: 0 5093694, hotness: undefined, score: 10, children: 0
aclarke 10 points 8 months ago

I started thinking about using the LoRa protocol directly for this too! My biggest concern is overwhelming the mesh. But I also had no idea what protocol would work so thanks for mentioning PPP. I haven't thought about that since I was a kid! That would be really cool though!

Maybe just for a POC someday?

Also: how are you liking MeshCore? Did you have to pay for a license to use it? How expensive is the mesh you're building? That is something I've started thinking about too for this exact reason πŸ˜‚

path: 0 21999434 21999513, hotness: undefined, score: 10, children: 1
aclarke 7 points 5 months 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.

path: 0 23941484 23942818 23943272, hotness: undefined, score: 7, children: 0
aclarke 7 points 8 months ago

Thank you! ☺️

path: 0 21998694 21999255, hotness: undefined, score: 7, children: 0
aclarke 7 points 8 months ago

Oh I'm looking into this IMMEDIATELY! πŸ˜‚ That's awesome!! Does it also form a mesh?

path: 0 22001418 22001456, hotness: undefined, score: 7, children: 1
aclarke 6 points 5 months ago

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.

path: 0 23938892 23939393 23939621 23945734, hotness: undefined, score: 6, children: 1
aclarke 6 points 5 months 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.

path: 0 23938967 23939474 23939554 23939723, hotness: undefined, score: 6, children: 0
aclarke 6 points 2 years ago

This is what I get for typing with a cat paw on my keyboard πŸ˜‚ thanks for pointing that out! I updated the link!

path: 0 13215753 13216419, hotness: undefined, score: 6, children: 0
aclarke 6 points 2 years ago

To answer your question, I built it for a few reasons:

  • I wanted to learn Rust, so I used this project to do that
  • I really love TUI's and I pretty much live in my command line at work, and since I already automate everything I can to make my work life easier, I wanted to be able to do the same with my homelab
  • I think it looks cool
  • For fun. If no one else ever gets use out of it, that's okay! I just really enjoyed building it and I'm excited to build out more of it.

But also: Why not? ☺️

So really, you would only use this if you like TUIs or want a command line tool for interacting with your Servarrs. If you have no use for it, that's totally fine too!

The one actual use I've found people say they use it for is people who don't want to expose the web interface to interact with their Servarrs and only interact via SSH. Then they like to use this instead.

path: 0 15384342 15392246, hotness: undefined, score: 6, children: 0

thanks for using Leebra!

go to feed...