mirror of
https://github.com/srid/nixos-config.git
synced 2025-12-28 08:14:58 +08:00
84 lines
2.1 KiB
Nix
84 lines
2.1 KiB
Nix
{ flake, pkgs, lib, ... }:
|
|
let
|
|
subagentsDir = ./subagents;
|
|
agents = lib.mapAttrs'
|
|
(fileName: _:
|
|
lib.nameValuePair
|
|
(lib.removeSuffix ".md" fileName)
|
|
(builtins.readFile (subagentsDir + "/${fileName}"))
|
|
)
|
|
(builtins.readDir subagentsDir);
|
|
|
|
commandsDir = ./commands;
|
|
commands = lib.mapAttrs'
|
|
(fileName: _:
|
|
lib.nameValuePair
|
|
(lib.removeSuffix ".md" fileName)
|
|
(builtins.readFile (commandsDir + "/${fileName}"))
|
|
)
|
|
(builtins.readDir commandsDir);
|
|
|
|
skillsDir = ./skills;
|
|
skillDirs = lib.filterAttrs (_: type: type == "directory") (builtins.readDir skillsDir);
|
|
in
|
|
{
|
|
# Link skill directories to ~/.claude/skills/
|
|
# (home-manager module doesn't support skills yet, so we link manually)
|
|
home.file = lib.mapAttrs'
|
|
(skillName: _:
|
|
lib.nameValuePair ".claude/skills/${skillName}" {
|
|
source = skillsDir + "/${skillName}";
|
|
recursive = true;
|
|
}
|
|
)
|
|
skillDirs;
|
|
|
|
home.packages = [
|
|
pkgs.tree
|
|
pkgs.python313Packages.markitdown
|
|
# Use sandboxed version on Linux, plain version on macOS
|
|
(if lib.hasInfix "linux" pkgs.system
|
|
then flake.inputs.self.packages.${pkgs.system}.claude
|
|
else pkgs.claude-code)
|
|
# Other agents for trying out
|
|
pkgs.copilot-cli
|
|
];
|
|
programs.claude-code = {
|
|
enable = true;
|
|
package = null; # See above
|
|
|
|
# Basic settings for Claude Code
|
|
settings = {
|
|
theme = "dark";
|
|
permissions = {
|
|
defaultMode = "bypassPermissions";
|
|
};
|
|
# Disable Claude from adding itself as co-author to commits
|
|
includeCoAuthoredBy = false;
|
|
};
|
|
|
|
# System prompt / memory
|
|
memory.text = builtins.readFile ./memory.md;
|
|
|
|
# Automatically discovered commands from commands/ directory
|
|
commands = commands;
|
|
|
|
# Automatically discovered agents from subagents/ directory
|
|
agents = agents;
|
|
|
|
# MCP servers configuration
|
|
# Disabled, because package is null
|
|
/*
|
|
mcpServers = {
|
|
"nixos-mcp" = {
|
|
command = "uvx";
|
|
args = [ "mcp-nixos" ];
|
|
};
|
|
"chrome-devtools" = {
|
|
command = "npx";
|
|
args = [ "chrome-devtools-mcp@latest" ];
|
|
};
|
|
};
|
|
*/
|
|
};
|
|
}
|