Files
dotfiles/config/modules/ai/ai.nix
T
2026-07-25 16:10:00 +01:00

75 lines
2.2 KiB
Nix

{ den, modules, ... }:
{
modules.ai = {
provides = {
ollama-cuda = {
homeManager =
{ pkgs, ... }:
{
home.packages = [ pkgs.ollama-cuda ];
};
};
};
homeManager =
{ pkgs, config, ... }:
{
home.packages = [
pkgs.claude-code
];
sops = {
secrets.scug-io-ai-key = {
# sopsFile = ./secrets.yaml;
# Decrypted file path (available at runtime, not eval time)
path = config.home.homeDirectory + "/.secrets/scug_io_api_key";
sopsFile = ../secrets/content/secrets.yaml;
};
};
programs.fish = {
shellInit = ''
if test -f "$HOME/.secrets/scug_io_api_key"
set -x SCUG_IO_API_KEY (cat "$HOME/.secrets/scug_io_api_key")
end
set -x PI_LENS_STARTUP_MODE quick
'';
};
programs.opencode = {
enable = true;
extraPackages = with pkgs; [
rust-analyzer
typescript-language-server
];
context = ''
Instructions:
- Do NOT preemptively load all references - use lazy loading based on actual need
- When loaded, treat content as mandatory instructions that override defaults
- Follow references recursively when needed
- NO EMOJIS
'';
settings = {
"lsp" = true;
plugin = [
"@tarquinen/opencode-dcp@latest"
"@xberg-io/opencode-xberg"
"@xberg-io/opencode-crawlberg"
"@xberg-io/opencode-html-to-markdown"
# "@xberg-io/opencode-liter-llm"
"opencode-plugin-litellm@latest"
"@xberg-io/opencode-tree-sitter-language-pack"
];
provider.litellm = {
npm = "@ai-sdk/openai-compatible";
name = "LiteLLM (scuggo)";
options = {
baseURL = "https://9f5db439.fwds.scug.io/v1";
apiKey = "{env:SCUG_IO_API_KEY}";
};
};
};
};
};
};
}