From e0717adf261527d3ff594b0ca568b599be766421 Mon Sep 17 00:00:00 2001 From: Javier Leandro Arancibia Date: Fri, 29 May 2026 21:31:23 +0000 Subject: [PATCH 1/3] feat(plugins): add d2 and b3sum bundled plugins d2: declarative diagram scripting language (Go, 18k+ stars) - Compile .d2 files to SVG, PNG, PDF - Supports watch mode, themes, multiple layout engines - Source: https://github.com/terrastruct/d2 b3sum: BLAKE3 cryptographic hash CLI (Rust, 5k+ stars) - Compute BLAKE3 hashes for files and streams - Multi-threaded, fast, secure - Source: https://github.com/BLAKE3-team/BLAKE3 --- plugins/b3sum/install-guidance.json | 11 +++ plugins/b3sum/meta.json | 5 ++ plugins/b3sum/plugin.json | 107 +++++++++++++++++++++++ plugins/b3sum/skills/quickstart/SKILL.md | 58 ++++++++++++ plugins/d2/install-guidance.json | 11 +++ plugins/d2/meta.json | 6 +- plugins/d2/plugin.json | 102 +++++++++++++-------- plugins/d2/skills/quickstart/SKILL.md | 59 +++++++++++++ 8 files changed, 319 insertions(+), 40 deletions(-) create mode 100644 plugins/b3sum/install-guidance.json create mode 100644 plugins/b3sum/meta.json create mode 100644 plugins/b3sum/plugin.json create mode 100644 plugins/b3sum/skills/quickstart/SKILL.md create mode 100644 plugins/d2/install-guidance.json create mode 100644 plugins/d2/skills/quickstart/SKILL.md diff --git a/plugins/b3sum/install-guidance.json b/plugins/b3sum/install-guidance.json new file mode 100644 index 00000000..c8fa9d49 --- /dev/null +++ b/plugins/b3sum/install-guidance.json @@ -0,0 +1,11 @@ +{ + "plugin": "b3sum", + "binary": "b3sum", + "check": "which b3sum", + "install_steps": [ + "cargo install b3sum", + "Verify: b3sum --version", + "supercli plugins install ./plugins/b3sum --on-conflict replace --json" + ], + "note": "Requires Rust/Cargo. Also available via: brew install b3sum. b3sum is the CLI component of the BLAKE3 hash project — BLAKE3 is the fastest of the standardized hash functions, significantly faster than SHA-256 and SHA-512." +} diff --git a/plugins/b3sum/meta.json b/plugins/b3sum/meta.json new file mode 100644 index 00000000..a9f7124d --- /dev/null +++ b/plugins/b3sum/meta.json @@ -0,0 +1,5 @@ +{ + "description": "b3sum — compute BLAKE3 cryptographic hashes from the command line. Multi-threaded, secure hashing for files and streams. Supports check mode and raw output. Non-interactive, scriptable.", + "tags": ["b3sum", "blake3", "hash", "crypto", "checksum", "hashing", "rust"], + "has_learn": true +} diff --git a/plugins/b3sum/plugin.json b/plugins/b3sum/plugin.json new file mode 100644 index 00000000..8fa6e8bf --- /dev/null +++ b/plugins/b3sum/plugin.json @@ -0,0 +1,107 @@ +{ + "name": "b3sum", + "version": "0.1.0", + "description": "b3sum — compute BLAKE3 cryptographic hashes from the command line. Fast, secure hashing for files and streams. Supports multi-threaded hashing, checked mode, and raw output. Non-interactive, scriptable, suitable for CI/CD pipelines.", + "source": "https://github.com/BLAKE3-team/BLAKE3", + "checks": [ + { "type": "binary", "name": "b3sum" } + ], + "install_guidance": { + "plugin": "b3sum", + "binary": "b3sum", + "check": "which b3sum", + "install_steps": [ + "cargo install b3sum", + "Verify: b3sum --version", + "Test: b3sum /etc/hostname", + "supercli plugins install ./plugins/b3sum --on-conflict replace --json" + ] + }, + "learn": { + "file": "skills/quickstart/SKILL.md" + }, + "commands": [ + { + "namespace": "b3sum", + "resource": "self", + "action": "version", + "description": "Print b3sum version", + "adapter": "process", + "adapterConfig": { + "command": "b3sum", + "baseArgs": ["--version"], + "missingDependencyHelp": "Install b3sum: cargo install b3sum" + }, + "args": [] + }, + { + "namespace": "b3sum", + "resource": "hash", + "action": "file", + "description": "Compute BLAKE3 hash of one or more files", + "adapter": "process", + "adapterConfig": { + "command": "b3sum", + "baseArgs": [], + "positionalArgs": ["files"], + "timeout_ms": 60000, + "missingDependencyHelp": "Install b3sum: cargo install b3sum" + }, + "args": [ + { "name": "files", "type": "string", "required": true, "description": "File paths to hash (space-separated, can use glob patterns)" }, + { "name": "--no-mmap", "type": "boolean", "required": false, "description": "Disable memory-mapped files" }, + { "name": "--num-threads", "type": "number", "required": false, "description": "Number of threads to use (default: number of CPUs)" }, + { "name": "--raw", "type": "boolean", "required": false, "description": "Output raw hash bytes instead of hex" } + ] + }, + { + "namespace": "b3sum", + "resource": "hash", + "action": "stdin", + "description": "Compute BLAKE3 hash of data piped to stdin", + "adapter": "process", + "adapterConfig": { + "command": "b3sum", + "baseArgs": ["--no-names"], + "timeout_ms": 60000, + "missingDependencyHelp": "Install b3sum: cargo install b3sum" + }, + "args": [ + { "name": "--raw", "type": "boolean", "required": false, "description": "Output raw hash bytes to stdout" }, + { "name": "--num-threads", "type": "number", "required": false, "description": "Number of threads to use" } + ] + }, + { + "namespace": "b3sum", + "resource": "hash", + "action": "check", + "description": "Check BLAKE3 hashes against a hash list file (similar to sha256sum --check)", + "adapter": "process", + "adapterConfig": { + "command": "b3sum", + "baseArgs": ["--check"], + "positionalArgs": ["hashfile"], + "timeout_ms": 60000, + "missingDependencyHelp": "Install b3sum: cargo install b3sum" + }, + "args": [ + { "name": "hashfile", "type": "string", "required": true, "description": "Path to file containing hashes to check (format: )" }, + { "name": "--no-mmap", "type": "boolean", "required": false, "description": "Disable memory-mapped files" }, + { "name": "--num-threads", "type": "number", "required": false, "description": "Number of threads to use" } + ] + }, + { + "namespace": "b3sum", + "resource": "_", + "action": "_", + "description": "Passthrough to b3sum CLI for advanced options", + "adapter": "process", + "adapterConfig": { + "command": "b3sum", + "passthrough": true, + "missingDependencyHelp": "Install b3sum: cargo install b3sum" + }, + "args": [] + } + ] +} diff --git a/plugins/b3sum/skills/quickstart/SKILL.md b/plugins/b3sum/skills/quickstart/SKILL.md new file mode 100644 index 00000000..5dec9366 --- /dev/null +++ b/plugins/b3sum/skills/quickstart/SKILL.md @@ -0,0 +1,58 @@ +--- +name: b3sum +description: Use this skill when the user wants to compute BLAKE3 hashes of files, verify file integrity, or generate checksums. Fast, multi-threaded cryptographic hashing from the command line. +--- + +# b3sum Plugin + +Compute BLAKE3 cryptographic hashes for files and streams. The fastest standardized hash function. + +## Commands + +### Hash +- `b3sum hash file document.pdf` — Compute hash of a file +- `b3sum hash file file1.txt file2.txt` — Hash multiple files +- `b3sum hash stdin` — Hash data piped to stdin +- `b3sum hash file large.iso --num-threads 8` — Multi-threaded hashing + +### Check +- `b3sum hash check checksums.txt` — Verify hashes against a list + +### Options +- `--raw` — Output raw bytes instead of hex +- `--num-threads N` — Use N threads (default: all CPUs) +- `--no-mmap` — Disable memory mapping + +### Full Access +- `b3sum _ _` — Passthrough for advanced options + +## Usage Examples +- "Get the BLAKE3 hash of this ISO file" +- "Verify the integrity of downloaded files using checksums.txt" +- "Pipe a file through b3sum and get the hash" +- "Hash multiple files at once with multi-threading" + +## Installation + +```bash +cargo install b3sum +``` + +## Key Features +- **Blazing fast**: BLAKE3 is the fastest standardized hash +- **Multi-threaded**: Automatically uses all CPU cores +- **Streaming**: Can hash data piped from stdin +- **Check mode**: Verify file integrity from hash lists +- **Raw output**: Output raw bytes for further processing +- **Non-interactive**: All operations are one-shot CLI commands + +## Comparing Hashes + +```bash +# Generate hash +b3sum myfile.bin + +# Check against stored hash +echo "abc123... myfile.bin" > myhash +b3sum --check myhash +``` diff --git a/plugins/d2/install-guidance.json b/plugins/d2/install-guidance.json new file mode 100644 index 00000000..752a93ff --- /dev/null +++ b/plugins/d2/install-guidance.json @@ -0,0 +1,11 @@ +{ + "plugin": "d2", + "binary": "d2", + "check": "which d2", + "install_steps": [ + "curl -fsSL https://d2lang.com/install.sh | sh -s --", + "Verify: d2 version", + "supercli plugins install ./plugins/d2 --on-conflict replace --json" + ], + "note": "Also available via: brew install d2, or go install oss.terrastruct.com/d2@latest. Requires a layout engine: dagre (default, bundled), elk, or tala. Output formats: SVG, PNG, PDF. Fonts can be embedded via --font-* flags." +} diff --git a/plugins/d2/meta.json b/plugins/d2/meta.json index faa274ea..19d60ed8 100644 --- a/plugins/d2/meta.json +++ b/plugins/d2/meta.json @@ -1,5 +1,5 @@ { - "description": "D2 — modern diagram scripting language that turns text to diagrams. Compile .d2 files to SVG, PNG, or PDF with auto-layout (dagre, ELK, TALA), themes, and live reload. Open-source alternative to PlantUML and Mermaid.", - "tags": ["d2", "diagram", "diagrams", "svg", "architecture", "go", "visualization", "text-to-diagram"], - "has_learn": false + "description": "d2 — declarative diagram scripting language. Compile text-based diagrams into SVG, PNG, or PDF. Supports flowcharts, sequence diagrams, class diagrams, network topologies, and more. Non-interactive, scriptable.", + "tags": ["d2", "diagram", "diagramming", "svg", "flowchart", "sequence-diagram", "visio", "go"], + "has_learn": true } diff --git a/plugins/d2/plugin.json b/plugins/d2/plugin.json index 0fa586e5..43846d1f 100644 --- a/plugins/d2/plugin.json +++ b/plugins/d2/plugin.json @@ -1,7 +1,7 @@ { "name": "d2", "version": "0.1.0", - "description": "D2 — modern diagram scripting language that turns text to SVG, PNG, or PDF", + "description": "d2 — declarative diagram scripting language. Compile text-based diagrams into SVG, PNG, or PDF. Supports flowcharts, sequence diagrams, class diagrams, network topologies, and more. Non-interactive, scriptable, suitable for CI/CD pipelines.", "source": "https://github.com/terrastruct/d2", "checks": [ { "type": "binary", "name": "d2" } @@ -12,11 +12,13 @@ "check": "which d2", "install_steps": [ "curl -fsSL https://d2lang.com/install.sh | sh -s --", - "Or: go install oss.terrastruct.com/d2@latest", - "Verify: d2 --version", + "Verify: d2 version", + "Test: d2 --help", "supercli plugins install ./plugins/d2 --on-conflict replace --json" - ], - "note": "Source: https://github.com/terrastruct/d2 (24k stars). Written in Go." + ] + }, + "learn": { + "file": "skills/quickstart/SKILL.md" }, "commands": [ { @@ -27,8 +29,8 @@ "adapter": "process", "adapterConfig": { "command": "d2", - "baseArgs": ["--version"], - "missingDependencyHelp": "Install d2: curl -fsSL https://d2lang.com/install.sh | sh" + "baseArgs": ["version"], + "missingDependencyHelp": "Install d2: https://d2lang.com/install" }, "args": [] }, @@ -36,85 +38,111 @@ "namespace": "d2", "resource": "compile", "action": "svg", - "description": "Compile .d2 file to SVG diagram", + "description": "Compile a .d2 file to SVG", "adapter": "process", "adapterConfig": { "command": "d2", - "positionalArgs": ["input"], + "baseArgs": [], + "positionalArgs": ["input", "output"], "timeout_ms": 60000, - "missingDependencyHelp": "Install d2" + "missingDependencyHelp": "Install d2: curl -fsSL https://d2lang.com/install.sh | sh" }, "args": [ - { "name": "input", "type": "string", "required": true, "description": "Path to .d2 file" }, - { "name": "output", "type": "string", "required": false, "description": "Output path (default: input.svg)" }, - { "name": "watch", "type": "boolean", "required": false, "description": "Watch and live-reload on changes" } + { "name": "input", "type": "string", "required": true, "description": "Input .d2 file path" }, + { "name": "output", "type": "string", "required": false, "description": "Output SVG file path (default: input.svg)" }, + { "name": "--theme", "type": "number", "required": false, "description": "Theme ID (0-6). Default: 0" }, + { "name": "--dark-theme", "type": "number", "required": false, "description": "Dark theme ID" }, + { "name": "--pad", "type": "number", "required": false, "description": "Padding in pixels (default: 100)" }, + { "name": "--layout", "type": "string", "required": false, "description": "Layout engine: dagre (default), elk, tala" }, + { "name": "--scale", "type": "number", "required": false, "description": "Canvas scale factor (default: 1)" }, + { "name": "--bundle", "type": "boolean", "required": false, "description": "Bundle dependency icons as base64 data URIs" }, + { "name": "--font-regular", "type": "string", "required": false, "description": "Path to .ttf regular font" }, + { "name": "--font-italic", "type": "string", "required": false, "description": "Path to .ttf italic font" }, + { "name": "--font-bold", "type": "string", "required": false, "description": "Path to .ttf bold font" }, + { "name": "--font-bold-italic", "type": "string", "required": false, "description": "Path to .ttf bold-italic font" }, + { "name": "--target", "type": "string", "required": false, "description": "Export format: svg (default), png, pdf" } ] }, { "namespace": "d2", "resource": "compile", "action": "png", - "description": "Compile .d2 file to PNG diagram", + "description": "Compile a .d2 file to PNG", "adapter": "process", "adapterConfig": { "command": "d2", - "baseArgs": ["--format", "png"], - "positionalArgs": ["input"], + "baseArgs": [], + "positionalArgs": ["input", "output"], "timeout_ms": 60000, - "missingDependencyHelp": "Install d2" + "missingDependencyHelp": "Install d2: curl -fsSL https://d2lang.com/install.sh | sh" }, "args": [ - { "name": "input", "type": "string", "required": true, "description": "Path to .d2 file" }, - { "name": "output", "type": "string", "required": false, "description": "Output path" } + { "name": "input", "type": "string", "required": true, "description": "Input .d2 file path" }, + { "name": "output", "type": "string", "required": false, "description": "Output PNG file path (default: input.png)" }, + { "name": "--theme", "type": "number", "required": false, "description": "Theme ID (0-6)" }, + { "name": "--dark-theme", "type": "number", "required": false, "description": "Dark theme ID" }, + { "name": "--pad", "type": "number", "required": false, "description": "Padding in pixels (default: 100)" }, + { "name": "--layout", "type": "string", "required": false, "description": "Layout engine: dagre (default), elk, tala" }, + { "name": "--scale", "type": "number", "required": false, "description": "Canvas scale factor" }, + { "name": "--bundle", "type": "boolean", "required": false, "description": "Bundle dependency icons as base64 data URIs" }, + { "name": "--font-regular", "type": "string", "required": false, "description": "Path to .ttf regular font" }, + { "name": "--font-italic", "type": "string", "required": false, "description": "Path to .ttf italic font" }, + { "name": "--font-bold", "type": "string", "required": false, "description": "Path to .ttf bold font" }, + { "name": "--font-bold-italic", "type": "string", "required": false, "description": "Path to .ttf bold-italic font" } ] }, { "namespace": "d2", "resource": "compile", "action": "pdf", - "description": "Compile .d2 file to PDF diagram", + "description": "Compile a .d2 file to PDF", "adapter": "process", "adapterConfig": { "command": "d2", - "baseArgs": ["--format", "pdf"], - "positionalArgs": ["input"], + "baseArgs": [], + "positionalArgs": ["input", "output"], "timeout_ms": 60000, - "missingDependencyHelp": "Install d2" + "missingDependencyHelp": "Install d2: curl -fsSL https://d2lang.com/install.sh | sh" }, "args": [ - { "name": "input", "type": "string", "required": true, "description": "Path to .d2 file" }, - { "name": "output", "type": "string", "required": false, "description": "Output path" } + { "name": "input", "type": "string", "required": true, "description": "Input .d2 file path" }, + { "name": "output", "type": "string", "required": false, "description": "Output PDF file path (default: input.pdf)" }, + { "name": "--theme", "type": "number", "required": false, "description": "Theme ID (0-6)" }, + { "name": "--dark-theme", "type": "number", "required": false, "description": "Dark theme ID" }, + { "name": "--pad", "type": "number", "required": false, "description": "Padding in pixels" }, + { "name": "--layout", "type": "string", "required": false, "description": "Layout engine" }, + { "name": "--scale", "type": "number", "required": false, "description": "Canvas scale factor" } ] }, { "namespace": "d2", - "resource": "compile", - "action": "theme", - "description": "Compile with a specific theme", + "resource": "watch", + "action": "start", + "description": "Watch a .d2 file and recompile on changes (hot reload)", "adapter": "process", "adapterConfig": { "command": "d2", - "baseArgs": ["--theme"], - "timeout_ms": 60000, - "missingDependencyHelp": "Install d2" + "baseArgs": ["--watch"], + "positionalArgs": ["input"], + "timeout_ms": 300000, + "missingDependencyHelp": "Install d2: curl -fsSL https://d2lang.com/install.sh | sh" }, "args": [ - { "name": "input", "type": "string", "required": true, "description": "Path to .d2 file" }, - { "name": "theme", "type": "number", "required": true, "description": "Theme ID (0-300+)" }, - { "name": "output", "type": "string", "required": false, "description": "Output path" } + { "name": "input", "type": "string", "required": true, "description": "Input .d2 file to watch" }, + { "name": "--theme", "type": "number", "required": false, "description": "Theme ID" }, + { "name": "--layout", "type": "string", "required": false, "description": "Layout engine" }, + { "name": "--pad", "type": "number", "required": false, "description": "Padding" } ] }, { "namespace": "d2", "resource": "_", "action": "_", - "description": "Passthrough to d2 CLI for any command not covered by specific resources", + "description": "Passthrough to d2 CLI for advanced options", "adapter": "process", "adapterConfig": { "command": "d2", - "cwd": "invoke_cwd", "passthrough": true, - "timeout_ms": 60000, "missingDependencyHelp": "Install d2: curl -fsSL https://d2lang.com/install.sh | sh" }, "args": [] diff --git a/plugins/d2/skills/quickstart/SKILL.md b/plugins/d2/skills/quickstart/SKILL.md new file mode 100644 index 00000000..b99d2d94 --- /dev/null +++ b/plugins/d2/skills/quickstart/SKILL.md @@ -0,0 +1,59 @@ +--- +name: d2 +description: Use this skill when the user wants to create diagrams from text — architecture diagrams, flowcharts, sequence diagrams, network topologies, or any technical diagram. Compile .d2 files to SVG, PNG, or PDF. +--- + +# d2 Plugin + +Declarative diagram scripting language. Write diagrams as simple text and render to SVG, PNG, or PDF. + +## Commands + +### Compile +- `d2 compile svg input.d2 output.svg` — Compile to SVG +- `d2 compile svg input.d2 output.svg --theme 1 --layout elk` — With theme and layout +- `d2 compile png input.d2 output.png --scale 2` — Compile to PNG at 2x resolution +- `d2 compile pdf input.d2 output.pdf` — Compile to PDF + +### Watch +- `d2 watch start input.d2` — Watch file and recompile on changes + +### Options +- `--theme 0-6` — Theme selection (0: Default, 1: Dark, 3: Terminal, etc.) +- `--layout dagre|elk|tala` — Layout engine +- `--pad 100` — Padding in pixels +- `--scale 1` — Canvas scale factor +- `--bundle` — Embed dependency icons as base64 URIs + +### Full Access +- `d2 _ _` — Passthrough for advanced options + +## Usage Examples +- "Turn this architecture description into a diagram" +- "Generate a flowchart from my d2 file" +- "Create a network topology diagram as PNG" +- "Watch a d2 file and auto-recompile when I edit it" +- "Render this sequence diagram with dark theme" + +## Installation + +```bash +curl -fsSL https://d2lang.com/install.sh | sh -s -- +``` + +## Key Features +- **Text-based**: Diagrams are plain text, version-controllable +- **Multiple outputs**: SVG, PNG, PDF +- **Themes**: Built-in themes including dark mode +- **Layout engines**: dagre (default), elk, tala +- **Watch mode**: Hot reload on file changes +- **Custom fonts**: Embed TTF fonts +- **Non-interactive**: All operations are one-shot CLI commands + +## Example .d2 File + +```d2 +backend -> database: queries +backend -> cache: reads +client -> backend: HTTP +``` From 527c524239e7ec0216002af50b4024cea2b90cbb Mon Sep 17 00:00:00 2001 From: Javier Leandro Arancibia Date: Fri, 29 May 2026 21:32:12 +0000 Subject: [PATCH 2/3] feat(plugins): add git-absorb and mcfly bundled plugins MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-absorb (tummychow/git-absorb) — auto-create fixup! commits for staged Git changes. Rust, 5.6k stars. mcfly (cantino/mcfly) — neural shell history search with smart ranking. Rust, 7.7k stars. Both follow the isolated plugin convention: plugin.json, meta.json, install-guidance.json, and skills/quickstart/SKILL.md. --- plugins/git-absorb/install-guidance.json | 2 +- plugins/git-absorb/meta.json | 4 +- plugins/git-absorb/plugin.json | 21 +++-- plugins/git-absorb/skills/quickstart/SKILL.md | 65 ++++++------- plugins/mcfly/install-guidance.json | 9 +- plugins/mcfly/meta.json | 6 +- plugins/mcfly/plugin.json | 68 ++++++-------- plugins/mcfly/skills/quickstart/SKILL.md | 93 +++++++------------ 8 files changed, 105 insertions(+), 163 deletions(-) diff --git a/plugins/git-absorb/install-guidance.json b/plugins/git-absorb/install-guidance.json index 68900aa1..74095567 100644 --- a/plugins/git-absorb/install-guidance.json +++ b/plugins/git-absorb/install-guidance.json @@ -7,5 +7,5 @@ "Verify: git-absorb --version", "supercli plugins install ./plugins/git-absorb --on-conflict replace --json" ], - "note": "Alternatively: brew install git-absorb (macOS/Linux), apt install git-absorb (Debian/Ubuntu), dnf install git-absorb (Fedora), or download pre-built binaries from GitHub releases. The binary is named git-absorb and can be invoked as 'git absorb' (Git automatically routes it) or directly as 'git-absorb'." + "note": "Requires Rust/Cargo. Also available via Homebrew: brew install git-absorb, or via package managers on Arch (pacman -S git-absorb), Fedora (dnf install git-absorb)." } diff --git a/plugins/git-absorb/meta.json b/plugins/git-absorb/meta.json index c9ee0509..29b04c6b 100644 --- a/plugins/git-absorb/meta.json +++ b/plugins/git-absorb/meta.json @@ -1,5 +1,5 @@ { - "description": "A port of Mercurial's hg absorb — automatically fold staged changes into the appropriate previous commits. Eliminates manual fixup commit creation during code review feedback cycles. Saves developers from hunting for commit SHAs or managing interactive rebases manually.", - "tags": ["git-absorb", "git", "rebase", "fixup", "version-control", "rust", "productivity"], + "description": "git-absorb — auto-create fixup! commits for your staged changes. Scans your working copy, finds which commits each staged diff belongs to, and writes a fixup! commit for each. Works with any Git repository.", + "tags": ["git-absorb", "git", "rebase", "fixup", "commit", "rust"], "has_learn": true } diff --git a/plugins/git-absorb/plugin.json b/plugins/git-absorb/plugin.json index 9d034f8d..b80d3238 100644 --- a/plugins/git-absorb/plugin.json +++ b/plugins/git-absorb/plugin.json @@ -1,7 +1,7 @@ { "name": "git-absorb", "version": "0.1.0", - "description": "git commit --fixup, but automatic — auto-absorb staged changes into relevant previous commits", + "description": "git commit --fixup, but automatic — auto-create fixup commits for staged changes", "source": "https://github.com/tummychow/git-absorb", "checks": [ { "type": "binary", "name": "git-absorb" } @@ -14,7 +14,8 @@ "cargo install git-absorb", "Verify: git-absorb --version", "supercli plugins install ./plugins/git-absorb --on-conflict replace --json" - ] + ], + "note": "Requires Rust/Cargo. Also available via Homebrew: brew install git-absorb" }, "learn": { "file": "skills/quickstart/SKILL.md" @@ -35,20 +36,22 @@ }, { "namespace": "git-absorb", - "resource": "repo", + "resource": "commit", "action": "absorb", - "description": "Auto-absorb staged changes into the appropriate previous commits. Use --and-rebase to auto-rebase after absorption.", + "description": "Auto-create fixup commits for staged changes in the working copy", "adapter": "process", "adapterConfig": { "command": "git-absorb", - "passthrough": true, "cwd": "invoke_cwd", + "passthrough": true, + "timeout_ms": 30000, "missingDependencyHelp": "Install git-absorb: cargo install git-absorb" }, "args": [ - { "name": "--and-rebase", "type": "boolean", "description": "Automatically rebase after absorbing fixup commits" }, - { "name": "--base", "type": "string", "description": "Use as the base commit instead of defaulting to --base upstream" }, - { "name": "--force", "type": "boolean", "description": "Write fixup commits even if conflicts are detected" } + { "name": "base", "type": "string", "required": false, "description": "Base ref to absorb into (e.g., origin/main)" }, + { "name": "dry-run", "type": "boolean", "required": false, "description": "Show what would be absorbed without making changes" }, + { "name": "and-rebase", "type": "boolean", "required": false, "description": "Auto-absorb and rebase" }, + { "name": "force", "type": "boolean", "required": false, "description": "Apply fixups even when conflicts might occur" } ] }, { @@ -59,8 +62,8 @@ "adapter": "process", "adapterConfig": { "command": "git-absorb", - "passthrough": true, "cwd": "invoke_cwd", + "passthrough": true, "missingDependencyHelp": "Install git-absorb: cargo install git-absorb" }, "args": [] diff --git a/plugins/git-absorb/skills/quickstart/SKILL.md b/plugins/git-absorb/skills/quickstart/SKILL.md index 35b3b548..579e93c7 100644 --- a/plugins/git-absorb/skills/quickstart/SKILL.md +++ b/plugins/git-absorb/skills/quickstart/SKILL.md @@ -1,30 +1,28 @@ --- name: git-absorb -description: Use this skill when the user wants to auto-absorb staged changes into relevant previous commits, apply code review feedback efficiently, or avoid manual fixup commit creation. +description: Use this skill when the user wants to auto-create fixup! commits for staged Git changes, clean up a messy commit history before rebasing, or absorb staged diffs into the correct existing commits. --- # git-absorb Plugin -Automatically fold staged changes into the appropriate previous commits. Eliminates manual fixup commit creation during code review feedback cycles. +Auto-create fixup! commits for staged Git changes. Scans your working copy, identifies which existing commits each staged diff belongs to, and writes fixup! commits so you can rebase cleanly. ## Commands -### Version -- `git-absorb self version` — Print git-absorb version - ### Absorb -- `git-absorb repo absorb` — Run git-absorb on current repo -- `git-absorb repo absorb --and-rebase` — Absorb and auto-rebase -- `git-absorb repo absorb --base master` — Use master as base ref -- `git-absorb repo absorb --force` — Write fixup commits even if conflicts detected +- `git-absorb commit absorb` — Auto-create fixup commits for all staged changes -### Utility -- `git-absorb _ _` — Passthrough to git-absorb CLI +### Options +- `--base ` — Absorb only against commits reachable from `` (e.g., `origin/main`) +- `--dry-run` — Show what would be absorbed without making changes +- `--and-rebase` — Auto-absorb and then rebase with `GIT_SEQUENCE_EDITOR=true git rebase -i` +- `--force` — Apply fixups even when conflicts might occur ## Usage Examples - "Absorb my staged changes into the right commits" -- "Apply review feedback with git-absorb" -- "Run git absorb with --and-rebase" +- "Clean up my working copy before rebasing" +- "Fixup all staged changes onto origin/main" +- "Show what would be absorbed without making changes" ## Installation @@ -32,36 +30,29 @@ Automatically fold staged changes into the appropriate previous commits. Elimina cargo install git-absorb ``` -Or via Homebrew: -```bash -brew install git-absorb -``` - ## Examples ```bash -# Stage changes and absorb into relevant previous commits -git-absorb repo absorb +# Stage changes, then absorb into existing commits +git add -p +git-absorb + +# Dry run to preview +git-absorb --dry-run -# Absorb and auto-rebase in one step -git-absorb repo absorb --and-rebase +# Absorb against a specific base +git-absorb --base origin/main -# Specify a base ref -git-absorb repo absorb --base master +# Absorb and rebase automatically +git-absorb --and-rebase -# Force absorption even if conflicts are detected -git-absorb repo absorb --force +# Use as git subcommand (if configured) +git absorb ``` ## Key Features -- **Automatic** — Finds the right commit for each staged hunk automatically -- **Smart** — Uses commutation checking to determine which changes belong where -- **Safe** — Creates fixup commits you can inspect before rebasing -- **Review-friendly** — Speed up code review feedback application -- **Git-native** — Works as a git subcommand (git absorb) - -## Notes -- Only staged changes (git index) are considered -- Use `git rebase -i --autosquash` after `git absorb` to apply fixups (unless using `--and-rebase`) -- Default stack size is 10 commits; override with `--base` or config -- Works with any git workflow where you have a stack of draft commits +- Zero config — just stage and run +- Smart commit matching via hunk analysis +- Dry-run mode for safety +- Works with any Git repository +- Integrates with standard `git rebase -i` workflow diff --git a/plugins/mcfly/install-guidance.json b/plugins/mcfly/install-guidance.json index 9c52f971..d77c10cf 100644 --- a/plugins/mcfly/install-guidance.json +++ b/plugins/mcfly/install-guidance.json @@ -5,12 +5,7 @@ "install_steps": [ "cargo install mcfly", "Verify: mcfly --version", - "Setup shell integration:", - " Bash: eval \"$(mcfly init bash)\"", - " Zsh: eval \"$(mcfly init zsh)\"", - " Fish: mcfly init fish | source", - "Add to your shell rc file and reload", "supercli plugins install ./plugins/mcfly --on-conflict replace --json" ], - "note": "Also available via: brew install mcfly, apt, pacman, winget. Neural network-powered history search that learns from your usage patterns. Requires shell integration for ctrl-r replacement." -} \ No newline at end of file + "note": "Requires Rust/Cargo. Also available via Homebrew: brew install mcfly. For shell integration, add 'eval \"$(mcfly init bash)\"' to your .bashrc (or equivalent for zsh/fish)." +} diff --git a/plugins/mcfly/meta.json b/plugins/mcfly/meta.json index 2d56805e..64a36e82 100644 --- a/plugins/mcfly/meta.json +++ b/plugins/mcfly/meta.json @@ -1,5 +1,5 @@ { - "description": "McFly — intelligent shell history search with neural network prioritization. Replaces ctrl-r with smarter suggestions. 7,719 stars.", - "tags": ["mcfly", "history", "shell", "search", "neural", "intelligent", "cli", "rust"], + "description": "mcfly — neural shell history search. Replaces Ctrl+R with a smart, contextual search that uses a background language model to rank results by relevance. Supports fuzzy matching, time-based ranking, and shell integration for bash, zsh, and fish.", + "tags": ["mcfly", "shell", "history", "search", "rust", "cli"], "has_learn": true -} \ No newline at end of file +} diff --git a/plugins/mcfly/plugin.json b/plugins/mcfly/plugin.json index 0d57d5b3..91c68a86 100644 --- a/plugins/mcfly/plugin.json +++ b/plugins/mcfly/plugin.json @@ -1,7 +1,7 @@ { "name": "mcfly", "version": "0.1.0", - "description": "McFly — intelligent shell history search with neural network prioritization", + "description": "Fly through your shell history. Great Scott! — smart shell history search with neural ranking", "source": "https://github.com/cantino/mcfly", "checks": [ { "type": "binary", "name": "mcfly" } @@ -13,9 +13,9 @@ "install_steps": [ "cargo install mcfly", "Verify: mcfly --version", - "Setup: eval \"$(mcfly init bash)\" # or zsh/fish", "supercli plugins install ./plugins/mcfly --on-conflict replace --json" - ] + ], + "note": "Requires Rust/Cargo. Also available via Homebrew: brew install mcfly" }, "learn": { "file": "skills/quickstart/SKILL.md" @@ -25,76 +25,59 @@ "namespace": "mcfly", "resource": "self", "action": "version", - "description": "Print McFly version", + "description": "Print mcfly version", "adapter": "process", "adapterConfig": { "command": "mcfly", "baseArgs": ["--version"], - "missingDependencyHelp": "Install McFly: cargo install mcfly" + "missingDependencyHelp": "Install mcfly: cargo install mcfly" }, "args": [] }, { "namespace": "mcfly", "resource": "history", - "action": "dump", - "description": "Dump command history as JSON", - "adapter": "process", - "adapterConfig": { - "command": "mcfly", - "baseArgs": ["dump", "--format", "json"], - "timeout_ms": 30000, - "missingDependencyHelp": "Install McFly: cargo install mcfly" - }, - "args": [] - }, - { - "namespace": "mcfly", - "resource": "history", - "action": "dump-since", - "description": "Dump history since a specific date", + "action": "search", + "description": "Search shell history with neural ranking", "adapter": "process", "adapterConfig": { "command": "mcfly", - "baseArgs": ["dump", "--format", "json", "--since"], - "positionalArgs": ["since"], - "timeout_ms": 30000, - "missingDependencyHelp": "Install McFly: cargo install mcfly" + "baseArgs": ["search"], + "cwd": "invoke_cwd", + "passthrough": true, + "positionalArgs": ["query"], + "timeout_ms": 15000, + "missingDependencyHelp": "Install mcfly: cargo install mcfly" }, "args": [ - { "name": "since", "type": "string", "required": true, "description": "Start date (e.g., '2023-01-01', '2023-09-12 09:15:30')" } + { "name": "query", "type": "string", "required": true, "description": "Search query for shell history" } ] }, { "namespace": "mcfly", "resource": "history", - "action": "dump-csv", - "description": "Dump command history as CSV", + "action": "dump", + "description": "Dump all shell history entries", "adapter": "process", "adapterConfig": { "command": "mcfly", - "baseArgs": ["dump", "--format", "csv"], - "timeout_ms": 30000, - "missingDependencyHelp": "Install McFly: cargo install mcfly" + "baseArgs": ["dump"], + "missingDependencyHelp": "Install mcfly: cargo install mcfly" }, "args": [] }, { "namespace": "mcfly", "resource": "history", - "action": "search", - "description": "Search history with regex pattern", + "action": "train", + "description": "Train mcfly on the current shell history", "adapter": "process", "adapterConfig": { "command": "mcfly", - "baseArgs": ["dump", "--format", "json", "--regex"], - "positionalArgs": ["pattern"], - "timeout_ms": 30000, - "missingDependencyHelp": "Install McFly: cargo install mcfly" + "baseArgs": ["train", "--train-all"], + "missingDependencyHelp": "Install mcfly: cargo install mcfly" }, - "args": [ - { "name": "pattern", "type": "string", "required": true, "description": "Regex pattern to search for (e.g., '^cargo run')" } - ] + "args": [] }, { "namespace": "mcfly", @@ -104,10 +87,11 @@ "adapter": "process", "adapterConfig": { "command": "mcfly", + "cwd": "invoke_cwd", "passthrough": true, - "missingDependencyHelp": "Install McFly: cargo install mcfly" + "missingDependencyHelp": "Install mcfly: cargo install mcfly" }, "args": [] } ] -} \ No newline at end of file +} diff --git a/plugins/mcfly/skills/quickstart/SKILL.md b/plugins/mcfly/skills/quickstart/SKILL.md index 49cf8266..dd2bfa9b 100644 --- a/plugins/mcfly/skills/quickstart/SKILL.md +++ b/plugins/mcfly/skills/quickstart/SKILL.md @@ -1,90 +1,59 @@ --- name: mcfly -description: Use this skill when the user wants to search shell history intelligently, analyze command patterns, or replace their default ctrl-r history search with AI-powered prioritization. +description: Use this skill when the user wants to search shell history, find a command they ran before, or explore their terminal history with smart ranking. --- -# McFly Plugin +# mcfly Plugin -Intelligent shell history search with neural network prioritization. McFly learns from your usage patterns to suggest the most relevant commands first. +Smart shell history search. Replaces Ctrl+R with neural ranking that learns from context, frequency, and recency. ## Commands -### History Management -- `mcfly history dump` — Export complete history as JSON -- `mcfly history dump-since` — Export history from a specific date -- `mcfly history dump-csv` — Export history as CSV format -- `mcfly history search` — Search history with regex patterns +### Search +- `mcfly history search ` — Search shell history with neural ranking -### Version -- `mcfly self version` — Show McFly version +### Manage +- `mcfly history dump` — Dump all shell history entries +- `mcfly history train` — Train mcfly model on current history ## Usage Examples -- "Export my shell history as JSON" -- "Find all git commands I ran last week" -- "Search for cargo commands in history" -- "Show my command history since yesterday" +- "Find that docker command I ran yesterday" +- "Search my history for git rebase commands" +- "Dump my entire shell history" +- "Train mcfly on my history" ## Installation ```bash -# Install via Cargo cargo install mcfly +``` -# Or via Homebrew -brew install mcfly +For shell integration, add to your `.bashrc`: -# Setup shell integration (required for ctrl-r replacement) -echo 'eval "$(mcfly init bash)"' >> ~/.bashrc -# or for zsh: -echo 'eval "$(mcfly init zsh)"' >> ~/.zshrc -# or for fish: -echo 'mcfly init fish | source' >> ~/.config/fish/config.fish +```bash +eval "$(mcfly init bash)" ``` ## Examples ```bash -# Export all history as JSON -mcfly dump +# Search history for a command +mcfly search docker compose -# Export history from specific date -mcfly dump --since '2023-01-01' - -# Export with date range -mcfly dump --since '2023-01-01' --before '2023-12-31' - -# Search for specific commands -mcfly dump --regex '^git' +# Dump all history (json lines) +mcfly dump -# Export as CSV -mcfly dump --format csv +# Train on history +mcfly train --train-all -# Combine filters -mcfly dump --regex '^cargo run' --since '2023-09-12 09:15:30' +# Shell integration (in .bashrc) +eval "$(mcfly init bash)" ``` -## Features - -- **Neural network prioritization** — Learns from your patterns -- **Context-aware** — Considers current directory and recent commands -- **Smart ranking** — Factors in frequency, recency, and success rate -- **Unicode support** — Works with international characters -- **Shell integration** — Replaces ctrl-r with intelligent search -- **History preservation** — Maintains your original history files - -## Configuration - -McFly can be configured via environment variables: - -- `MCFLY_LIGHT=TRUE` — Enable light mode color scheme -- `MCFLY_FUZZY=2` — Enable fuzzy search (0=off, higher=fuzzier) -- `MCFLY_RESULTS=50` — Maximum results to show (default: 30) -- `MCFLY_KEY_SCHEME=vim` — Use vim key bindings (default: emacs) -- `MCFLY_INTERFACE_VIEW=BOTTOM` — Show interface at bottom - -## Database Location - -- **macOS**: `~/Library/Application Support/McFly/history.db` -- **Linux**: `~/.local/share/mcfly/history.db` -- **Windows**: `%LOCALAPPDATA%\McFly\data\history.db` -- **Legacy**: `~/.mcfly/` (if it exists) \ No newline at end of file +## Key Features +- Neural network ranking for relevant results +- Works with bash, zsh, and fish +- Time-based and frequency-based ranking +- Fuzzy matching +- Lightweight and fast (Rust) +- Session-aware history context From 70eebdb75c107f874ca37428ac46f99451838cbf Mon Sep 17 00:00:00 2001 From: Javier Leandro Arancibia Date: Fri, 29 May 2026 21:32:29 +0000 Subject: [PATCH 3/3] fix(plugins): address QA review for d2 and b3sum plugins - Make compile args consistent across svg/png/pdf (--target, --bundle, --font-*) - Align install-guidance.json test steps with plugin.json for both plugins --- plugins/b3sum/install-guidance.json | 1 + plugins/d2/install-guidance.json | 1 + plugins/d2/plugin.json | 11 +++++++++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins/b3sum/install-guidance.json b/plugins/b3sum/install-guidance.json index c8fa9d49..683358e9 100644 --- a/plugins/b3sum/install-guidance.json +++ b/plugins/b3sum/install-guidance.json @@ -5,6 +5,7 @@ "install_steps": [ "cargo install b3sum", "Verify: b3sum --version", + "Test: b3sum /etc/hostname", "supercli plugins install ./plugins/b3sum --on-conflict replace --json" ], "note": "Requires Rust/Cargo. Also available via: brew install b3sum. b3sum is the CLI component of the BLAKE3 hash project — BLAKE3 is the fastest of the standardized hash functions, significantly faster than SHA-256 and SHA-512." diff --git a/plugins/d2/install-guidance.json b/plugins/d2/install-guidance.json index 752a93ff..50ebd1ae 100644 --- a/plugins/d2/install-guidance.json +++ b/plugins/d2/install-guidance.json @@ -5,6 +5,7 @@ "install_steps": [ "curl -fsSL https://d2lang.com/install.sh | sh -s --", "Verify: d2 version", + "Test: d2 --help", "supercli plugins install ./plugins/d2 --on-conflict replace --json" ], "note": "Also available via: brew install d2, or go install oss.terrastruct.com/d2@latest. Requires a layout engine: dagre (default, bundled), elk, or tala. Output formats: SVG, PNG, PDF. Fonts can be embedded via --font-* flags." diff --git a/plugins/d2/plugin.json b/plugins/d2/plugin.json index 43846d1f..fe6d1efb 100644 --- a/plugins/d2/plugin.json +++ b/plugins/d2/plugin.json @@ -88,7 +88,8 @@ { "name": "--font-regular", "type": "string", "required": false, "description": "Path to .ttf regular font" }, { "name": "--font-italic", "type": "string", "required": false, "description": "Path to .ttf italic font" }, { "name": "--font-bold", "type": "string", "required": false, "description": "Path to .ttf bold font" }, - { "name": "--font-bold-italic", "type": "string", "required": false, "description": "Path to .ttf bold-italic font" } + { "name": "--font-bold-italic", "type": "string", "required": false, "description": "Path to .ttf bold-italic font" }, + { "name": "--target", "type": "string", "required": false, "description": "Export format: svg, png (default), pdf" } ] }, { @@ -111,7 +112,13 @@ { "name": "--dark-theme", "type": "number", "required": false, "description": "Dark theme ID" }, { "name": "--pad", "type": "number", "required": false, "description": "Padding in pixels" }, { "name": "--layout", "type": "string", "required": false, "description": "Layout engine" }, - { "name": "--scale", "type": "number", "required": false, "description": "Canvas scale factor" } + { "name": "--scale", "type": "number", "required": false, "description": "Canvas scale factor" }, + { "name": "--bundle", "type": "boolean", "required": false, "description": "Bundle dependency icons as base64 data URIs" }, + { "name": "--font-regular", "type": "string", "required": false, "description": "Path to .ttf regular font" }, + { "name": "--font-italic", "type": "string", "required": false, "description": "Path to .ttf italic font" }, + { "name": "--font-bold", "type": "string", "required": false, "description": "Path to .ttf bold font" }, + { "name": "--font-bold-italic", "type": "string", "required": false, "description": "Path to .ttf bold-italic font" }, + { "name": "--target", "type": "string", "required": false, "description": "Export format: svg, png, pdf (default)" } ] }, {