feat: cleaned up ai tooling

This commit is contained in:
Leyla Becker 2026-04-07 20:24:15 -05:00
parent 4eb36ddfc7
commit 0ca99c1835
19 changed files with 48 additions and 4668 deletions

View file

@ -19,7 +19,6 @@
home.packages = lib.lists.optionals userConfig.isDesktopUser (
with pkgs; [
gnomeExtensions.dash-to-panel
claude-code
friture
]
);
@ -77,7 +76,15 @@
libreoffice.enable = true;
noita-entangled-worlds.enable = true;
claude-code.enable = true;
opencode.enable = true;
# TODO: enable defiant provider once emergent is on the same tailnet
# opencode.settings.provider.defiant = {
# npm = "@ai-sdk/openai-compatible";
# name = "Ollama (defiant)";
# options.baseURL = "http://defiant:11434/v1";
# models."gpt-oss:120b".name = "GPT-OSS 120B";
# };
e621-downloader.enable = true;

View file

@ -33,7 +33,15 @@
openrgb.enable = hardware.openRGB.enable;
via.enable = hardware.viaKeyboard.enable;
claude-code.enable = true;
opencode.enable = true;
opencode = {
enable = true;
settings.provider.defiant = {
npm = "@ai-sdk/openai-compatible";
name = "Ollama (defiant)";
options.baseURL = "http://defiant:11434/v1";
models."gpt-oss:120b".name = "GPT-OSS 120B";
};
};
davinci-resolve.enable = hardware.graphicsAcceleration.enable;
mfoc.enable = true;
})

View file

@ -7,7 +7,6 @@
...
}: let
nix-development-enabled = osConfig.host.nix-development.enable;
ai-tooling-enabled = true;
in {
config = lib.mkIf config.user.isDesktopUser {
programs = {
@ -75,47 +74,6 @@
# arduino development
platformIO.enable = false;
# claude development
claudeDev = lib.mkIf ai-tooling-enabled {
enable = false;
mcp = {
nixos = {
enable = true;
autoApprove = {
nixos_search = true;
nixos_info = true;
home_manager_search = true;
home_manager_info = true;
darwin_search = true;
darwin_info = true;
nixos_flakes_search = true;
};
};
eslint = {
enable = true;
autoApprove = {
lint-files = true;
};
};
vitest = {
enable = true;
autoApprove = {
list_tests = true;
run_tests = true;
analyze_coverage = true;
set_project_root = true;
};
};
sleep = {
enable = true;
timeout = 18000; # 5 hours to match claude codes timeout
autoApprove = {
sleep = true;
};
};
};
};
# misc extensions
evenBetterToml.enable = true;
direnv.enable = config.programs.direnv.enable;

View file

@ -118,6 +118,9 @@
# leave them alone so NM-wait-online doesn't time out waiting for them.
networking.networkmanager.unmanaged = ["bond0" "wg0" "eno1" "eno2"];
# Only expose ollama over tailscale
networking.firewall.interfaces."tailscale0".allowedTCPPorts = [11434];
systemd.network = {
enable = true;
@ -260,10 +263,13 @@
};
};
# ollama = {
# enable = true;
# exposePort = true;
# };
ollama = {
enable = true;
host = "0.0.0.0";
loadModels = [
"gpt-oss:120b"
];
};
tailscale = {
enable = true;
authKeyFile = config.sops.secrets."vpn-keys/tailscale-authkey/defiant".path;

View file

@ -45,7 +45,6 @@
services.desktopManager.gnome.enable = true;
host = {
# ai.enable = true;
users = {
eve = {
isDesktopUser = true;

View file

@ -38,10 +38,6 @@
hardware = {
directAccess.enable = true;
};
# ai = {
# enable = true;
# };
};
virtualisation.docker.enable = true;
@ -85,13 +81,6 @@
};
syncthing.enable = true;
# ollama = {
# enable = true;
# loadModels = [
# "llama3.1:8b"
# ];
# };
};
# Enable network-online.target for better network dependency handling

View file

@ -36,16 +36,8 @@
graphicsAcceleration.enable = true;
directAccess.enable = true;
};
# ai = {
# enable = true;
# };
};
services = {
# ollama = {
# enable = true;
# exposePort = true;
# };
tailscale = {
enable = true;
authKeyFile = config.sops.secrets."vpn-keys/tailscale-authkey/twilight".path;