84 lines
2.8 KiB
Nix
84 lines
2.8 KiB
Nix
{ 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
|
|
'';
|
|
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"
|
|
# 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}";
|
|
};
|
|
};
|
|
};
|
|
# 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";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|