{ den, modules, ... }: { modules.ai = { provides = { ollama-cuda = { homeManager = { pkgs, ... }: { home.packages = [ pkgs.ollama-cuda ]; }; }; }; homeManager = { pkgs, config, ... }: { home.packages = [ pkgs.claude-code pkgs.snip ]; 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 - If you've been looking a lot for something you cant seem to find and you havent been explicitly told to keep going, you're allowed to say 'i cant find it' ''; 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" "@dietrichgebert/ponytail" "opencode-autodiscover" "@xberg-io/opencode-tree-sitter-language-pack" # Token slimming: filters shell command output via snip CLI # (https://github.com/VincentHardouin/opencode-snip) "opencode-snip@latest" # Replace/extend the per-model system prompt via # ~/.config/opencode/system-prompts.json # (https://github.com/kmcquade/opencode-sysprompt-override-plugin) # "opencode-sysprompt-override@latest" ]; provider.litellm = { npm = "@ai-sdk/openai-compatible"; name = "LiteLLM (scuggo)"; options = { baseURL = "https://9f5db439.fwds.scug.io/v1"; apiKey = "{env:SCUG_IO_API_KEY}"; }; }; # Built-in OpenCode Go provider (https://opencode.ai/zen/go) — # key from sops secret opencode-go-zen-key via $OPENCODE_GO_API_KEY provider.opencode-go = { options = { apiKey = "{env:OPENCODE_GO_API_KEY}"; }; }; # provider.commandcode = { # npm = "@ai-sdk/openai-compatible"; # name = "Command Code"; # options = { # baseURL = "https://api.commandcode.ai/provider/v1"; # apiKey = "{env:COMMANDCODE_API_KEY}"; # }; # }; }; # TUI plugin: token-tracker (https://github.com/eserete/opencode-token-tracker) tui = { plugin = [ "./plugins/token-tracker.tsx" ]; }; }; xdg.configFile."opencode/plugins/token-tracker.tsx" = { source = pkgs.fetchurl { url = "https://raw.githubusercontent.com/eserete/opencode-token-tracker/main/token-tracker.tsx"; sha256 = "a1d56f6d86f512ca2e81653a57ff372c2ea0a3398bcdbebda6de9f9ed89ee45a"; }; }; }; }; }