~ / rigs / seabbs / claude

seabbs/claude

Personal Claude Code configuration with agents and commands

↗ GitHub ★ 7 no license updated 1mo ago project Claude Code
share on X
ARCHETYPE
Automator
Hooks on every lifecycle event: format, lint, notify, log.
CONTEXT TAX · EVERY TURN
~4.2k tokens
Moderate · median rig: 2.3k · breakdown
GUARDRAILS
3/5
Blocks destructive commands · Pre-tool screening hook · No YOLO mode · details

Copy this rig

# review before running: this installs third-party code
$ claude mcp add julia-repl -e JULIA_REPL_HIGHLIGHT=YOUR_JULIA_REPL_HIGHLIGHT -e JULIA_REPL_OUTPUT_FORMAT=YOUR_JULIA_REPL_OUTPUT_FORMAT -e JULIA_REPL_PROJECT=YOUR_JULIA_REPL_PROJECT -- julia --project=@AgentREPL -e 'using AgentREPL; AgentREPL.start_server(project_dir = get(ENV, "JULIA_REPL_PROJECT", "."))'
$ npx degit seabbs/claude/commands ./rig-claude/commands
$ npx degit seabbs/claude/skills ./rig-claude/skills
$ npx degit seabbs/claude/hooks ./rig-claude/hooks

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.

$ claude mcp add julia-repl -e JULIA_REPL_HIGHLIGHT=YOUR_JULIA_REPL_HIGHLIGHT -e JULIA_REPL_OUTPUT_FORMAT=YOUR_JULIA_REPL_OUTPUT_FORMAT -e JULIA_REPL_PROJECT=YOUR_JULIA_REPL_PROJECT -- julia --project=@AgentREPL -e 'using AgentREPL; AgentREPL.start_server(project_dir = get(ENV, "JULIA_REPL_PROJECT", "."))'
$ npx degit seabbs/claude/skills/julia-repl .claude/skills/julia-repl

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

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "jq -r 'if (.tool_input.command | test(\"^gh pr create\\\\b\")) then (if (.tool_input.command | test(\"# checks-passed\")) then empty else \"{\\\"hookSpecificOutput\\\":{\\\"hookEventName\\\":\\\"PreToolUse\\\",\\\"permissionDecision\\\":\\\"deny\\\",\\\"permissionDecis"
          },
          {
            "type": "command",
            "command": "jq -r 'if (.tool_input.command | test(\"^git commit\\\\b\")) then \"{\\\"hookSpecificOutput\\\":{\\\"hookEventName\\\":\\\"PreToolUse\\\",\\\"permissionDecision\\\":\\\"allow\\\",\\\"additionalContext\\\":\\\"PRE-COMMIT: If you have not run tests and formatters recently,"
          }
        ]
      },
      {
        "matcher": "*",
        "hooks": [
          {
            "type": "command",
            "command": "$HOME/code/seabbs/dotfiles/scripts/agent-session-track.sh"
          }
        ]
      },
      {
        "matcher": "Bash|Task|Agent",
        "hooks": [
          {
            "type": "command",
            "command": "bash \"$HOME/.claude/hooks/compute-guard.sh\""
          }
        ]
      }
    ]
  }
}

MCP servers (1)

serversourceest. tokens
julia · "julia-repl"
env: JULIA_REPL_HIGHLIGHT, JULIA_REPL_OUTPUT_FORMAT, JULIA_REPL_PROJECT
binary 2.5k

Skills (1)

Hooks (11)

