Hook Development for Claude Code Plugins
anthropics/claude-plugins-official
Explains how to write Claude Code plugin hooks, both prompt-based checks and bash commands, for events such as PreToolUse, Stop and SessionStart.
Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.
$ npx skills add geezerrrr/motive --skill coding-agent -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install geezerrrr/motive coding-agent --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/geezerrrr/motive.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Motive/Resources/Skills.bundle/coding-agent .claude/skills/coding-agent && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "coding-agent" agent skill from https://github.com/geezerrrr/motive/tree/main/Motive/Resources/Skills.bundle/coding-agent into .claude/skills/coding-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agent", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/geezerrrr/motive/tree/main/Motive/Resources/Skills.bundle/coding-agentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add geezerrrr/motive --skill coding-agent -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install geezerrrr/motive coding-agent --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/geezerrrr/motive.git skills-src && mkdir -p .agents/skills && cp -r skills-src/Motive/Resources/Skills.bundle/coding-agent .agents/skills/coding-agent && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "coding-agent" agent skill from https://github.com/geezerrrr/motive/tree/main/Motive/Resources/Skills.bundle/coding-agent into .agents/skills/coding-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agent", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add geezerrrr/motive --skill coding-agent -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install geezerrrr/motive coding-agent --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/geezerrrr/motive.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/Motive/Resources/Skills.bundle/coding-agent .cursor/skills/coding-agent && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "coding-agent" agent skill from https://github.com/geezerrrr/motive/tree/main/Motive/Resources/Skills.bundle/coding-agent into .cursor/skills/coding-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agent", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/geezerrrr/motive.git --path Motive/Resources/Skills.bundle/coding-agent--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add geezerrrr/motive --skill coding-agent -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install geezerrrr/motive coding-agent --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/geezerrrr/motive.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/Motive/Resources/Skills.bundle/coding-agent .gemini/skills/coding-agent && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "coding-agent" agent skill from https://github.com/geezerrrr/motive/tree/main/Motive/Resources/Skills.bundle/coding-agent into .gemini/skills/coding-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agent", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install geezerrrr/motive coding-agentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add geezerrrr/motive --skill coding-agent -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/geezerrrr/motive.git skills-src && mkdir -p .github/skills && cp -r skills-src/Motive/Resources/Skills.bundle/coding-agent .github/skills/coding-agent && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "coding-agent" agent skill from https://github.com/geezerrrr/motive/tree/main/Motive/Resources/Skills.bundle/coding-agent into .github/skills/coding-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agent", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add geezerrrr/motive --skill coding-agent -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install geezerrrr/motive coding-agent --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/geezerrrr/motive.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/Motive/Resources/Skills.bundle/coding-agent .opencode/skills/coding-agent && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "coding-agent" agent skill from https://github.com/geezerrrr/motive/tree/main/Motive/Resources/Skills.bundle/coding-agent into .opencode/skills/coding-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agent", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
coding-agentRun Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.
Coding Agent is an agent skill from geezerrrr/motive. Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with Bash. The repository describes itself as: The AI agent that works while you don't watch. Lives in your menu bar, finds you when needed. The licence is MIT.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 1db5218. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
bashgitcodexghFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Coding Agent loads about 2.5k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 699 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from geezerrrr/motive at commit 1db5218, republished under its MIT licence (© geezerrrr). 699 words, ~2,527 tokens.
.claude/skills/coding-agent/SKILL.md (or your agent's skills folder).Use bash (with optional background mode) for all coding agent work. Simple and effective.
Coding agents (Codex, Claude Code, Pi) are interactive terminal applications that need a pseudo-terminal (PTY) to work correctly. Without PTY, you'll get broken output, missing colors, or the agent may hang.
Always use pty:true when running coding agents:
# ✅ Correct - with PTY
bash pty:true command:"codex exec 'Your prompt'"
# ❌ Wrong - no PTY, agent may break
bash command:"codex exec 'Your prompt'"| Parameter | Type | Description |
|---|---|---|
command | string | The shell command to run |
pty | boolean | Use for coding agents! Allocates a pseudo-terminal for interactive CLIs |
workdir | string | Working directory (agent sees only this folder's context) |
background | boolean | Run in background, returns sessionId for monitoring |
timeout | number | Timeout in seconds (kills process on expiry) |
elevated | boolean | Run on host instead of sandbox (if allowed) |
| Action | Description |
|---|---|
list | List all running/recent sessions |
poll | Check if session is still running |
log | Get session output (with optional offset/limit) |
write | Send raw data to stdin |
submit | Send data + newline (like typing and pressing Enter) |
send-keys | Send key tokens or hex bytes |
paste | Paste text (with optional bracketed mode) |
kill | Terminate the session |
For quick prompts/chats, create a temp git repo and run:
# Quick chat (Codex needs a git repo!)
SCRATCH=$(mktemp -d) && cd $SCRATCH && git init && codex exec "Your prompt here"
# Or in a real project - with PTY!
bash pty:true workdir:~/Projects/myproject command:"codex exec 'Add error handling to the API calls'"Why git init? Codex refuses to run outside a trusted git directory. Creating a temp repo solves this for scratch work.
For longer tasks, use background mode with PTY:
# Start agent in target directory (with PTY!)
bash pty:true workdir:~/project background:true command:"codex exec --full-auto 'Build a snake game'"
# Returns sessionId for tracking
# Monitor progress
process action:log sessionId:XXX
# Check if done
process action:poll sessionId:XXX
# Send input (if agent asks a question)
process action:write sessionId:XXX data:"y"
# Submit with Enter (like typing "yes" and pressing Enter)
process action:submit sessionId:XXX data:"yes"
# Kill if needed
process action:kill sessionId:XXXWhy workdir matters: Agent wakes up in a focused directory, doesn't wander off reading unrelated files (like your soul.md 😅).
Model: gpt-5.2-codex is the default (set in ~/.codex/config.toml)
| Flag | Effect |
|---|---|
exec "prompt" | One-shot execution, exits when done |
--full-auto | Sandboxed but auto-approves in workspace |
--yolo | NO sandbox, NO approvals (fastest, most dangerous) |
# Quick one-shot (auto-approves) - remember PTY!
bash pty:true workdir:~/project command:"codex exec --full-auto 'Build a dark mode toggle'"
# Background for longer work
bash pty:true workdir:~/project background:true command:"codex --yolo 'Refactor the auth module'"⚠️ CRITICAL: Never review PRs in OpenClaw's own project folder! Clone to temp folder or use git worktree.
# Clone to temp for safe review
REVIEW_DIR=$(mktemp -d)
git clone https://github.com/user/repo.git $REVIEW_DIR
cd $REVIEW_DIR && gh pr checkout 130
bash pty:true workdir:$REVIEW_DIR command:"codex review --base origin/main"
# Clean up after: trash $REVIEW_DIR
# Or use git worktree (keeps main intact)
git worktree add /tmp/pr-130-review pr-130-branch
bash pty:true workdir:/tmp/pr-130-review command:"codex review --base main"# Fetch all PR refs first
git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*'
# Deploy the army - one Codex per PR (all with PTY!)
bash pty:true workdir:~/project background:true command:"codex exec 'Review PR #86. git diff origin/main...origin/pr/86'"
bash pty:true workdir:~/project background:true command:"codex exec 'Review PR #87. git diff origin/main...origin/pr/87'"
# Monitor all
process action:list
# Post results to GitHub
gh pr comment <PR#> --body "<review content>"# With PTY for proper terminal output
bash pty:true workdir:~/project command:"claude 'Your task'"
# Background
bash pty:true workdir:~/project background:true command:"claude 'Your task'"bash pty:true workdir:~/project command:"opencode run 'Your task'"# Install: npm install -g @mariozechner/pi-coding-agent
bash pty:true workdir:~/project command:"pi 'Your task'"
# Non-interactive mode (PTY still recommended)
bash pty:true command:"pi -p 'Summarize src/'"
# Different provider/model
bash pty:true command:"pi --provider openai --model gpt-4o-mini -p 'Your task'"Note: Pi now has Anthropic prompt caching enabled (PR #584, merged Jan 2026)!
For fixing multiple issues in parallel, use git worktrees:
# 1. Create worktrees for each issue
git worktree add -b fix/issue-78 /tmp/issue-78 main
git worktree add -b fix/issue-99 /tmp/issue-99 main
# 2. Launch Codex in each (background + PTY!)
bash pty:true workdir:/tmp/issue-78 background:true command:"pnpm install && codex --yolo 'Fix issue #78: <description>. Commit and push.'"
bash pty:true workdir:/tmp/issue-99 background:true command:"pnpm install && codex --yolo 'Fix issue #99: <description>. Commit and push.'"
# 3. Monitor progress
process action:list
process action:log sessionId:XXX
# 4. Create PRs after fixes
cd /tmp/issue-78 && git push -u origin fix/issue-78
gh pr create --repo user/repo --head fix/issue-78 --title "fix: ..." --body "..."
# 5. Cleanup
git worktree remove /tmp/issue-78
git worktree remove /tmp/issue-99When you spawn coding agents in the background, keep the user in the loop.
This prevents the user from seeing only "Agent failed before reply" and having no idea what happened.
For long-running background tasks, append a wake trigger to your prompt so OpenClaw gets notified immediately when the agent finishes (instead of waiting for the next heartbeat):
... your task here.
When completely finished, run this command to notify me:
openclaw gateway wake --text "Done: [brief summary of what was built]" --mode nowExample:
bash pty:true workdir:~/project background:true command:"codex --yolo exec 'Build a REST API for todos.
When completely finished, run: openclaw gateway wake --text \"Done: Built todos REST API with CRUD endpoints\" --mode now'"This triggers an immediate wake event — Skippy gets pinged in seconds, not 10 minutes.
pty:true, output breaks or agent hangs.mktemp -d && git init for scratch work.codex exec "prompt" runs and exits cleanly - perfect for one-shots.submit to send input + Enter, write for raw data without newline.© geezerrrr, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in Motive/Resources/Skills.bundle/coding-agent of geezerrrr/motive.
Open the folder on GitHubat commit 1db5218
We found 29 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 7 other GitHub owners. This page covers the copy in geezerrrr/motive, which our catalogue first saw on October 7, 2026.
Coding Agent next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Coding Agent this skillgeezerrrr/motive | 115 | 7 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Hook Development for Claude Code Pluginsanthropics/claude-plugins-official | 37k | 11 repos | ~4.1k | Automated safety check: Notes | Apache-2.0 | |
| Plugin Settings Patternanthropics/claude-plugins-official | 37k | 7 repos | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Mole Bug Patternstw93/Mole | 69k | — | ~2k | Automated safety check: Pass | GPL-3.0 | |
| Neat-Freak Knowledge CloseoutKKKKhazix/khazix-skills | 21k | — | ~1.9k | Automated safety check: Pass | MIT | |
| CCPM Project Managementautomazeio/ccpm | 8.4k | — | ~1.1k | Automated safety check: Pass | MIT |
anthropics/claude-plugins-official
Explains how to write Claude Code plugin hooks, both prompt-based checks and bash commands, for events such as PreToolUse, Stop and SessionStart.
anthropics/claude-plugins-official
Shows how Claude Code plugins keep per-project settings and state in .claude/plugin-name.local.md files with YAML frontmatter and a markdown body.
tw93/Mole
A catalog of recurring bug shapes in the Mole Mac cleaner, used to review safety-sensitive diffs for deletion safety, unbounded commands, shell traps and weak tests.
KKKKhazix/khazix-skills
Brings project docs, agent rule files, authorized memory and leftover workspace files back in line with what the code and runtime actually do at the end of a work session.
automazeio/ccpm
Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.
charmbracelet/crush
Explains how to configure the Crush coding agent with crushrc or crush.json, covering providers, models, LSPs, MCP servers, hooks, permissions and config precedence.
geezerrrr/motive
X/Twitter CLI for reading, searching, posting, and engagement via cookies.
geezerrrr/motive
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
geezerrrr/motive
Reorder Foodora orders + track ETA/status with ordercli. An agent skill from geezerrrr/motive.
geezerrrr/motive
Manage Apple Reminders via the remindctl CLI on macOS (list, add, edit, complete, delete).
geezerrrr/motive
Control Philips Hue lights/scenes via the OpenHue CLI. An agent skill from geezerrrr/motive.
geezerrrr/motive
iMessage/SMS CLI for listing chats, history, watch, and sending.
Works with
Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control. Coding Agent is an agent skill from geezerrrr/motive. Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.
Run `npx skills add geezerrrr/motive --skill coding-agent -a claude-code`. Or copy the skill folder (Motive/Resources/Skills.bundle/coding-agent in geezerrrr/motive) into .claude/skills/coding-agent in your project. Claude Code loads it when a task matches its description.
Run `npx skills add geezerrrr/motive --skill coding-agent -a codex`. Or copy the skill folder (Motive/Resources/Skills.bundle/coding-agent in geezerrrr/motive) into .agents/skills/coding-agent in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add geezerrrr/motive --skill coding-agent -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/coding-agent, .gemini/skills/coding-agent, .github/skills/coding-agent and .opencode/skills/coding-agent in your project.
Going by SKILL.md and its folder, Coding Agent needs the command-line tools its instructions call (bash, git, codex and gh). Our summary lists: Node.js.
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Coding Agent is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Coding Agent: Hook Development for Claude Code Plugins (anthropics/claude-plugins-official, 37k stars), Plugin Settings Pattern (anthropics/claude-plugins-official, 37k stars), Mole Bug Patterns (tw93/Mole, 69k stars) and Neat-Freak Knowledge Closeout (KKKKhazix/khazix-skills, 21k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
geezerrrr (a GitHub user) maintains it in geezerrrr/motive, which has 115 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on February 28, 2026.
Source: geezerrrr/motive on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.