helm/home/profiles/opencode/default.nix
2025-12-13 15:47:14 -08:00

53 lines
1.4 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}.beads
];
# 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;
};
};
"opencode/themes/ayu-mirage.json".source = ./themes/ayu-mirage.json;
"opencode/agent/librarian.md".source = ./agent/librarian.md;
};
}