Files
m3ta-home/profiles/sets/coding/agents/agents.nix
T
m3ta-chiron 9b1be8eca4 refactor(agents): consume llm-agents packages via pkgs.llm-agents namespace
numtide/llm-agents.nix's shared-nixpkgs overlay exposes everything under
pkgs.llm-agents.* — no flattening to top-level attrs anymore. Namespaced
refs fail loudly when the overlay is missing instead of silently falling
back to outdated nixpkgs attributes (opencode 0.3.x) or disappearing.

Requires the consumer's nixos-config to apply
inputs.llm-agents.overlays.shared-nixpkgs (see nixos-config
hosts/common/default.nix).
2026-08-31 11:44:22 +02:00

90 lines
2.4 KiB
Nix

# AI agent system — OpenCode, Pi, and MCP server configuration.
# Relies on coding.agents options provided by home/common/default.nix
# (m3taHomeInputs.m3ta-nixpkgs.homeManagerModules.default).
{
m3taHomeInputs,
pkgs,
videoDrivers ? [],
...
}: {
# Agent Git Identity configuration
# Note: Uses existing gitea SSH key (m3tam3re identity) for push auth
coding.agents.gitIdentity = {
enable = true;
name = "m3ta-chiron";
email = "m3ta-chiron@agentmail.to";
sshKey = "/home/m3tam3re/.ssh/gitea";
};
imports = [
# OpenCode, Pi, and Babysitter agent configurations
./agents-lib.nix
./babysitter.nix
./opencode.nix
./pi.nix
];
coding.agents.babysitter.enable = true;
programs.mcp = {
enable = true;
servers = {
ContextMode = {
command = "bash";
args = ["-c" "exec bunx context-mode@latest"];
};
DeepWiki = {
url = "https://mcp.deepwiki.com/mcp";
};
Exa = {
command = "bash";
args = ["-c" "EXA_API_KEY=$(cat /run/agenix/exa-key) exec bunx exa-mcp-server@latest tools=web_search_exa"];
};
SallyAI = {
url = "https://app.sally.io/api/v1/McpExternal";
};
Outline = {
url = "https://wiki.az-gruppe.com/mcp";
};
Playwright = {
command = "bash";
args = ["-c" "exec bunx @playwright/mcp@latest"];
};
Ref = {
command = "bash";
args = ["-c" "REF_API_KEY=$(cat /run/agenix/ref-key) exec bunx ref-tools-mcp@latest"];
};
Teams = {
command = "bunx";
args = ["-y" "@floriscornel/teams-mcp@latest"];
};
};
};
# NOTE: llm-agent packages are consumed via the `llm-agents` namespace
# (pkgs.llm-agents.*), provided by numtide/llm-agents.nix's
# `overlays.shared-nixpkgs`. The consumer's nixos-config MUST apply that
# overlay — namespaced refs fail loudly if it is missing, instead of
# silently falling back to (outdated) nixpkgs attributes.
home.packages = with pkgs; [
agenix-cli
llm-agents.agent-browser
m3taHomeInputs.agent-lib.packages.${pkgs.stdenv.hostPlatform.system}.agent-lib-cli
llm-agents.beads
buzz
crunch
docker-sbx
llm-agents.herdr
pi-coding-agent
(llm-agents.qmd.override {
vulkanSupport = videoDrivers == ["amdgpu"];
cudaSupport = videoDrivers == ["nvidia"];
})
opencode-desktop
openshell
llm-agents.openspec
openwork
talk
];
}