Skip to content

Repository files navigation

cc-millz

Things that make Claude Code even better — my personal marketplace of independent plugins, by Millon15.

Structure inspired by umputun/cc-thingz.

This is an unapologetically opinionated set: every plugin here is something I actually use. Even if you don't need my particular toolbox, it may give you ideas for building your own.

Provenance: several of these plugins were generalized out of a private codebase before landing here. Extracted from a private monorepo.


Six third-party marketplaces worth a /plugin marketplace add: design dialogue, TUI diff annotation, autonomous execution, Codex, engineering skills, PhpStorm.

Deliberately not re-exported here — install them upstream and keep their updates.


🔌 Plugins

Plugin Description
🪧 agterm-lanes Self-labelling agterm panes — name, emoji, tint, glyph and reboot-survivable sessions
🤖 codex-delegation Codex CLI (gpt-5.6/gpt-5.5) as a second-tier workforce under Claude's orchestration
🧰 essentials General-purpose personal skills — code-style, concise-writing, q-sql, qsv, /e15, /tldr, /recall
📄 gws-workspace Google Workspace from an agent through the gws CLI — Docs, Sheets, Slides, Tasks, Drive, the +read/+write helpers, and the finding that a highlighted Docs comment is a browser-UI path only. Extracted from a private monorepo.
🔀 merge-kit Conflict resolution and merge forensics for any repo — profile-driven, forge read from origin, nothing silently reverted. Extracted from a private monorepo.
🔬 plan /plan:research answers a question with empirical proof: a read-only researcher, falsifiable hypotheses, a proover that writes runnable artifacts under tmp/a/<slug>/ and tries to disprove each claim; every proof carries a proof.json contract and plan-research.sh --verify re-runs it with an exit code a "fixed" claim can quote; the same script runs the pipeline headless for a peer agent. Extracted from a private monorepo
🗣️ peer-chat Two coding agents talk as equals in one agterm split, each typing into the other's composer: Claude + Codex, two Claudes or two Codexes, any model on either side. Either agent opens the other pane itself (codex on gpt-6-astra by default, a Claude peer when Codex cannot start) when a call is better for an adversary. One skill for every harness, no fixed roles, messages of any length, an enforced ask ledger, proofs over agreed readings. umputun's two-agent-chat engine, vendored behind a pane-identity adapter, plus the spawn step
🐘 phpstorm PhpStorm MCP as an agent surface — code navigation, inspections, live Xdebug loop, and a doctor that tells three identical-looking debug misconfigurations apart. Extracted from a private monorepo.
🔁 ralphex-revmux revmux as ralphex's external reviewer — preflight, one-round-per-iteration glue, two-stage runner, post-run reporter + optimizer
🧰 revmux-kit revmux project layer — xhigh-safe config, profile.md template, sol-* / fable-* rosters
🛡 security-audit Pre-adoption audit of a repo, package, MCP server or raw script — nine adaptive phases, verdict banner, every tool optional
📟 statusline Two-line status line — git scopes, context window, loaded skills and MCP, quota and spend
🛠 toolsmith Author, review, retire and explain agent dev tools in any layout — the directories come from a layout adapter, the reuse search runs first, companion skills are soft. Extracted from a private monorepo.
🪆 unslop-kit My reply contract as a Russian doll: a vendored, model-invocable copy of pstack's unslop (wording), umputun's writing-style (precision), human-brief (headline plus flat facts for a human colleague, proof in its own block), then the layout pass, loaded by a SessionStart hook
🎬 video-reader Fetch, transcribe and read one video of any length from any yt-dlp site or a local file: original-language captions or local whisper.cpp, seek-sampled frames in indexed contact sheets, chapters, dense windows for follow-ups; no limits by default, no cookies, nothing leaves the machine. Extracted from a private monorepo.
🥔 pstack (mirror) poteto's pstack, mirrored via git-subdir from cursor/plugins because upstream ships no Claude Code marketplace — 44 skills + 2 agents, Cursor-authored (model panels and ~/.cursor/rules do not apply); unslop-kit re-vendors its unslop skill from it

Each plugin is independent: install only what you want, in any combination.

📦 Install

Add the marketplace, then install the plugins you want:

/plugin marketplace add Millon15/cc-millz

/plugin install essentials@cc-millz
/plugin install codex-delegation@cc-millz
  • Test locally: run claude --plugin-dir plugins/codex-delegation, and use /reload-plugins in-session to pick up file changes.
  • Or advertise them in a repo's versioned .claude/settings.json. Pinning a plugin there does NOT install it: on the next session Claude Code reports it as not installed and prints the claude plugin install line for you to run. The one automatic install path is a plugin's own dependencies field, which installs the plugins it names alongside it:
{
  "extraKnownMarketplaces": {
    "cc-millz": { "source": { "source": "github", "repo": "Millon15/cc-millz" } }
  },
  "enabledPlugins": { "codex-delegation@cc-millz": true }
}

🔄 Updating

  • /plugin → Marketplaces → Update marketplace — the reliable path; pulls the latest catalog from the repository immediately.
  • /plugin → Installed → Update now — uses a local cache that can be stale; treat it as a fallback after updating the marketplace.
  • Enable auto-update: /plugin → Marketplaces → Enable auto-update refreshes the marketplace catalog on each session start.

🧭 Conventions

The --explain contract

Every plugin that ships an entry script under scripts/ resolves its project configuration the same way, and prints that resolution on demand. One shape, so the fifth plugin matches the first four without archaeology.

  • Invocation — scripts/<plugin>.sh --explain. Read-only: it resolves, prints and exits, and touches nothing.
  • Profile — a committed .<plugin>.json at the consuming project's root. Team-shared repo facts belong in version control, so nothing is prompted per user.
  • Exit codes — 0 when the resolution succeeded, 2 when a profile exists but cannot be read or parsed. A malformed profile is never a silent fall-through to auto-detection.

Output is a single JSON object on stdout:

{
  "plugin": "merge-kit",
  "profile_file": ".merge-kit.json",
  "values":  { "test_cmd": "npm test", "forge": "gh" },
  "sources": { "test_cmd": "profile",  "forge": "detected:origin-url" }
}
  • profile_file is the resolved path, or null when no profile was found.
  • Every key in values has the same key in sources. A value with no source is a bug.
  • A source is one of three words: profile when the committed file supplied it, detected:<signal> when the tool worked it out and from what, default when neither applied and the tool fell back.
  • When a tool can detect nothing and has no honest default, it exits with a usage message naming the markers it looked for. An unmarked directory is a usage error, not a default.

Tests assert both halves through the shared helper, assert_explain_source <json> <key> <expected-source>, so a value that is right for the wrong reason still fails.

🧪 Tests

The whole test surface is flat, at the repo root. A plugin install copies that plugin's directory out of the marketplace clone, so tests and fixtures parked under plugins/<name>/ would be downloaded by every user of the plugin. At the root they stay in the repo and out of the install.

tests/test-<plugin>-<suite>.bats     shell and command surfaces
tests/test-<plugin>-<suite>.test.ts  TypeScript, run under bun test
tests/fixtures/<plugin>/             fixtures, one directory per plugin
tests/helpers/                       shared bats helpers
  • tests/helpers/common.bash carries temp-directory setup and teardown, stub executables on PATH, git fixtures, and assert_explain_source.
  • make test discovers and runs every suite of both kinds. make test-bats and make test-ts run one kind.
  • CI runs the same two discovery sets on every push and pull request.

About

Claude&Codex plugin marketplaces — claude /peer-chat w/ codex, delegation and friends

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages