Files
AZ-NIX/home/features/coding/opencode.nix
2026-02-19 06:55:54 +01:00

136 lines
3.5 KiB
Nix

{inputs, ...}: {
xdg.configFile = {
"opencode/commands" = {
source = "${inputs.agents}/commands";
recursive = true;
};
"opencode/context" = {
source = "${inputs.agents}/context";
recursive = true;
};
"opencode/prompts" = {
source = "${inputs.agents}/prompts";
recursive = true;
};
"opencode/skills" = {
source = "${inputs.agents}/skills";
recursive = true;
};
};
programs.opencode = {
enable = true;
settings = {
theme = "opencode";
plugin = ["oh-my-opencode" "opencode-beads"];
agent = builtins.fromJSON (builtins.readFile "${inputs.agents}/agents/agents.json");
formatter = {
alejandra = {
command = ["alejandra" "-q" "-"];
extensions = [".nix"];
};
};
mcp = {
Ref = {
type = "local";
command = [
"sh"
"-c"
"REF_API_KEY=$(cat /run/agenix/ref-key) exec bunx ref-tools-mcp@latest"
];
enabled = true;
};
Exa = {
type = "local";
command = [
"sh"
"-c"
"EXA_API_KEY=$(cat /run/agenix/exa-key) exec bunx exa-mcp-server@latest tools=web_search_exa"
];
enabled = true;
};
Basecamp = {
type = "local";
command = [
"/home/sascha.koenig/p/AI/Basecamp-MCP-Server/venv/bin/python"
"/home/sascha.koenig/p/AI/Basecamp-MCP-Server/basecamp_fastmcp.py"
];
environment = {
PYTHONPATH = "/home/sascha.koenig/p/AI/Basecamp-MCP-Server";
VIRTUAL_ENV = "/home/sascha.koenig/p/AI/Basecamp-MCP-Server/venv";
BASECAMP_ACCOUNT_ID = "5996442";
};
enabled = false;
};
Outline = {
type = "local";
command = [
"sh"
"-c"
"OUTLINE_API_KEY=$(cat /run/agenix/outline-key) OUTLINE_API_URL=https://wiki.az-gruppe.com/api OUTLINE_DISABLE_DELETE=true exec uv tool run mcp-outline"
];
enabled = false;
};
};
};
};
home.file.".config/opencode/oh-my-opencode.json".text = builtins.toJSON {
"$schema" = "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json";
google_auth = false;
agents = {
sisyphus = {
model = "zai-coding-plan/glm-5";
};
oracle = {
model = "zai-coding-plan/glm-5";
};
librarian = {
model = "zai-coding-plan/glm-5";
};
explore = {
model = "zai-coding-plan/glm-4.5-air";
};
multimodal-looker = {
model = "zai-coding-plan/glm-4.6v";
};
prometheus = {
model = "zai-coding-plan/glm-5";
};
metis = {
model = "zai-coding-plan/glm-5";
};
momus = {
model = "zai-coding-plan/glm-5";
};
atlas = {
model = "zai-coding-plan/glm-5";
};
};
categories = {
visual-engineering = {
model = "zai-coding-plan/glm-5";
};
ultrabrain = {
model = "zai-coding-plan/glm-5";
};
artistry = {
model = "zai-coding-plan/glm-5";
};
quick = {
model = "zai-coding-plan/glm-5";
};
unspecified-low = {
model = "zai-coding-plan/glm-5";
};
unspecified-high = {
model = "zai-coding-plan/glm-5";
};
writing = {
model = "zai-coding-plan/glm-5";
};
};
disabled_mcps = ["context7" "websearch"];
};
}