Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/TheBeardedBearSAS/claude-craftnpx agentmods add commands/thebeardedbearsas/claude-craft/generate-adapterWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/thebeardedbearsas/claude-craft/generate-adapter)<a href="https://agentmods.dev/commands/thebeardedbearsas/claude-craft/generate-adapter"><img src="https://agentmods.dev/badge/commands/thebeardedbearsas/claude-craft/generate-adapter.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00022 | $0.01474 |
| Opus 5 | $0.00011 | $0.00737 |
| Sonnet 5 | $0.00004 | $0.00295 |
| Haiku 4.5 | $0.00002 | $0.00147 |
Grade A, and why
generate-adapter scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 188 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Generieren einer Paperclip-Extension
Argumente
name(erforderlich) — Kebab-Case-Name (z.B.linear-sync,custom-claude)kind(erforderlich) — eines vonplugin|adapter
Welches?
| Bedarf | Verwenden Sie |
|---|---|
| Features, Integrationen, Jobs, UI-Slots oder ein neues Dashboard-Widget hinzufügen | plugin |
| Eine neue AI-Runtime-Option hinzufügen (neuer CLI-Agent, neue Remote-Runtime) | adapter |
Im Zweifel: Beginnen Sie mit einem Plugin.
kind = plugin (empfohlen)
Paperclip liefert einen First-Party-Scaffolder.
# In einem leeren Verzeichnis (oder Monorepo-Root)
npm create paperclip-plugin@latest
# oder
pnpm create paperclip-plugin
Folgen Sie den Prompts. Output:
<plugin-name>/
├── package.json
├── tsconfig.json
├── src/
│ ├── worker.ts # definePlugin({ setup(ctx) }) + runWorker
│ ├── manifest.ts # PaperclipPluginManifestV1
│ └── ui/ # optional — React-Teile für UI-Slots
├── tests/
│ └── worker.test.ts # createTestHarness aus @paperclipai/plugin-sdk/testing
└── README.md
Minimaler Worker:
import { definePlugin, runWorker, z } from "@paperclipai/plugin-sdk";
const configSchema = z.object({
apiKey: z.string().describe("API-Key-Referenz (ctx.secrets)"),
});
const plugin = definePlugin({
async setup(ctx) {
ctx.logger.info(`${ctx.manifest.name} starting`);
ctx.events.on("issue.created", async (event) => {
ctx.logger.info("issue.created", { entityId: event.entityId });
// ...
});
ctx.jobs.register("hello", async (job) => {
ctx.logger.info("hello job", { runId: job.runId });
});
},
async onHealth() {
return { status: "ok" };
},
});
export default plugin;
runWorker(plugin, import.meta.url);
Manifest-Essentials
Deklarieren Sie nur die Capabilities, die Sie benötigen:
import type { PaperclipPluginManifestV1 } from "@paperclipai/plugin-sdk";
export const manifest: PaperclipPluginManifestV1 = {
apiVersion: 1,
id: "acme-linear-sync",
name: "Acme Linear Sync",
version: "0.1.0",
categories: ["integration"],
capabilities: ["network.http", "events.subscribe"], // enger Scope!
instanceConfigSchema: { /* JSON Schema aus zod */ },
jobs: [{ key: "full-sync", title: "Full sync" }],
// webhooks, launchers, ui slots, tools — nur hinzufügen, was Sie ausliefern
};
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 188 lines · 22 tokens per session scan A e09d964d2cf9
generate-adapter is a command published in the GitHub repository TheBeardedBearSAS/claude-craft (105 stars, last pushed 5d ago), licensed MIT. It adds 22 tokens to every session and 1,474 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other commands, from other repositories
test-suite
Run comprehensive test suite with coverage analysis.
assemble-team
Assemble a pre-built agent team for parallel work - review, feature, debug, cross-platform, full-stack, or research.
standardize-claude-md
Add missing toolkit sections (Related Global Rules, Quick Start) to existing CLAUDE.md.
checklist
Generate a custom checklist for the current feature based on user requirements.
clarify
Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec.
specify
Create or update the feature specification from a natural language feature description.