merkur-sh/merkur
A terminal for your remote machines that runs in the browser. Local echo gated by the shell, loss-tolerant QUIC display, post-quantum end-to-end keys, WebGPU rendering, nothing to install.
ARCHETYPE
Automator
Hooks on every lifecycle event: format, lint, notify, log.
Copy this rig
# review before running: this installs third-party code
$ npx degit merkur-sh/merkur/.claude ./rig-merkur # 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 merkur-sh/merkur/.claude/skills/close-the-loop .claude/skills/close-the-loop $ npx degit merkur-sh/merkur/.claude/skills/release .claude/skills/release $ npx degit merkur-sh/merkur/.claude/skills/verify .claude/skills/verify
Merge into .claude/settings.json (project) or ~/.claude/settings.json (user). Hook commands reference scripts in the source repo — copy those too.
{
"permissions": {
"deny": [
"Read(./target/**)",
"Read(./**/target/**)",
"Read(./dist/**)",
"Read(./**/dist/**)",
"Read(./playwright-report/**)",
"Read(./**/*.tar.gz)",
"Read(./merkur-release.*)",
"Read(./.claude/worktrees/**)",
"Read(./.codegraph/**)",
"Read(./data/**)",
"Read(./.e2e-home*/**)",
"Read(./.cloud-tester/**)",
"Read(./**/.env)",
"Read(./**/.env.local)"
]
},
"hooks": {
"PreToolUse": [
{
"matcher": "Bash|Grep|Edit|Write|MultiEdit",
"hooks": [
{
"type": "command",
"command": "bun ${CLAUDE_PROJECT_DIR}/scripts/agent-hooks/pre-tool-use.ts"
}
]
}
]
}
} Skills (3)
Hooks (4)
| event | matcher | runs |
|---|---|---|
| PreToolUse | Bash|Grep|Edit|Write|MultiEdit | bun ${CLAUDE_PROJECT_DIR}/scripts/agent-hooks/pre-tool-use.ts |
| PostToolUse | Edit|Write|MultiEdit|ExitPlanMode | bun ${CLAUDE_PROJECT_DIR}/scripts/agent-hooks/post-tool-use.ts |
| SessionStart | * | bun ${CLAUDE_PROJECT_DIR}/scripts/agent-hooks/session-start.ts |
| Stop | * | bun ${CLAUDE_PROJECT_DIR}/scripts/agent-hooks/stop.ts |
Plugins (2)
typescript-lsp@claude-plugins-officialrust-analyzer-lsp@claude-plugins-official
Permissions
deny (14)
Read(./target/**)
Read(./**/target/**)
Read(./dist/**)
Read(./**/dist/**)
Read(./playwright-report/**)
Read(./**/*.tar.gz)
Read(./merkur-release.*)
Read(./.claude/worktrees/**)
Read(./.codegraph/**)
Read(./data/**)
Read(./.e2e-home*/**)
Read(./.cloud-tester/**)
Read(./**/.env)
Read(./**/.env.local)
ask (0)
—
allow (26)
Bash(bun test:*)
Bash(bun run check:*)
Bash(bun run gates:*)
Bash(bun run rust:lint)
Bash(bun run sync:wasm)
Bash(bun run build:wasm)
Bash(bun run build:e2e-wasm)
Bash(bun run generate:docs)
Bash(bun run verify)
Bash(bun run test:unit)
Bash(bun install)
Bash(bunx biome check:*)
Bash(bunx biome format:*)
Bash(cargo test:*)
Bash(cargo clippy:*)
Bash(rustfmt:*)
Bash(git add:*)
Bash(git commit:*)
Bash(git status:*)
Bash(git diff:*)
Bash(git log:*)
Bash(git switch:*)
Bash(git rev-parse:*)
Bash(git worktree list:*)
Bash(codegraph:*)
mcp__codegraph__*
Similar rigs
rkolesnichenko/ccdrift
A check for silent changes in Claude Code's prompt caching, Haiku use, settings, context and hooks, read from your local session logs
Pragmatist 3.1k tok ·
zenbu-labs/terminal-browser
A browser inside your terminal
Minimalist 815 tok ·
eugene1g/agent-safehouse
Sandbox your local AI agents so they can read/write only what they need
Minimalist 1.5k tok ·
cosmtrek/mindwalk
A visualization tool that replays coding-agent sessions on a 3D map of your codebase.
Minimalist 1.1k tok ·