feat: opencode
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
{ 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;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user