From 3525ca37bfcca4b9d92e1030a9c3f80c37757874 Mon Sep 17 00:00:00 2001 From: Lucien Cartier-Tilet Date: Thu, 26 Mar 2026 00:11:24 +0100 Subject: [PATCH] feat(claude-code): add sox for voice mode --- users/modules/dev/ai/claude.nix | 15 +++++++++++---- users/modules/dev/ai/default.nix | 28 ++++++++++++++++++++++------ 2 files changed, 33 insertions(+), 10 deletions(-) diff --git a/users/modules/dev/ai/claude.nix b/users/modules/dev/ai/claude.nix index dbba961..8f3d00f 100644 --- a/users/modules/dev/ai/claude.nix +++ b/users/modules/dev/ai/claude.nix @@ -6,16 +6,23 @@ }: with lib; let cfg = config.home.dev.ai.claude; + jsonFormat = pkgs.formats.json {}; in { - options.home.dev.ai.claude.enable = mkEnableOption "Enables Claude-related packages"; + options.home.dev.ai.claude = { + enable = mkEnableOption "Enables Claude-related packages"; + mcpServers = mkOption { + inherit (jsonFormat) type; + default = {}; + }; + }; config = mkIf cfg.enable { home.packages = let claude-jj = pkgs.writeShellScriptBin "claude-jj" '' - ${pkgs.claude-code}/bin/claude --append-system-prompt 'CRITICAL: This repository uses Jujutsu (jj), NOT git. Never use git commands. Use jj equivalents. See CLAUDE.md.' "$@" + ${pkgs.claude-code}/bin/claude --append-system-prompt 'CRITICAL: This repository uses Jujutsu (jj), NOT git. Never use git commands. Use jj equivalents.' "$@" ''; - in [claude-jj]; + in [claude-jj pkgs.sox]; programs.claude-code = { - inherit (cfg) enable; + inherit (cfg) enable mcpServers; }; }; } diff --git a/users/modules/dev/ai/default.nix b/users/modules/dev/ai/default.nix index 25c0d3e..bb733f7 100644 --- a/users/modules/dev/ai/default.nix +++ b/users/modules/dev/ai/default.nix @@ -6,18 +6,34 @@ }: with lib; let cfg = config.home.dev.ai; + jsonFormat = pkgs.formats.json {}; in { imports = [ ./claude.nix ./ollama.nix ]; - options.home.dev.ai.enable = mkEnableOption "Enables AI features"; - config.home = mkIf cfg.enable { - dev.ai = { - claude.enable = mkDefault cfg.enable; - ollama.enable = mkDefault cfg.enable; + options.home.dev.ai = { + enable = mkEnableOption "Enables AI features"; + mcpServers = mkOption { + inherit (jsonFormat) type; + default = {}; + }; + }; + config = { + home = mkIf cfg.enable { + dev.ai = { + claude = { + enable = mkDefault cfg.enable; + mcpServers = mkDefault cfg.mcpServers; + }; + ollama.enable = mkDefault cfg.enable; + }; + packages = [pkgs.lmstudio]; + }; + programs.mcp = mkIf (cfg.mcpServers != {}) { + enable = true; + servers = cfg.mcpServers; }; - packages = [pkgs.lmstudio]; }; }