~ / rigs / uhs-robert / oasis-dots

uhs-robert/oasis-dots

🌵 Keyboard driven Arch Linux workstation on Hyprland designed for Vim users.

↗ GitHub ★ 29 gpl-3.0 updated 1d ago personal setup Claude CodeCodexGemini CLI
share on X
ARCHETYPE
YOLO Cowboy
Permissions? Never heard of 'em. Ships at the speed of `--dangerously-skip-permissions`.
CONTEXT TAX · EVERY TURN
~4.5k tokens
Moderate · median rig: 2.3k · breakdown
GUARDRAILS
3/5
Blocks destructive commands · Protects secrets · Pre-tool screening hook · details

Copy this rig

# review before running: this installs third-party code
$ npx degit uhs-robert/oasis-dots/.claude ./rig-oasis-dots  # 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.

$ npx degit uhs-robert/oasis-dots/.claude/skills/lock-preview .claude/skills/lock-preview
$ npx degit uhs-robert/oasis-dots/.claude/skills/ship-batch .claude/skills/ship-batch
$ npx degit uhs-robert/oasis-dots/.claude/skills/test-bar .claude/skills/test-bar
$ npx degit uhs-robert/oasis-dots/home/claude/.claude/skills/commit-messages .claude/skills/commit-messages
$ npx degit uhs-robert/oasis-dots/home/claude/.claude/skills/hierarchical-documentation .claude/skills/hierarchical-documentation
$ npx degit uhs-robert/oasis-dots/home/claude/.claude/skills/issue-descriptions .claude/skills/issue-descriptions
$ npx degit uhs-robert/oasis-dots/home/claude/.claude/skills/merge-prs .claude/skills/merge-prs
$ npx degit uhs-robert/oasis-dots/home/claude/.claude/skills/method-review .claude/skills/method-review
$ npx degit uhs-robert/oasis-dots/home/claude/.claude/skills/orchestrator .claude/skills/orchestrator
$ npx degit uhs-robert/oasis-dots/home/claude/.claude/skills/pr-descriptions .claude/skills/pr-descriptions
$ npx degit uhs-robert/oasis-dots/home/claude/.claude/skills/report-commit .claude/skills/report-commit
$ npx degit uhs-robert/oasis-dots/home/claude/.claude/skills/report-pr .claude/skills/report-pr
$ npx degit uhs-robert/oasis-dots/home/claude/.claude/skills/retro .claude/skills/retro
$ npx degit uhs-robert/oasis-dots/home/claude/.claude/skills/review-pr .claude/skills/review-pr
$ npx degit uhs-robert/oasis-dots/home/claude/.claude/skills/structural-review .claude/skills/structural-review
$ npx degit uhs-robert/oasis-dots/home/codex/.codex/skills/commit .claude/skills/commit
$ npx degit uhs-robert/oasis-dots/home/codex/.codex/skills/report .claude/skills/report

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

{
  "permissions": {
    "deny": [
      "Bash(git push --force:*)",
      "Bash(git push -f:*)",
      "Bash(git reset --hard:*)",
      "Bash(rm -rf /:*)",
      "Bash(rm -rf ~:*)",
      "Read(**/*.pem)",
      "Read(**/.env*)",
      "Read(**/config/credentials/*.key)",
      "Read(**/config/master.key)",
      "Read(**/id_*)",
      "Read(~/.aws/**)",
      "Read(~/.claude/.credentials.json)",
      "Read(~/.config/gh/hosts.yml)",
      "Read(~/.gnupg/**)",
      "Read(~/.ssh/**)"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/guard-qs-kill.sh"
          },
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/guard-scratch-in-checkout.sh"
          },
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/guard-legacy-hyprctl.sh"
          },
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/guard-gh-merge.sh"
          }
        ]
      },
      {
        "matcher": "AskUserQuestion|ExitPlanMode",
        "hooks": [
          {
            "type": "command",
            "command": "~/.local/bin/keeptabs-hook waiting claude"
          }
        ]
      }
    ]
  }
}

Skills (17)

Hooks (16)

eventmatcherruns
PreToolUseBash"$CLAUDE_PROJECT_DIR"/.claude/hooks/guard-qs-kill.sh
PreToolUseBash"$CLAUDE_PROJECT_DIR"/.claude/hooks/guard-scratch-in-checkout.sh
PreToolUseBash"$CLAUDE_PROJECT_DIR"/.claude/hooks/guard-legacy-hyprctl.sh
PreToolUseBash"$CLAUDE_PROJECT_DIR"/.claude/hooks/guard-gh-merge.sh
PostToolUseBash"$CLAUDE_PROJECT_DIR"/.claude/hooks/restart-qs-after-git.sh
Stop*"$CLAUDE_PROJECT_DIR"/.claude/hooks/check-on-stop.sh
SessionStart*~/.local/bin/keeptabs-hook idle claude
UserPromptSubmit*~/.local/bin/keeptabs-hook running claude
PreToolUseAskUserQuestion|ExitPlanMode~/.local/bin/keeptabs-hook waiting claude
PostToolUse*~/.local/bin/keeptabs-hook running claude
PostToolUseFailure*~/.local/bin/keeptabs-hook tool-failure claude
Notificationpermission_prompt|elicitation_dialog~/.local/bin/keeptabs-hook waiting claude
PermissionRequest*~/.local/bin/keeptabs-hook waiting claude
Stop*~/.local/bin/keeptabs-hook done claude
StopFailure*~/.local/bin/keeptabs-hook done claude
SessionEnd*~/.local/bin/keeptabs-hook end claude

Plugins (1)

lua-lsp@claude-plugins-official

Permissions

deny (15)
Bash(git push --force:*)
Bash(git push -f:*)
Bash(git reset --hard:*)
Bash(rm -rf /:*)
Bash(rm -rf ~:*)
Read(**/*.pem)
Read(**/.env*)
Read(**/config/credentials/*.key)
Read(**/config/master.key)
Read(**/id_*)
Read(~/.aws/**)
Read(~/.claude/.credentials.json)
Read(~/.config/gh/hosts.yml)
Read(~/.gnupg/**)
Read(~/.ssh/**)
ask (0)
—
allow (23)
Bash(cat:*)
Bash(gh issue list:*)
Bash(gh issue view:*)
Bash(gh pr checks:*)
Bash(gh pr diff:*)
Bash(gh pr list:*)
Bash(gh pr view:*)
Bash(git branch:*)
Bash(git diff:*)
Bash(git fetch:*)
Bash(git log:*)
Bash(git show:*)
Bash(git status:*)
Bash(git worktree list:*)
Bash(grep:*)
Bash(head:*)
Bash(jq:*)
Bash(ls:*)
Bash(rg:*)
Bash(sed -n:*)
Bash(tail:*)
Bash(wc:*)
Read(~/.zshrc)

Similar rigs

copied ✓