Skip to content

oliverames/ames-plugins

Repository files navigation

ames-plugins

Personal plugin marketplace for Claude Code and Codex

6 plugins64 skills16 MCP serversdual-host

License Buy Me a Coffee


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.

Why this exists

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.

Quick start

Claude Code (official, supported)

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 (supported)

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

Plugins

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

ames-standalone-skills

Oliver's original Claude Code skills covering writing, development, automation, finance, and Apple platform work. 40 skills organized by theme (see Skills catalog).

ames-dev-mcps

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

ames-general-mcps

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.

ames-community-skills

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.

build-ios-apps-codex

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.

build-macos-apps-codex

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.

Skills catalog

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, announcements
  • draft-comms — Turn meeting notes, transcripts, or action lists into follow-up messages
  • ap-style — Apply Associated Press Stylebook conventions to news writing, press releases, and editorial copy
  • readme-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 layout
  • markdown-notes — Format Markdown notes to match Oliver's vault style
  • brand-asset-finder — Find highest-resolution logos, badges, seals, and brand assets online

Apple platform and media

Finance

  • ynab-finance — Household finance via YNAB (reviews, reconciliation, reporting)

BCBS VT (work-specific)

  • bcbs-brand — Context and guidance for BCBS VT work
  • bcbs-meeting-notes — Structure BCBS VT transcripts into notes with action items
  • bcbs-wrap-up — End-of-session wrap-up, verifies Jira-tracked action items
  • bcbs-reviewer — Simulate a Brand & Engagement internal review pass on BCBS VT drafts
  • bcbs-imagerelay-sync — Sync ImageRelay downloads into the BCBS directory

Workflow and tooling

  • go — End-to-end verify/simplify/ship pipeline, triggered by /go
  • wrap-up — Session wrap-up with state persistence
  • claude-code-headless — Interact with Claude Code from other contexts
  • cmux-workflows — Tooling for cmux workspaces
  • shared-terminal-tmux — Shared interactive terminal for user and agent
  • auto-web-search — Automatic web search when stuck on a problem
  • file-organization — Oliver's file naming and organization conventions
  • dispatch-remote-control — Start a Claude Code session with remote-control access
  • horizon-vdi-control — Drive Windows VDI sessions inside Omnissa Horizon Client via Computer Use
  • verify-live — Verify documentation against live system state before rewriting
  • consolidate-memory — Reflective pass over memory files: merge duplicates, fix stale facts, prune the index
  • organize-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

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).

MCP servers catalog

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

Architecture

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)

Dual Runtime Support

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.

What crosses the boundary

  • Skill content (SKILL.md and bundled resources) is portable by spec
  • MCP server inventory is shared; Claude Code keeps the root .mcp.json, while ./sync generates Codex's .codex-plugin/mcp.json wrapper
  • Plugin content structurally matches on both sides

What does not

  • 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-codex and build-macos-apps-codex are Claude Code only by design (converted-from-Codex skills can't round-trip cleanly, since they already exist upstream in openai/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

Configuration

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.

Versioning

Each plugin's version lives in three places that must stay in sync:

  1. plugins/<name>/.claude-plugin/plugin.json — Claude-side authoritative
  2. plugins/<name>/.codex-plugin/plugin.json — Codex mirror (must match 1)
  3. Root .claude-plugin/marketplace.json — per-plugin version (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.

Development

Adding a new skill

  1. Create plugins/ames-standalone-skills/skills/<skill-name>/SKILL.md with YAML frontmatter (name, description)
  2. Add supporting files (references, scripts) in subdirectories as needed
  3. Run bump-and-sync from the repo root
  4. Commit and push; Claude Code users with autoUpdate pick it up on next launch

Adding a new plugin

  1. Create plugins/<plugin-name>/.claude-plugin/plugin.json with name, version, description, author
  2. For dual-host support, also create plugins/<plugin-name>/.codex-plugin/plugin.json mirroring the Claude manifest with Codex-specific interface and category fields
  3. Run ./sync to regenerate .claude-plugin/marketplace.json and .agents/plugins/marketplace.json
  4. Add content (skills, commands, MCPs) at the plugin root per spec
  5. Run ./codex-refresh or ./codex-doctor --live --require-enabled for Codex-facing plugins, then bump-and-sync and commit

My Claude Code configuration

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.

Installed marketplaces (11 total)

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

Enabled plugins (30 total)

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.

Environment variables

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

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).

Hooks

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

Status line

statusLine.command runs bash ~/.claude/statusline-command.sh, which renders a custom status line.

UI and agent behavior

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

Miscellaneous

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

Keeping this section current

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.

Related

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

Buy Me a Coffee

Built by Oliver Ames in Vermont • GitHubLinkedInBluesky

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors