Files
nixos-config/home/features/coding/opencode.nix

251 lines
8.0 KiB
Nix
Raw Normal View History

{ inputs, ... }: {
2026-01-06 08:54:17 +01:00
xdg.configFile = {
"opencode/commands" = {
source = "${inputs.agents}/commands";
2026-01-06 08:54:17 +01:00
recursive = true;
};
"opencode/context" = {
source = "${inputs.agents}/context";
recursive = true;
};
"opencode/prompts" = {
source = "${inputs.agents}/prompts";
recursive = true;
};
"opencode/skills" = {
source = "${inputs.agents}/skills";
2026-01-06 08:54:17 +01:00
recursive = true;
};
"opencode/rules" = {
source = "${inputs.agents}/rules";
recursive = true;
};
2026-01-06 08:54:17 +01:00
};
2026-01-04 03:49:13 +01:00
programs.opencode = {
enable = true;
settings = {
theme = "opencode";
plugin = [ "oh-my-opencode" "opencode-antigravity-auth@beta" ];
agent = builtins.fromJSON
(builtins.readFile "${inputs.agents}/agents/agents.json");
2026-01-06 05:54:19 +01:00
formatter = {
alejandra = {
command = [ "alejandra" "-q" "-" ];
extensions = [ ".nix" ];
2026-01-06 05:54:19 +01:00
};
};
2026-01-04 03:49:13 +01:00
mcp = {
Ref = {
type = "local";
command = [
"sh"
"-c"
"REF_API_KEY=$(cat /run/agenix/ref-key) exec bunx ref-tools-mcp@latest"
];
enabled = true;
};
2026-01-06 05:54:19 +01:00
Anytype = {
type = "local";
command = [
"sh"
"-c"
"OPENAPI_MCP_HEADERS=$(cat /run/agenix/anytype-key) exec bunx @anyproto/anytype-mcp"
];
2026-01-07 19:08:33 +01:00
enabled = false;
};
Basecamp = {
type = "local";
command = [
2026-02-05 08:05:20 +01:00
"/home/m3tam3re/p/AI/Basecamp-MCP-Server/venv/bin/python"
"/home/m3tam3re/p/AI/Basecamp-MCP-Server/basecamp_fastmcp.py"
2026-01-07 19:08:33 +01:00
];
environment = {
PYTHONPATH = "/home/m3tam3re/p/PYTHON/Basecamp-MCP-Server";
VIRTUAL_ENV = "/home/m3tam3re/p/PYTHON/Basecamp-MCP-Server/venv";
BASECAMP_ACCOUNT_ID = "5996442";
};
enabled = false;
2026-01-06 05:54:19 +01:00
};
2026-01-06 08:54:17 +01:00
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;
};
2026-02-10 20:08:32 +01:00
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;
};
2026-01-04 03:49:13 +01:00
};
provider = {
google = {
models = {
antigravity-gemini-3-pro = {
name = "Gemini 3 Pro (Antigravity)";
limit = {
context = 1048576;
output = 65535;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
variants = {
low = { thinkingLevel = "low"; };
high = { thinkingLevel = "high"; };
};
};
antigravity-gemini-3-flash = {
name = "Gemini 3 Flash (Antigravity)";
limit = {
context = 1048576;
output = 65536;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
variants = {
minimal = { thinkingLevel = "minimal"; };
low = { thinkingLevel = "low"; };
medium = { thinkingLevel = "medium"; };
high = { thinkingLevel = "high"; };
};
};
antigravity-claude-sonnet-4-5 = {
name = "Claude Sonnet 4.5 (Antigravity)";
limit = {
context = 200000;
output = 64000;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
};
antigravity-claude-sonnet-4-5-thinking = {
name = "Claude Sonnet 4.5 Thinking (Antigravity)";
limit = {
context = 200000;
output = 64000;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
variants = {
low = { thinkingConfig = { thinkingBudget = 8192; }; };
max = { thinkingConfig = { thinkingBudget = 32768; }; };
};
};
2026-02-10 20:08:32 +01:00
antigravity-claude-opus-4-6-thinking = {
name = "Claude Opus 4.6 Thinking (Antigravity)";
limit = {
context = 200000;
output = 64000;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
variants = {
low = { thinkingConfig = { thinkingBudget = 8192; }; };
max = { thinkingConfig = { thinkingBudget = 32768; }; };
};
};
"gemini-2.5-flash" = {
name = "Gemini 2.5 Flash (Gemini CLI)";
limit = {
context = 1048576;
output = 65536;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
};
"gemini-2.5-pro" = {
name = "Gemini 2.5 Pro (Gemini CLI)";
limit = {
context = 1048576;
output = 65536;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
};
"gemini-3-flash-preview" = {
name = "Gemini 3 Flash Preview (Gemini CLI)";
limit = {
context = 1048576;
output = 65536;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
};
"gemini-3-pro-preview" = {
name = "Gemini 3 Pro Preview (Gemini CLI)";
limit = {
context = 1048576;
output = 65535;
};
modalities = {
input = [ "text" "image" "pdf" ];
output = [ "text" ];
};
};
};
};
};
2026-01-04 03:49:13 +01:00
};
};
2026-01-06 08:54:17 +01:00
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 removed - use opencode-antigravity-auth plugin instead (already in plugin array)
2026-01-06 08:54:17 +01:00
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"; };
2026-01-06 08:54:17 +01:00
};
disabled_mcps = [ "context7" "websearch" ];
disabled_hooks = [ "comment-checker" ];
git_master = {
commit_footer = false;
include_co_authored_by = false;
};
experimental = {
truncate_all_tool_outputs = true;
aggressive_truncation = false;
};
2026-01-06 08:54:17 +01:00
};
2026-01-04 03:49:13 +01:00
}