eventmatcherruns
PreToolUseBashjq -r 'if (.tool_input.command | test("^gh pr create\\b")) then (if (.tool_input.command | test("# checks-passed")) then empty else "{\"hookSpecificOutput\":{\"hookEventName\":\"PreToolUse\",\"permissionDecision\":\"deny\",\"permissionDecis
PreToolUseBashjq -r 'if (.tool_input.command | test("^git commit\\b")) then "{\"hookSpecificOutput\":{\"hookEventName\":\"PreToolUse\",\"permissionDecision\":\"allow\",\"additionalContext\":\"PRE-COMMIT: If you have not run tests and formatters recently,
PreToolUse*$HOME/code/seabbs/dotfiles/scripts/agent-session-track.sh
PreToolUseBash|Task|Agentbash "$HOME/.claude/hooks/compute-guard.sh"
PostToolUseBashjq -r 'if (.tool_input.command | test("^gh pr create\\b")) then "{\"hookSpecificOutput\":{\"hookEventName\":\"PostToolUse\",\"additionalContext\":\"Spawn a background subagent via the Agent tool with run_in_background: true and tell it to r
PostToolUse*$HOME/code/seabbs/dotfiles/scripts/agent-session-track.sh
SessionStart*$HOME/code/seabbs/dotfiles/scripts/agent-session-track.sh
SessionEnd*$HOME/code/seabbs/dotfiles/scripts/agent-session-track.sh
UserPromptSubmit*$HOME/code/seabbs/dotfiles/scripts/agent-session-track.sh
Stop*$HOME/code/seabbs/dotfiles/scripts/agent-session-track.sh
Notification*$HOME/code/seabbs/dotfiles/scripts/agent-session-track.sh

Slash commands (9)

/academic-revise/check-requirements/mark-pr-agent/performance-review/read-up/refactor/stats-implement/stats-review/worktree

Plugins (10)

feature-dev@claude-code-pluginsresearch-academic@skillslang-r@skillslang-julia@skillslang-stan@skillsdev-workflow@skillsgithub-ops@skillsorg-management@skillsbot-automation@skillsproductivity@skills

Permissions

deny (0)
—
ask (0)
—
allow (120)
WebSearch
WebFetch(domain:docs.anthropic.com)
WebFetch(domain:www.bbc.co.uk)
WebFetch(domain:www.theguardian.com)
WebFetch(domain:api.github.com)
WebFetch(domain:github.com)
WebFetch(domain:codecov.io)
WebFetch(domain:www.r-pkg.org)
WebFetch(domain:img.shields.io)
WebFetch(domain:cranlogs.r-pkg.org)
WebFetch(domain:doi.org)
WebFetch(domain:dx.doi.org)
WebFetch(domain:api.crossref.org)
WebFetch(domain:arxiv.org)
WebFetch(domain:api.arxiv.org)
WebFetch(domain:medrxiv.org)
WebFetch(domain:www.medrxiv.org)
WebFetch(domain:api.medrxiv.org)
WebFetch(domain:www.biorxiv.org)
WebFetch(domain:pubmed.ncbi.nlm.nih.gov)
WebFetch(domain:api.semanticscholar.org)
WebFetch(domain:scholar.google.com)
WebFetch(domain:zenodo.org)
WebFetch(domain:cran.r-project.org)
WebFetch(domain:r-lib.org)
WebFetch(domain:ropensci.org)
WebFetch(domain:docs.julialang.org)
WebFetch(domain:juliapackages.com)
WebFetch(domain:juliahub.com)
WebFetch(domain:en.wikipedia.org)
WebFetch(domain:epinowcast.org)
WebFetch(domain:elifesciences.org)
WebFetch(domain:julialang.org)
WebFetch(domain:pkgdocs.julialang.org)
WebFetch(domain:sciml.ai)
WebFetch(domain:turinglang.org)
WebFetch(domain:mc-stan.org)
WebFetch(domain:posit.co)
WebFetch(domain:rdrr.io)
WebFetch(domain:taskfile.dev)
WebFetch(domain:docs.github.com)
WebFetch(domain:neovim.io)
WebFetch(domain:joss.theoj.org)
WebFetch(domain:journals.plos.org)
WebFetch(domain:www.nature.com)
WebFetch(domain:www.science.org)
WebFetch(domain:www.thelancet.com)
WebFetch(domain:www.bmj.com)
WebFetch(domain:academic.oup.com)
WebFetch(domain:dl.acm.org)
WebFetch(domain:link.springer.com)
WebFetch(domain:onlinelibrary.wiley.com)
WebFetch(domain:www.sciencedirect.com)
WebFetch(domain:www.tandfonline.com)
WebFetch(domain:www.annualreviews.org)
WebFetch(domain:projecteuclid.org)
WebFetch(domain:www.lazyvim.org)
mcp__github__get_me
mcp__github__search_issues
mcp__github__get_pull_request_status

Similar rigs

copied ✓