{ config, lib, pkgs, ... }: let user = "dominik"; home = "/home/${user}"; npmPrefix = "${home}/.npm-global"; node = pkgs.nodejs; # or pkgs.nodejs_20 in { home-manager.users.dominik = { config, lib, pkgs, ... }: { home.packages = with pkgs; [ ]; home.activation.installClaudeCode = lib.hm.dag.entryAfter [ "writeBoundary" ] '' export PATH=${node}/bin:${pkgs.gnutar}/bin:${pkgs.gzip}/bin:${pkgs.unzip}/bin:${pkgs.curl}/bin:$PATH mkdir -p ${npmPrefix} if [ ! -x "${npmPrefix}/bin/claude" ]; then echo "Installing @anthropic-ai/claude-code globally..." # --global uses prefix from ~/.npmrc; PATH has node for postinstall ${node}/bin/npm install -g @anthropic-ai/claude-code ${node}/bin/npm install -g @musistudio/claude-code-router fi ''; # Disabled: chrome-devtools MCP spawns headless Chromium for every Claude session. # For frontend projects, enable per-project with: # claude mcp add --scope project chrome-devtools \ # -- npx -y chrome-devtools-mcp \ # --executablePath=${pkgs.ungoogled-chromium}/bin/chromium \ # --isolated=true --headless=true \ # --chromeArg=--ozone-platform=wayland \ # --chromeArg=--enable-features=UseOzonePlatform \ # --chromeArg=--force-device-scale-factor=1 # # home.activation.addChromeDevtoolsMCP = lib.hm.dag.entryAfter [ "installClaudeCli" ] '' # # Add via STDIO transport: Claude spawns `npx -y chrome-devtools-mcp ...` # # Browser must be running with remote debugging on 127.0.0.1:9222. # if ${config.home.homeDirectory}/.nix-profile/bin/claude mcp add --help >/dev/null 2>&1; then # ${config.home.homeDirectory}/.nix-profile/bin/claude mcp add --scope user chrome-devtools \ # -- npx -y chrome-devtools-mcp --executablePath=${pkgs.ungoogled-chromium}/bin/chromium --isolated=true --headless=true --chromeArg=--ozone-platform=wayland --chromeArg=--enable-features=UseOzonePlatform --chromeArg=--force-device-scale-factor=1 || true # fi # ''; }; }