ship alpaca, newelle LLM tools, to desktop devices

unfortunately they don't cross compile (yet)

newelle is my favored app atm, will likely remove one or the other after daily driving a bit
This commit is contained in:
2025-07-24 03:29:45 +00:00
parent d54eff32a7
commit c2ab6748c4
4 changed files with 51 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
# alpaca: ollama llm client
# - super simple, easy UI
# - doesn't seem to do any prompt tuning;
# inherits all the pathologies of the underlying model (e.g. makes up citations)
#
# it creates a config dir, `~/.config/com.jeffser.Alpaca`, but apparently empty
#
# TODO: configure ollama connection details statically
{ ... }:
{
sane.programs.alpaca = {
sandbox.net = "all"; # maybe only needs wireguard, actually
sandbox.whitelistWayland = true;
sandbox.mesaCacheDir = ".cache/com.jeffser.Alpaca/mesa";
sandbox.whitelistDbus.user.own = [ "com.jeffser.Alpaca" ];
sandbox.whitelistPortal = [
"OpenURI"
];
sandbox.whitelistSendNotifications = true;
persist.byStore.ephemeral = [
".cache/com.jeffser.Alpaca" #< ?
".local/share/com.jeffser.Alpaca" #< chats? also downloaded ollama data
];
};
}

View File

@@ -401,6 +401,7 @@ in
"pcGameApps"
"pcTuiApps"
####
"alpaca" # ollama/LLM client
"audacity"
"brave" # for the integrated wallet -- as a backup
# "cantata" # music player (mpd frontend)
@@ -432,6 +433,7 @@ in
# "makemkv" # x86-only
# "monero-gui" # x86-only
"mumble"
"newelle" # ollama/LLM client
# "nheko" # Matrix chat client
"nicotine-plus" # soulseek client
# "obsidian"

View File

@@ -5,6 +5,7 @@
./abaddon.nix
./aerc.nix
./alacritty.nix
./alpaca.nix
./alsa-ucm-conf
./animatch.nix
./assorted.nix
@@ -137,6 +138,7 @@
./nautilus.nix
./neovim
./networkmanager_dmenu
./newelle.nix
./newsflash.nix
./nheko.nix
./nicotine-plus.nix

View File

@@ -0,0 +1,20 @@
# newelle: ollama llm client
# - does some extra prompt tuning beyond ollama's defaults,
# to decrease pathologies
# - intelligent formatting of model output (e.g. latex, markdown)
#
# TODO: configure ollama connection details statically
{ ... }:
{
sane.programs.newelle = {
sandbox.net = "all"; # maybe only needs wireguard, actually
sandbox.whitelistWayland = true;
sandbox.mesaCacheDir = ".cache/Newelle/mesa";
persist.byStore.ephemeral = [
".cache/Newelle" # extensions
".config/Newelle" # chat logs
];
};
}