← Back to the collection

Claude Code and Codex Plugins by JTSternberg

License: MIT PRs Welcome Claude Code Codex

A curated collection of skills, hooks, and automation for Claude Code and Codex. The two harnesses use different catalogs in this repository, so check the support matrix before installing.

Browse the website for a quick start and selected plugins. See site maintenance for the Jekyll theme.


Quick Start

Claude Code

Add the marketplace and install any of its 39 listed plugins:

claude plugin marketplace add jtsternberg/claude-plugins
claude plugin install git-tree@jtsternberg

Verify installation:

claude plugin list

Invoke an installed skill as /<plugin>:<skill-name>, using the skill’s frontmatter name. For example: /qa-walkthrough-pr:qa-walkthrough-pr.

Codex

Codex’s native catalog currently offers codex, hotline, and the five PR plugins (address-pr-comments, qa-walkthrough-pr, update-pr-description, walk-through-work-history, watch-pr-then-action):

codex plugin marketplace add jtsternberg/claude-plugins
codex plugin add codex@jtsternberg

Open /plugins in Codex to browse configured marketplaces, or run codex plugin list --available --json in a terminal. Start a new session after installation, then mention a skill as $<plugin>:<skill-name>; for example, $codex:fable-mode.

To install one self-contained repository skill instead of a whole plugin, see standalone Codex skills. For commands, updates, catalog scope, and all 40 plugin names, see the compatibility guide.


Plugin Highlights

These are selected plugins and workflows. The support matrix is the complete 40-name inventory and the authority for harness availability.

Skills

🌳 git-tree

Create git worktrees with symlinked dependencies. Perfect for parallel branch work.

Install: claude plugin install git-tree@jtsternberg

📰 headline-refiner

Refines headlines using the 5-Part Headline Framework (Number, What, Who, Why, Twist the Knife).

Install: claude plugin install headline-refiner@jtsternberg

📝 obsidian-cli

Interacts with Obsidian vaults from the terminal using the official Obsidian CLI (v1.12+).

Install: claude plugin install obsidian-cli@jtsternberg

📊 publish-insights

Publish Claude Code /insights reports to GitHub Pages for easy sharing.

Install:

claude plugin marketplace add jtsternberg/claude-usage-data
claude plugin install publish-insights@jtsternberg/claude-usage-data

🖼️ generating-blog-images

Generate AI image prompts for blog posts by analyzing content and identifying optimal placement.

Install: claude plugin install generating-blog-images@jtsternberg

🐘 localwp-shell

Wraps WP-CLI, PHP, MySQL, and Composer commands through LocalWP’s sandboxed environment. Auto-detects the correct site from the current directory.

Install: claude plugin install localwp-shell@jtsternberg

🎬 slides-presentation

Creates self-contained HTML slide presentations from talk prompts, outlines, or content descriptions. Supports dark/light themes, SVG diagrams, and AI-generated illustrations.

Install: claude plugin install slides-presentation@jtsternberg

📤 export-presentation

Exports HTML slide presentations to PDF or PNG screenshots using browser automation. Companion to slides-presentation.

Install: claude plugin install export-presentation@jtsternberg

🥊 gauntlet

The Gauntlet Loop as a skill: build a piece, capture what it really produces, put it next to a reference that is already excellent, and let a fresh, harsh critic pick the better one without knowing which is which. The one gap it names goes to the next builder, and the loop repeats until the piece wins. setup writes the run’s spec (goal, bar, criteria, capture harness); run drives it, with --status, --stop and --resume. Builders and critics are fresh hotline callees on herdr, and every round is a commit on a gauntlet/<run-id> branch. Requires hotline and herdr.

Install: claude plugin install gauntlet@jtsternberg

📞 hotline

Cross-workspace communication for agent sessions — dial another workspace to ask questions, delegate work, or collaborate. Claude Code and Codex can place calls; the current launch transport starts Claude Code receivers. Caller identity comes from Claude Code’s native CLAUDE_CODE_SESSION_ID (or Codex’s thread ID), with a bundled fingerprint fallback for older clients.

Install: claude plugin install hotline@jtsternberg or codex plugin add hotline@jtsternberg

🧠 thinking-tools

Metacognitive reasoning frameworks for careful decision-making. Ships chestertons-fence (investigate before removing), pink-elephant (rewrite counterproductive prohibitions as positive directives), interview-mode (after two rejected drafts of the same artifact, stop generating variants and interview the user to build from their own wording), no-meat-proxy (rewrite what you’re about to hand over so the reader can relay it in their own words instead of forwarding your text verbatim), and dont-lead-the-witness (when you want a genuine response — testing an agent, asking for a review, questioning the user — ask the way the real situation would, with no hint of the answer you expect, and judge by observation).

Install: claude plugin install thinking-tools@jtsternberg

📅 session-tools

Tools for managing Claude Code session transcripts — recaps, cleanup, retitling, etc. Ships sessions-weekly-recap (daily/weekly recap notes + macOS launchd installer) and sessions-catch-up (brief yourself on another session — including a claude export-style transcript reader that works on dead sessions).

