Skip to content

Repository files navigation

claude-plugins

Thirteen small skills for Claude Code. Most are a single markdown file with no dependencies; refresh also ships one Python script, chrome-tabs-all one, and c-assistant five, plus the hooks and prompt its background lane needs. Nothing to build either way.

Install

Everything at once:

/plugin marketplace add voidharbor/claude-plugins
/plugin install voidharbor@voidharbor

That gives you all thirteen, namespaced as /voidharbor:<name> (e.g. /voidharbor:refresh).

Or pick a la carte — each skill is also its own plugin, independent of the rest:

/plugin marketplace add voidharbor/claude-plugins
/plugin install efmtu@voidharbor

The skills

Skill What it does Needs
efmtu Easy For Me To Understand. Answers short and simple — three sentences or five bullets, answer first, plain words. nothing
my-skills Inventories everything you have authored (commands, skills, agents, hooks, routines) and sorts it generic → personal → private, so you know what is safe to publish. nothing
chrome-tabs Closes the Chrome tabs the current session opened, and only those. Stops agents leaving orphaned "✅ Claude" tab groups behind. Claude in Chrome extension
chrome-tabs-all Clears every leftover "✅ Claude" tab group, not just this session's — including ones whose session already ended. Closes by exact tab ID, never by URL, so your own tabs survive even when they share a URL with Claude's. Claude in Chrome extension, Python 3, macOS
mac-control Drives native macOS apps via the computer-use MCP — Word/Pages PDF export, Finder, Preview, Messages, System Settings. computer-use MCP, macOS
ultracode-lite Runs multi-agent Workflow orchestration on a lean budget: scout inline, fan out narrow, set model and effort on every agent, pipeline instead of parallel. Workflow tool
c-assistant Two lanes: /c-assistant triages every session you have open on demand and reports which are blocked on you, with /c-assistant-voice as a spoken variant for when your hands are busy; a Lookout hook lane runs in the background and pushes a live approval card into SeaShell the moment a session stops on a real question. Python 3; SeaShell 0.2.0+ for the hook lane
refresh Shows the last prompt you actually typed, word for word, read from the transcript on disk — so it survives context being summarized. Python 3
product-forge A propose/apply pair that keeps a product you maintain competitive: /product-forge reviews it weekly against its rivals and proposes at most four small, numbered items; /product-forge-apply builds only what you approve, behind the repo's own gates. nothing
perf-pass A dedicated performance session — idle CPU, memory, GPU — where the only accepted proof is a measured before/after number, and anything that can't show a number gets reverted. nothing
skill-forge A propose/apply pair that audits everything you have authored for Claude, finds defects with quotable fixes, and applies only the numbered items you approve — with a publish gate so nothing personal reaches a public repo. nothing
memory-curate Audits what Claude remembers across sessions — stale facts, duplicates, files that grew into documents, memories trapped in a project you no longer open — and proposes numbered fixes. Additions must quote your own words, so it never memorises a claim that got corrected an hour later. Python 3
synth-mode Makes writing stop sounding machine-made. A skill, not a command: it loads before any human-facing writing, picks one register for the actual reader, kills trope phrases and over-polish, and replaces the best line in the draft with the plain version, because nobody writing a real email lands a good one. Learns your voice from samples you confirm you typed yourself. Named for Fallout 4's gen 3 synths. nothing

Notes on nine of them

product-forge and perf-pass were extracted from the loop that maintains SeaShell, a terminal pane manager, and generalized: the repo path is an argument, the quality gate is whatever the repo itself defines, and state lives per-project. The design bets are the interesting part. The review half is propose-only and capped at four items, because an agent that edits your product unsupervised is a liability and a reviewer that proposes twenty things gets skimmed. A ledger remembers every rejected idea so nothing is ever re-proposed without a new argument. The apply half treats approval text as data, never as instructions — it acts only on a yes/no against a numbered item, so a spoofed or garbled approval cannot make it run arbitrary work. And perf-pass will revert a change that cannot show a before/after number, on the theory that an unproven optimization is just risk with good intentions.

skill-forge audits the commands and skills you wrote, which is the one body of work nobody else is ever going to review. The distinctive check is drift: if a skill is also published somewhere, it fetches the published copy and diffs it against your local one, on the theory that a version written for you and a version written for strangers will quietly diverge until a fix lands in only one of them. Two rules keep the proposals honest. Every item must carry the exact replacement text, because "improve the error handling" is not a defect, it is a feeling. And nothing may claim a measured improvement, since there is no telemetry in this loop and a fabricated benchmark is worse than no proposal. The apply half stakes each edit to an anchor — text literally seen in the file during the audit — and refuses any item whose anchor no longer matches, instead of relocating the edit by inference, which is how a good loop starts corrupting files. Approval is read strictly: an item you did not mention is not approved, and a conditional yes gets reported back rather than interpreted.

