~ / rigs / kclejeune / system

kclejeune/system

Declarative system configurations using nixOS, nix-darwin, and home-manager

↗ GitHub ★ 533 MIT updated today personal setup Claude CodeCodex
share on X
ARCHETYPE
Minimalist
Lean instructions, few tools, tiny context tax. Lets the model think.
CONTEXT TAX · EVERY TURN
~1.7k tokens
Featherweight · median rig: 2.3k · breakdown
GUARDRAILS
3/5
Blocks destructive commands · No YOLO mode · Sandbox or ask-first rules · details

Copy this rig

# review before running: this installs third-party code
$ npx degit kclejeune/system/.claude ./rig-system  # inspect, then merge into .claude/

MCP servers are added to Claude Code at local scope; env vars are shown as YOUR_… placeholders — we never store values. Files are fetched with degit into a separate folder so you can review before merging.

Merge into .claude/settings.json (project) or ~/.claude/settings.json (user). Hook commands reference scripts in the source repo — copy those too.

{
  "permissions": {
    "ask": [
      "Bash(nh os switch *)",
      "Bash(nh darwin switch *)",
      "Bash(nh home switch *)",
      "Bash(nix run .#deploy *)",
      "Bash(deploy *)",
      "Bash(git push *)"
    ]
  }
}

Hooks (1)

eventmatcherruns
PostToolUseWrite|Editjq -r '.tool_response.filePath // .tool_input.file_path' | { read -r f; case "$f" in "$CLAUDE_PROJECT_DIR"/*) cd "$CLAUDE_PROJECT_DIR" && nix fmt -- "$f" >/dev/null 2>&1;; esac; } || true

Permissions

deny (0)
—
ask (6)
Bash(nh os switch *)
Bash(nh darwin switch *)
Bash(nh home switch *)
Bash(nix run .#deploy *)
Bash(deploy *)
Bash(git push *)
allow (7)
Bash(nix eval *)
Bash(nix build --no-link *)
Bash(nix flake metadata *)
Bash(nix flake show *)
Bash(nix log *)
Bash(nix fmt *)
Bash(nix run .#drvs *)

Similar rigs

copied ✓