Install: claude plugin install session-tools@jtsternberg

🎙️ work-with-media

Turn audio and video into text on macOS. Bundles a MacWhisper CLI wrapper (local file transcription) and a yt-dlp skill (YouTube/Vimeo/URL — captions, description, chapters, or audio download as a transcription fallback). Subs-first for URLs, so a TLDR doesn’t require downloading 20 MB of audio.

Install: claude plugin install work-with-media@jtsternberg

🔊 text-to-speech

Speaks text aloud, or saves it as WAV/MP3, with Ollama’s local Phonon model. Describe the voice you want (“cheery female British, a bit faster”) and it matches the description to a voice the installed model actually has. Speed is applied with ffmpeg because Phonon has no speed setting of its own.

Install: claude plugin install text-to-speech@jtsternberg

🗓️ google-foresight

Reads meeting transcripts, summaries, attendees, and notes from the Google AI Edge Foresight macOS app (on-device meeting transcription), so an agent can review today’s meetings and draft notes. Writing notes back into the app is opt-in and guarded: compare-and-swap on the current notes, a check that the app is idle, read-back verification, and a 50-entry undo journal with restore. macOS only.

Install: claude plugin install google-foresight@jtsternberg

📚 research-tools

Research infrastructure for Claude Code. Ships fetch-docs — pulls a URL’s raw content into a local file so Claude reads the authoritative source instead of WebFetch’s filtered summary. Works on any http/https URL; optional HTML→markdown conversion via npx.

Install: claude plugin install research-tools@jtsternberg

🪟 cmux-cli

Control cmux (macOS terminal multiplexer / workspace manager) from the command line. Bundled workflows cover the two common agent tasks — opening a side-by-side surface in the current window, and finding / reading / driving another tab by name or on-screen content. Also exposes notifications, sidebar progress pills, tmux-compat commands, SSH remote workspaces, and the embedded browser. Includes an auto-rename skill that summarizes what a tab or workspace is doing (including claude/codex agent sessions) and gives it a concise, meaningful name.

Install: claude plugin install cmux-cli@jtsternberg

📖 fable

Skills for working with — and like — the Fable model (claude-fable-5). Ships fable-delegate: delegation discipline that keeps a Fable main agent in the thinker/boss role — planning, judgment, and reviewing output — while routing file edits, searches, tests, and other mechanical execution to Opus/Sonnet subagents. And fable-mode: the operating stance behind Fable’s judgment — own the outcome, not the response — for agents running on Opus-level models — with the habits that stance generates (fix the class not the instance, follow your own diagnosis, spend the user’s attention like a budget, verify end-to-end) — plus a Sonnet variant that keeps the stance’s values but re-fences autonomy behind bright-line guardrails.

Install: claude plugin install fable@jtsternberg

🧪 codex

Codex-native A/B experiments: codex:sol-delegate for Sol-led delegation to Terra and other available models, plus codex:fable-mode and codex:sol-mode for comparing competitive frontier-model stances on Terra.

Install: codex plugin add codex@jtsternberg

📬 agentmail

Give an agent its own email address — send, receive, reply, forward, and draft mail through the AgentMail API via the official agentmail CLI.

Install: claude plugin install agentmail@jtsternberg

🎼 maestro

Orchestration stance for a main agent overseeing delegated work. Ships conduct — boss-not-doer discipline for an implement → review → address pipeline: a fresh agent per phase (dispatched with --fresh so the session-routing cache can’t hand back the implementer as the “reviewer”), work orders that carry every environment trap a predecessor hit, verify-before-relay, and a Next for you: contract with the human. Binds to hotline and cmux-cli when installed; falls back to subagents and headless sessions. And patient-waiting — the zero-token waiting ladder (background until loop → Monitor → stop and ask), which never machine-polls a human.

Install: claude plugin install maestro@jtsternberg

⏰ delayed-work

Hit the 5-hour session limit mid-task? Stop for now and have this session pick the work back up at the reset — context still loaded, zero tokens spent waiting, no resume note needed. Ships until: a Monitor polling the clock, so the notification wakes the current session, which runs the payload itself instead of handing it to a context-free headless or cloud run. Pairs with a budget watcher that reports a reset time — arm it at the warning, not at exhaustion, since a rate-limited request has no turn left to arm anything. Also covers the plain timed case: absolute times, relative delays, and queueing several spaced-out jobs. Not a durable scheduler — the watcher dies with the session, and the skill says so when it arms one. Rung 2 of maestro’s patient-waiting ladder with the clock as the watched condition.

Install: claude plugin install delayed-work@jtsternberg

🛫 runway

Reads subscription quota and context-window headroom at session start and on prompts. Quota never stops work early: at wrap_up/stop it has the agent arm a delayed-work:until wake-up for the reset and keep going, so a 429 just puts the session to sleep until the refill. A full context window still hands off to a fresh session. RUNWAY_STOP_WORK=1 pauses until the reset instead, with a restart scheduled in the same session. Hooks ship with the plugin. Claude Code only.