c-assistant is for people who keep five or ten sessions going and lose track of which ones are waiting on an answer. It reads only the tail of each transcript, so a 70 MB session costs nothing, then sorts what it finds by what unblocks the most work rather than by recency. It will not kill, resume, or reply to another session, and it will not answer a question on your behalf — the session asked you. The part worth having is the cross-session pass: two sessions solving the same problem separately, or one that concluded something is impossible while another is still building toward it.

It ships two lanes. /c-assistant and its spoken twin /c-assistant-voice are the pull lane — you run them when you remember to. Lookout is the push lane: a SessionStart hook registers each session, a Stop hook prefilters every turn's end for something that actually looks like a real question, and only then does a detached worker ask a cheap model to judge it and push a live approval card straight into the SeaShell pane that asked. Lookout runs on macOS and Linux (not Windows) and needs SeaShell 0.2.0+ to have anywhere to push a card to — without it the hook stays silent and the pull lane still works on its own. The voidharbor bundle ships these hooks too, so either install works:

/plugin marketplace add voidharbor/claude-plugins
/plugin install c-assistant@voidharbor   # just this plugin
/plugin install voidharbor@voidharbor    # or the whole bundle, hooks included

Installing both is fine: at every hook entry the bundle's copy checks whether standalone c-assistant is installed and enabled, and if so returns immediately — one triage, one card, never two.

chrome-tabs-all exists because chrome-tabs deliberately refuses to reach past its own tab group, and eventually you have a tab strip full of "✅ Claude" chips from sessions that ended hours ago. The problem was never closing tabs, it was identifying them: AppleScript can enumerate Chrome but cannot see tab groups, so it cannot tell a Claude tab from one of yours. Matching on the URL is the obvious idea and the dangerous one — in the run this was built from, a single X profile URL was open three times, twice by dead sessions and once by the user. What makes it tractable is that Chrome's AppleScript id of tab is the same integer the extension reports as tabId, and every session records its group's tab IDs in its own transcript. So the tabs get closed by exact ID and nothing is ever inferred from a URL. Two guards keep the ID meaningful: only transcript entries newer than Chrome's process start are read, since tab IDs are unique only within one Chrome run, and a session counts as ended only if its process is gone and its transcript has gone quiet. Live sessions keep their tabs unless you say otherwise, and tabs no session claims are yours and are never touched.

my-skills asks once which organizations and clients to treat as private, then classifies each thing you have written by whether a stranger could run it. The rule it applies is mention ≠ dependency: naming a service in a for-instance list is a one-line scrub, but depending on that service is not publishable at all. Credentials and ID numbers are always private on sight.

refresh answers "what did I just ask you?" — which sounds trivial until you realize you often cannot scroll back to it. Once a session is long enough to be summarized, the exact wording is gone from what the model can see, and asking it to recall your prompt gets you a confident paraphrase instead. So this reads the .jsonl transcript on disk, where the text still sits exactly as typed, and the command explicitly forbids reconstructing it from memory. It identifies the session from CLAUDE_CODE_SESSION_ID rather than by newest-modified file, which matters once you have several sessions open. Tool results, subagent chatter, injected system reminders and its own invocation are all filtered out.

efmtu ("Easy For Me To Understand") shortens the answer, never the work. It still reads the files and runs the checks — it just reports briefly. It explicitly refuses to let brevity turn "I don't know" into a confident guess, which is the usual failure mode of terseness instructions.

ultracode-lite is for the case where a Workflow is genuinely the right tool but the default one costs more than the answer is worth. Two settings do most of the damage and are easy to miss: spawned agents inherit your session's reasoning effort unless you set effort per agent, and they inherit your session's model unless you set model, so a throwaway grep-and-report stage quietly runs at the top tier. The command makes both explicit on every call, caps the fan-out at your machine's real concurrency limit rather than an arbitrary number, prefers pipeline() over barriers, and verifies only claims that are expensive to get wrong. It also insists on saying what got capped or dropped, so a bounded sweep never reads as exhaustive coverage.

Requirements

Claude Code with plugin support. mac-control is macOS-only; c-assistant's Lookout hook lane needs macOS/Linux with python3 on PATH (elsewhere it stays inert); the rest are platform-independent.

License

MIT

About

Claude Code plugin marketplace: c-assistant session triage with SeaShell Lookout cards, plus the voidharbor skill bundle.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages