Files
helm/home/profiles/opencode/default.nix
T
2026-01-13 20:34:35 -08:00

65 lines
1.6 KiB
Nix

{
pkgs,
lib,
inputs,
...
}:
let
# Paths to agenix-decrypted secrets (same on Darwin and NixOS)
githubToken = "/run/agenix/github-token";
anthropicToken = "/run/agenix/anthropicToken";
# github-mcp-server binary path from nixpkgs
githubMcpServer = "${pkgs.github-mcp-server}/bin/github-mcp-server";
in
{
home.packages = [
pkgs.github-mcp-server
inputs.llm-agents.packages.${pkgs.system}.opencode
inputs.llm-agents.packages.${pkgs.system}.tuicr
inputs.llm-agents.packages.${pkgs.system}.chainlink
];
# OpenCode configuration directory
xdg.configFile = {
"opencode/opencode.json".text = builtins.toJSON {
"$schema" = "https://opencode.ai/config.json";
theme = "ayu-mirage";
autoupdate = false;
permission = {
external_directory = "allow";
};
provider = {
anthropic = {
options = {
apiKey = "{file:${anthropicToken}}";
};
};
};
mcp = {
github = {
type = "local";
command = [
githubMcpServer
"stdio"
];
environment = {
GITHUB_PERSONAL_ACCESS_TOKEN = "{file:${githubToken}}";
};
};
};
agent = {
build.tools."github_*" = false;
plan.tools."github_*" = false;
};
#plugin = ["@plannotator/opencode@latest"];
};
"opencode/themes/ayu-mirage.json".source = ./themes/ayu-mirage.json;
"opencode/agent/librarian.md".source = ./agent/librarian.md;
"opencode/agent/adversary.md".source = ./agent/adversary.md;
"opencode/command/cleanup.md".source = ./command/cleanup.md;
};
}