This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

wrapperModules.claude-code: add plugins option

Allow declaratively adding extra Claude Code plugin directories alongside
the bundled one. Each entry becomes a repeatable --plugin-dir flag.

+34 -1
+34 -1
wrapperModules/claude-code/flake-module.nix
··· 139 139 ''; 140 140 }; 141 141 142 + plugins = lib.mkOption { 143 + type = lib.types.listOf lib.types.path; 144 + default = [ ]; 145 + example = lib.literalExpression '' 146 + [ 147 + # A fetched plugin from GitHub: 148 + (pkgs.fetchFromGitHub { 149 + owner = "Myr-Aya"; 150 + repo = "GouvernAI-claude-code-plugin"; 151 + rev = "main"; 152 + hash = "sha256-AAAA..."; 153 + # The plugin directory is a subdirectory of the repo: 154 + } + "/gouvernai") 155 + 156 + # A local plugin directory (must contain .claude-plugin/plugin.json): 157 + ./my-local-plugin 158 + 159 + # A plugin built by a Nix derivation: 160 + my-plugin-package 161 + ] 162 + ''; 163 + description = '' 164 + Additional Claude Code plugin directories to load. Each entry 165 + must be a path to a directory containing `.claude-plugin/plugin.json`. 166 + Passed as extra `--plugin-dir` flags alongside the bundled plugin. 167 + 168 + Plugins can provide skills, commands, agents, and hooks. Use this 169 + to declaratively install third-party plugins (e.g. from GitHub) 170 + or locally developed ones without going through the Claude Code 171 + marketplace. 172 + ''; 173 + }; 174 + 142 175 mcpServers = lib.mkOption { 143 176 type = jsonFormat.type; 144 177 default = { }; ··· 269 302 # Always inject our plugin dir + settings file into every invocation. 270 303 # `--plugin-dir` is repeatable so users can still pass more on the CLI. 271 304 config.flags."--plugin-dir" = { 272 - value = [ "${pluginDir}" ]; 305 + value = [ "${pluginDir}" ] ++ map toString config.plugins; 273 306 order = 100; 274 307 }; 275 308 config.flags."--settings" = {