Personal plugin marketplace for Claude Code and Codex
6 plugins •
64 skills •
16 MCP servers •
dual-host
A single repo that ships Oliver Ames' personal plugin catalog to two AI coding agents at once: Claude Code and Codex. The same plugin tree carries both manifest formats side by side, so one git push updates both hosts.
Running two agents without duplicating content is a real problem. Claude Code and Codex both adopted a plugin/skill model in early 2026, but they publish incompatible marketplace manifests at different paths (.claude-plugin/ vs .agents/plugins/) and different schemas. Most marketplaces ship only one. That forces users to either pick an agent or maintain parallel forks.
ames-plugins takes the additive route. One tree, two manifest namespaces, identical skill and MCP content underneath. Skills are portable by spec (the SKILL.md format is shared across hosts per Anthropic's Agent Skills and OpenAI's Codex Skills). Only the plugin and marketplace manifests differ, and both sit in the same repo. The cost is a small amount of duplicated JSON; the benefit is a single source of truth for an otherwise split ecosystem.
Claude Code and Codex support are both maintained paths. Claude Code remains the source-of-truth authoring target, and Codex support is additive: Codex-specific manifests, MCP wrappers, cache refresh, and live MCP visibility checks live beside the Claude files without reshaping Claude's contract.
Declarative install. Add to ~/.claude/settings.json:
{
"extraKnownMarketplaces": {
"ames-plugins": {
"source": { "source": "github", "repo": "oliverames/ames-plugins" },
"autoUpdate": true
},
"ames-connectors": {
"source": { "source": "github", "repo": "oliverames/ames-connectors" },
"autoUpdate": true
}
},
"enabledPlugins": {
"ames-standalone-skills@ames-plugins": true,
"ames-dev-mcps@ames-plugins": true,
"ames-general-mcps@ames-plugins": true,
"ames-ynab@ames-connectors": true,
"ames-community-skills@ames-plugins": true,
"build-ios-apps-codex@ames-plugins": true,
"build-macos-apps-codex@ames-plugins": true
}
}Restart Claude Code. The marketplace registers, plugins install, and autoUpdate keeps them current on each launch.
Interactive install. Or run:
/plugin marketplace add oliverames/ames-plugins
/plugin marketplace add oliverames/ames-connectors
/plugin install ames-standalone-skills@ames-plugins
/plugin install ames-dev-mcps@ames-plugins
/plugin install ames-general-mcps@ames-plugins
/plugin install ames-ynab@ames-connectors
/plugin install ames-community-skills@ames-plugins
/plugin install build-ios-apps-codex@ames-plugins
/plugin install build-macos-apps-codex@ames-plugins
codex plugin marketplace add oliverames/ames-plugins
./codex-refresh
codex-refresh upgrades the marketplace clone, enables the four Codex-compatible ames-plugins plugins in ~/.codex/config.toml, materializes missing plugin cache entries, and runs ./codex-doctor --live --require-enabled. build-ios-apps-codex and build-macos-apps-codex are intentionally absent from the Codex side (see below).
For a read-only check after any change:
./codex-doctor --live --require-enabled
For a source-only marketplace self-test before publishing:
./selftest
Six plugins ship in this marketplace:
Custom first-party MCP connectors moved to ames-connectors, which now owns ames-ynab and ames-lytho.
| Plugin | Hosts | Version | Summary |
|---|---|---|---|
ames-standalone-skills |
Claude + Codex | 3.22.9 | Oliver's original skill pack (40 skills) |
ames-dev-mcps |
Claude + Codex | 1.0.4 | 6 development-focused MCP servers for iOS/macOS workflows |
ames-general-mcps |
Claude + Codex | 3.3.2 | 10 day-to-day general-purpose MCP servers |
ames-community-skills |
Claude + Codex | 2.1.4 | 7 third-party skills (humanizer by blader + 6 from Osaurus) |
build-ios-apps-codex |
Claude only | 1.0.3 | 6 iOS dev skills converted from OpenAI's Codex plugin |
build-macos-apps-codex |
Claude only | 1.0.3 | 11 macOS dev skills + 3 commands converted from OpenAI's Codex plugin |
Oliver's original Claude Code skills covering writing, development, automation, finance, and Apple platform work. 40 skills organized by theme (see Skills catalog).
Development-focused MCP servers for iOS and macOS workflows:
| MCP | Purpose |
|---|---|
apple-docs |
Apple Developer documentation search and WWDC lookup |
apple-notifier |
Native macOS notifications, speech, screen capture |
macos-automator |
AppleScript and JXA via osascript |
SimGenie |
iOS Simulator helpers |
sosumi |
Apple documentation fetcher |
XcodeBuildMCP |
Xcode build/run/test for simulators and devices |
Day-to-day general-purpose MCP servers (formerly ames-preferred-mcps):
| MCP | Purpose |
|---|---|
drafts |
Drafts.app integration for note capture |
excel |
Excel workbook manipulation |
google-workspace |
Gmail, Calendar, Drive, Docs, Sheets, Tasks, Meet |
iMCP |
Apple event bridge (calendars, reminders) |
markitdown |
Convert files to Markdown |
merriam-webster |
Collegiate Dictionary + Thesaurus lookups for editorial work |
pandoc |
Universal document conversion |
peekaboo |
macOS UI automation and screen capture |
agent-tinyfish-ai |
Tinyfish AI agent (OAuth-protected HTTP MCP) |
Some servers depend on locally installed apps or additional credentials.
A wrapper for third-party skills that ship as bare SKILL.md files with no upstream marketplace of their own. Currently 7 skills:
humanizer— Remove signs of AI-generated writing from text. Originally by blader.content-summarizer— Extract key points and create structured summaries. By Osaurus.creative-brainstormer— Generate ideas, overcome creative blocks, and explore possibilities. By Osaurus.data-visualizer— Render charts and graphs from data inline or from file attachments. By Osaurus.debug-assistant— Systematic debugging and problem-solving approach. By Osaurus.productivity-coach— Task management, prioritization, and goal achievement. By Osaurus.research-analyst— In-depth research with fact-checking and balanced analysis. By Osaurus.
When an upstream author publishes their own marketplace (as twostraws did with SwiftUI Pro), that upstream is preferred and the skill leaves this plugin.
Claude Code only. 6 iOS development skills converted from OpenAI's build-ios-apps Codex plugin (MIT): ios-app-intents, ios-debugger-agent, swiftui-liquid-glass, swiftui-performance-audit, swiftui-ui-patterns, swiftui-view-refactor. Each lives at plugins/build-ios-apps-codex/skills/<name>/. Run ./plugins/build-ios-apps-codex/update.sh to resync from the local Codex plugin cache.
Claude Code only. 11 macOS development skills plus 3 commands converted from OpenAI's build-macos-apps Codex plugin (MIT): appkit-interop, build-run-debug, liquid-glass, packaging-notarization, signing-entitlements, swiftpm-macos, swiftui-patterns, telemetry, test-triage, view-refactor, window-management. Commands: build-and-run-macos-app, fix-codesign-error, test-macos-app. Run ./plugins/build-macos-apps-codex/update.sh to resync from the local Codex plugin cache.
Both plugins originated in openai/plugins and were adapted for Claude Code. They are omitted from the Codex marketplace manifest by design, since installing them in Codex would re-import already-diverged skills.
40 skills in ames-standalone-skills, grouped by theme:
Writing and communications
match-my-writing-style— Apply Oliver's writing voice to drafts, emails, blog posts, announcementsdraft-comms— Turn meeting notes, transcripts, or action lists into follow-up messagesap-style— Apply Associated Press Stylebook conventions to news writing, press releases, and editorial copyreadme-style— Apply Oliver's README conventions (used to author this very file)docx-finalize-version— Turn a reviewed tracked-changes Word doc into a clean shareable version (accept changes, prune comments)resume-style— Ames-inspired resume typography and layoutmarkdown-notes— Format Markdown notes to match Oliver's vault stylebrand-asset-finder— Find highest-resolution logos, badges, seals, and brand assets online
Apple platform and media
apple-music-rip— Download DRM-free Apple Music tracksaudible-library— Download and back up Audible audiobooksapple-notes-formatting— Format content for Apple Notesapple-workout-generator— Create.workoutfiles for Apple Watchmacos-app-icons— Extract high-res app icons from.appbundlessmart-transcribe— Transcribe audio with cleanup and speaker attributiongenerate-image— Generate and edit images via AI toolscreate-shortcut— Build Apple Shortcuts via Jelly or raw plistios-capabilities— Reference for entitlements and Info.plist keystestflight-deployment— Deploy iOS apps to TestFlight with CI/CD
Finance
ynab-finance— Household finance via YNAB (reviews, reconciliation, reporting)
BCBS VT (work-specific)
bcbs-brand— Context and guidance for BCBS VT workbcbs-meeting-notes— Structure BCBS VT transcripts into notes with action itemsbcbs-wrap-up— End-of-session wrap-up, verifies Jira-tracked action itemsbcbs-reviewer— Simulate a Brand & Engagement internal review pass on BCBS VT draftsbcbs-imagerelay-sync— Sync ImageRelay downloads into the BCBS directory
Workflow and tooling
go— End-to-end verify/simplify/ship pipeline, triggered by/gowrap-up— Session wrap-up with state persistenceclaude-code-headless— Interact with Claude Code from other contextscmux-workflows— Tooling for cmux workspacesshared-terminal-tmux— Shared interactive terminal for user and agentauto-web-search— Automatic web search when stuck on a problemfile-organization— Oliver's file naming and organization conventionsdispatch-remote-control— Start a Claude Code session with remote-control accesshorizon-vdi-control— Drive Windows VDI sessions inside Omnissa Horizon Client via Computer Useverify-live— Verify documentation against live system state before rewritingconsolidate-memory— Reflective pass over memory files: merge duplicates, fix stale facts, prune the indexorganize-inbox— Distribute a staging inbox folder to permanent homes (classify, dedup, route, move with undo)split-scanned-pdf— Split one multi-document scanned PDF into separate per-document PDFs
Context and integrations
op-vault— Store, retrieve, and rotate credentials in 1Passwordgoogle-account-migration— Migrate mail, files, and data between Google accountsgmcf-masters-swim— Daily GMCF masters swim workout lookup
Plus 6 skills in build-ios-apps-codex, 11 skills (+ 3 commands) in build-macos-apps-codex, and 7 in ames-community-skills (humanizer plus 6 from Osaurus).
16 MCP servers split across two plugins:
| Plugin | Server count | Details |
|---|---|---|
ames-dev-mcps |
6 development-focused servers | See plugin table above |
ames-general-mcps |
10 day-to-day servers | See plugin table above |
The repo carries two parallel manifest namespaces under a shared plugin tree:
ames-plugins/
├── .claude-plugin/marketplace.json # Claude Code marketplace (authoritative)
├── .agents/plugins/marketplace.json # Codex marketplace
└── plugins/
└── <plugin-name>/
├── .claude-plugin/plugin.json # Claude Code plugin manifest
├── .codex-plugin/plugin.json # Codex plugin manifest (if applicable)
├── .codex-plugin/mcp.json # Generated Codex MCP wrapper (if applicable)
├── .mcp.json # Claude Code MCP config, source for Codex wrapper
└── skills/<skill-name>/SKILL.md # Skill files (portable across hosts)
| Host | Marketplace manifest | Per-plugin manifest | Plugins |
|---|---|---|---|
| Claude Code | .claude-plugin/marketplace.json |
.claude-plugin/plugin.json |
6 |
| Codex | .agents/plugins/marketplace.json |
.codex-plugin/plugin.json |
4 (excludes build-ios-apps-codex, build-macos-apps-codex, and first-party connectors now in ames-connectors) |
This repo follows the same dual-marketplace idea as Shortcuts Playground, but keeps one shared plugin tree instead of separate claude/ and codex/ package folders. Claude Code reads .claude-plugin/marketplace.json; Codex reads .agents/plugins/marketplace.json. Per-plugin Claude metadata remains authoritative, while Codex-only UI metadata, MCP wrapper paths, and plugin-browser assets live under .codex-plugin/.
Runtime differences are intentional and documented in place: build-ios-apps-codex and build-macos-apps-codex are Claude-only because Codex already ships their upstream equivalents; shared skills use one SKILL.md; Claude-only frontmatter such as allowed-tools and effort is audited by ./sync so it stays visible if Codex ever tightens schema handling.
- Skill content (
SKILL.mdand bundled resources) is portable by spec - MCP server inventory is shared; Claude Code keeps the root
.mcp.json, while./syncgenerates Codex's.codex-plugin/mcp.jsonwrapper - Plugin content structurally matches on both sides
- Plugin and marketplace manifests differ in location and schema; they live side by side in the same repo
- Claude Code's marketplace implementation is not reshaped to satisfy Codex. Codex support stays additive and isolated in
.agents/and.codex-plugin/ build-ios-apps-codexandbuild-macos-apps-codexare Claude Code only by design (converted-from-Codex skills can't round-trip cleanly, since they already exist upstream inopenai/plugins)- Third-party marketplaces that publish only one manifest format can't be rewrapped by ames-plugins. Install those from upstream wherever the author supports
Per-plugin environment requirements:
| Plugin | Variable | Required | Purpose |
|---|---|---|---|
ames-dev-mcps |
varies | varies | Some servers require their own credentials or apps |
ames-general-mcps |
varies | varies | Some servers require their own credentials or apps |
Credentials are never stored in the repo. MCPs reference environment variables at runtime, with secrets resolved from the user's local configuration.
Each plugin's version lives in three places that must stay in sync:
plugins/<name>/.claude-plugin/plugin.json— Claude-side authoritativeplugins/<name>/.codex-plugin/plugin.json— Codex mirror (must match 1)- Root
.claude-plugin/marketplace.json— per-pluginversion(must match 1)
The marketplace itself has a separate version at .claude-plugin/marketplace.json's top-level metadata.version, currently 3.6.0.
Workflow scripts at the repo root (sync, bump-and-sync, codex-refresh, codex-doctor) help keep these aligned after content changes. ./sync propagates version and shared metadata from .claude-plugin/plugin.json into the matching .codex-plugin/plugin.json, threads enriched metadata fields into the generated marketplace entry, and refreshes Codex MCP wrappers. ./codex-refresh makes the local Codex install match the published Codex marketplace. Use ./sync --check-codex for generated-file and cache validation, and ./codex-doctor --live --require-enabled when you also want live codex mcp list verification. Always run one of those before committing version-bearing changes.
./selftest is the shortest source-only release check: it validates all JSON manifests, runs ./sync --check-codex, and fails if generated marketplaces, Codex metadata, MCP wrappers, skill trees, or plugin-browser assets drift.
- Create
plugins/ames-standalone-skills/skills/<skill-name>/SKILL.mdwith YAML frontmatter (name,description) - Add supporting files (references, scripts) in subdirectories as needed
- Run
bump-and-syncfrom the repo root - Commit and push; Claude Code users with
autoUpdatepick it up on next launch
- Create
plugins/<plugin-name>/.claude-plugin/plugin.jsonwithname,version,description,author - For dual-host support, also create
plugins/<plugin-name>/.codex-plugin/plugin.jsonmirroring the Claude manifest with Codex-specificinterfaceandcategoryfields - Run
./syncto regenerate.claude-plugin/marketplace.jsonand.agents/plugins/marketplace.json - Add content (skills, commands, MCPs) at the plugin root per spec
- Run
./codex-refreshor./codex-doctor --live --require-enabledfor Codex-facing plugins, thenbump-and-syncand commit
A complete snapshot of ~/.claude/settings.json, documented here so this repo doubles as a rebuilding reference. Kept in sync by the wrap-up skill: any session that changes ~/.claude/settings.json or installs or removes a plugin also updates the tables below and commits the result. If this machine died tomorrow, these tables plus a fresh ~/.claude/settings.json would reconstruct the environment.
10 marketplaces declared in extraKnownMarketplaces, plus claude-plugins-official as the built-in default. This snapshot reflects ~/.claude/settings.json on 2026-05-30.
| Marketplace | Source | Auto-update | Why it's installed |
|---|---|---|---|
claude-plugins-official |
anthropics/claude-plugins-official |
Built in | Anthropic's official curated plugin directory |
ames-plugins |
oliverames/ames-plugins |
true | This repo. Oliver's personal skill and workflow marketplace |
ames-connectors |
oliverames/ames-connectors |
true | Oliver's first-party MCP connector marketplace |
apple-notes-mcp-ames |
oliverames/apple-notes-mcp-ames |
manual | Oliver's Apple Notes MCP fork, used by both Claude Code and Codex |
anthropic-agent-skills |
anthropics/skills |
true | Anthropic's open-source Agent Skills |
axiom-marketplace |
CharlesWiltgen/Axiom |
true | Axiom marketplace, currently registered with no enabled plugins |
claude-community |
anthropics/claude-plugins-community |
true | Anthropic-stewarded community plugins |
knowledge-work-plugins |
anthropics/knowledge-work-plugins |
true | Anthropic knowledge-work plugins |
openai-codex |
openai/codex-plugin-cc |
true | OpenAI Codex plugin for Claude Code interop |
shortcuts-playground |
viticci/shortcuts-playground-plugin |
manual | Federico Viticci's Shortcuts Playground plugin |
swiftui-agent-skill |
twostraws/SwiftUI-Agent-Skill |
true | Paul Hudson's SwiftUI Pro skill |
Grouped by source marketplace. Each plugin@marketplace key in enabledPlugins is listed below.
claude-plugins-official (18 plugins): chrome-devtools-mcp, claude-code-setup, claude-md-management, code-review, code-simplifier, commit-commands, feature-dev, frontend-design, github, imessage, playwright, plugin-dev, pr-review-toolkit, pyright-lsp, remember, security-guidance, swift-lsp, typescript-lsp.
ames-plugins (5 plugins): ames-community-skills, ames-dev-mcps, ames-general-mcps, ames-standalone-skills, build-macos-apps-codex.
ames-connectors (1 plugin): ames-ynab.
anthropic-agent-skills (1 plugin): document-skills.
apple-notes-mcp-ames (1 plugin): apple-notes.
knowledge-work-plugins (1 plugin): pdf-viewer.
openai-codex (1 plugin): codex.
shortcuts-playground (1 plugin): shortcuts-playground.
swiftui-agent-skill (1 plugin): swiftui-pro.
Defined in env block of ~/.claude/settings.json and at session launch. OP_SERVICE_ACCOUNT_TOKEN is intentionally omitted from this record.
Claude Code runtime:
| Variable | Value | Why |
|---|---|---|
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS |
1 |
Opt into experimental agent teams feature for multi-agent workflows |
ENABLE_TOOL_SEARCH |
1 |
Enable deferred-tool search via the ToolSearch tool, keeping the initial tool list short |
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE |
85 |
Auto-compact context at 85% of window rather than the default 95%, for more headroom before compression |
CLAUDE_CODE_NO_FLICKER |
1 |
Suppress terminal redraw flicker during streaming output |
BASH_MAX_OUTPUT_LENGTH |
200000 |
Raise the Bash output truncation limit to 200KB for long-running commands (tests, builds) |
Plugin credentials (set in shell, not in settings.json):
Connector-specific credentials now live with ames-connectors. Other plugin-specific credentials (for servers in ames-dev-mcps, ames-general-mcps, and some third-party plugins) are resolved at runtime through local configuration rather than stored in the repo.
permissions.defaultMode is auto (auto-allow tools on the allowlist without prompting). The allowlist covers core file I/O, search, language tooling, skills, agents, and teamwork primitives so those never interrupt flow:
Read, Edit, Write, Glob, Grep, NotebookEdit, TaskCreate, TaskUpdate, TaskList, TaskGet, TaskStop, LSP, Agent, Skill, ToolSearch, ListMcpResourcesTool, ReadMcpResourceTool, EnterWorktree, TeamCreate, TeamDelete, SendMessage
deny is empty. Tools outside the allowlist still require explicit approval. Two additional flags suppress specific prompts: skipAutoPermissionPrompt: true (no repeated prompts for the same tool) and skipDangerousModePermissionPrompt: true (no warning when entering dangerous mode).
Two PostToolUse hooks, both in hooks.PostToolUse:
| Matcher | Command | Effect |
|---|---|---|
Bash |
Python one-liner that checks if the bash command contained git commit, and if so prints ✅ Committed and the latest commit summary |
Lightweight confirmation that a commit actually landed, useful during multi-commit sessions |
Edit|Write |
bash ~/Library/Mobile Documents/com~apple~CloudDocs/Developer/Scripts/validate-skill |
Runs the validate-skill shell script after any file edit or write, to catch skill authoring errors (malformed frontmatter, broken references) at write time |
statusLine.command runs bash ~/.claude/statusline-command.sh, which renders a custom status line.
| Setting | Value | Why |
|---|---|---|
model |
sonnet |
Main-thread model. The sonnet family alias auto-resolves to the latest Sonnet (currently 4.6); keeps me on the best cost-per-capability tier without manual migration when a new Sonnet ships |
advisorModel |
opus |
Family alias for the advisor tool; auto-resolves to the latest Opus (currently 4.7). The advisor's job is to be the stronger reviewer, so it stays on Opus even when the main thread is Sonnet |
outputStyle |
Explanatory |
Default to the explanatory style, which surfaces educational insights alongside changes. Useful when the point of a session is learning as much as shipping |
alwaysThinkingEnabled |
true |
Extended thinking on for every turn, not just complex ones. Modern Claude models use the thinking budget adaptively, so leaving it on is almost free on easy turns |
effortLevel |
medium |
Balanced tier. Applies to both main-thread and advisor calls (there is no separate advisor effort key). Lower tiers ship faster; higher tiers burn more tokens verifying. Medium is the default compromise |
autoDreamEnabled |
true |
Background reflection between turns (experimental) |
teammateMode |
auto |
Auto-spawn teammate agents when the workflow obviously benefits from parallelism |
viewMode |
focus |
Focused UI mode: hide non-essential chrome |
voiceEnabled |
true |
Voice I/O on for spoken prompts and replies |
remoteControlAtStartup |
true |
Accept remote-control connections from other clients at launch |
| Setting | Value | Why |
|---|---|---|
cleanupPeriodDays |
45 |
Keep conversation history for 45 days instead of the default, since some projects span weeks |
autoUpdatesChannel |
latest |
Track the bleeding-edge Claude Code release channel |
feedbackSurveyRate |
0 |
Disable in-product feedback surveys |
enableAllProjectMcpServers |
true |
Project-level MCP servers from .mcp.json load automatically without per-project opt-in |
The wrap-up skill runs a config-drift check at end of session. If any of these change during a session, the wrap-up flow updates this section and commits the change:
- New plugin enabled or disabled in
~/.claude/settings.json - New marketplace added to
extraKnownMarketplaces - New env variable added to
env - Any top-level settings value changes
- Any hook added, removed, or modified
This is what makes the configuration record trustworthy: it doesn't go stale because the wrap-up ritual won't let it.
| Thing | Role |
|---|---|
oliverames/dotfiles |
Shell config, install script, system-wide hooks |
oliverames/scripts |
CLI tools including sync utilities |
oliverames/claude-code-backup |
Mirror of ~/.claude/ with secrets redacted |
| openai/plugins | Upstream for build-ios-apps-codex and build-macos-apps-codex converted skills |
| twostraws/SwiftUI-Agent-Skill | Recommended companion marketplace for SwiftUI Pro |
| blader/humanizer | Upstream for humanizer in ames-community-skills |
Built by Oliver Ames in Vermont • GitHub • LinkedIn • Bluesky