Install: claude plugin install runway@jtsternberg (plus delayed-work@jtsternberg)

Workflow skills

💬 git-commits

Skills for creating git commits from staged or unstaged files with AI-generated messages. The skills are dual-harness compatible, but this repository currently offers the plugin only through its Claude Code catalog.

Skills: commit-staged, commit-unstaged

Install: claude plugin install git-commits@jtsternberg

🔀 pr-workflow — plugin group

Five single-purpose PR plugins, installable together or one at a time. pr-workflow itself is a dependency-only bundle: installing it installs all five, and you can then disable the bundle to drop the ones you don’t want.

Plugin Skills Invocation
address-pr-comments address-pr-comments, address-pr-comments-human /address-pr-comments:address-pr-comments
qa-walkthrough-pr qa-walkthrough-pr /qa-walkthrough-pr:qa-walkthrough-pr
update-pr-description update-pr-description /update-pr-description:update-pr-description
walk-through-work-history walk-through-work-history /walk-through-work-history:walk-through-work-history
watch-pr-then-action watch-pr-then-action /watch-pr-then-action:watch-pr-then-action

Available in both the Claude Code and Codex-native catalogs. Codex does not resolve plugin dependencies, so the bundle is Claude-only there — install the children directly.

Supports: CODE_CONVENTIONS — loads project conventions before implementing fixes or writing PR descriptions.

Install: claude plugin install pr-workflow@jtsternberg (all five), or one child at a time — e.g. claude plugin install qa-walkthrough-pr@jtsternberg / codex plugin add qa-walkthrough-pr@jtsternberg

🛠️ skill-tools

Skills for creating and reviewing Claude Code skills, slash commands, and subagents.

Skills: create-slash-command, create-subagent, review-skill, review-slash-command

Install: claude plugin install skill-tools@jtsternberg

📦 beads-workflow

Work through beads epics from start to completion with automatic PR creation.

Skills: tackle-epic, fix-findings-beads-tasks

The skills are dual-harness compatible, but this repository currently offers the plugin only through its Claude Code catalog.

Dependencies: Requires beads

Supports: CODE_CONVENTIONS — loads project conventions before implementation work or fixing findings.

Install: claude plugin install beads-workflow@jtsternberg

🤝 handoff

Create handoff documents to preserve context between Claude Code sessions.

Skills: handoff, pickup-handoff

Install: claude plugin install handoff@jtsternberg

Status Lines

📊 workspace-status

Status line showing model name, current directory, git branch/status, and context usage bar.

Note: Requires manual setup (status lines use a different configuration mechanism).

Setup: Update ~/.claude/settings.json:

{
  "statusLine": {
    "type": "command",
    "command": "php /path/to/claude-plugins/plugins/workspace-status/workspace-status.php",
    "padding": 0
  }
}

CODE_CONVENTIONS env var

Some plugins check for a CODE_CONVENTIONS environment variable pointing to a project-specific conventions file (e.g., patterns learned from past PR reviews). If set, the file is loaded before implementation work begins — helping avoid known anti-patterns and respect project-specific gotchas.

Setup: Add to your project’s .claude/settings.json:

{
  "env": {
    "CODE_CONVENTIONS": "docs/review-conventions.md"
  }
}

The file is plain markdown — no special format required. If the env var is unset, plugins behave as normal.

Supported by: pr-workflow, beads-workflow


🔧 Development

Clone the Repository

git clone https://github.com/jtsternberg/claude-plugins.git
cd claude-plugins

Install the Marketplace Locally

Claude Code:

claude plugin marketplace add /path/to/claude-plugins

Codex:

codex plugin marketplace add /path/to/claude-plugins

Install a Plugin from the Local Marketplace

Claude Code plugins:

claude plugin install <plugin-name>@jtsternberg

For Codex, choose a plugin that appears in the Codex-native catalog:

codex plugin add <plugin-name>@jtsternberg

Repository Structure

.claude-plugin/
└── marketplace.json     # Claude Code catalog
.agents/plugins/
└── marketplace.json     # Codex-native catalog
plugins/
└── <plugin-name>/       # Each plugin in its own directory
    ├── .claude-plugin/plugin.json  # Claude/shared manifest
    ├── .codex-plugin/plugin.json   # Codex-native manifest (when published)
    ├── skills/<skill>/SKILL.md
    ├── hooks/           # Hook scripts (optional)
    └── README.md

For the current install commands, invocation conventions, and per-plugin support boundary, see the compatibility guide. Detailed probe logs and historical decisions are kept separately in the Codex research archive. Maintainers shipping a plugin change should use the dual-harness release guide.


Contributing

Contributions are welcome! To add a new plugin:

  1. Fork this repository
  2. Create a new directory under plugins/
  3. Add its manifest and reusable workflows under skills/<name>/SKILL.md
  4. Register it in the catalog for each harness it supports
  5. Validate every skill against the repository’s dual-harness contract
  6. Update this README and the support matrix
  7. Submit a pull request

License

MIT License — see LICENSE for details.


Acknowledgments

Thanks to bvdr/claude-plugins for inspiration.