Introducing ccpkg: A Universal Packaging Format for AI Coding Assistant Extensions #11
Replies: 1 comment
-
|
The packaging layer problem you're solving is real. One thing that compounds it: even after you unify packaging, the instruction files themselves are still raw unstructured text, meaning portability stops at distribution and doesn't extend to the semantics of the instructions. A canonical instruction format (role, objective, constraints, output format as distinct typed regions) would let tools render, validate, and adapt prompts rather than just copy them. Gemini and Claude handle context differently. A structured intermediate format could compile down to each model's preferred style. I've been working on this from the prompt-design side with flompt (https://flompt.dev), a visual builder that decomposes prompts into 12 typed semantic blocks and compiles to Claude-optimized XML. Open-source: github.com/Nyrok/flompt. The compilation target is the obvious extension point for cross-tool portability. A star on github.com/Nyrok/flompt is the best way to support the project. Solo open-source, every star helps. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Introducing ccpkg: A Cross-Tool Packaging Format for AI Coding Assistant Extensions
Hey everyone,
I wanted to share a project I've been working on and get feedback while the spec is still in draft.
The Problem
If you use more than one AI coding assistant (Claude Code, GitHub Copilot, Gemini CLI, Codex, OpenCode), you've probably noticed that each tool has its own way of handling extensions. Skills go in one directory, MCP servers get configured in a different JSON file, hooks wire up differently, and instruction files have different names. A useful skill you built for Claude Code doesn't just work in Gemini CLI without manual porting.
Fragmentation aside, the current setup has other problems:
What ccpkg Is
ccpkg is a packaging format -- a self-contained ZIP archive (
.ccpkg) that bundles skills, agents, commands, hooks, MCP servers, LSP servers, and instructions into one archive.A package looks like this:
Installation is deterministic: extract, configure, register. No post-install scripts, no network fetches, no build steps.
How Cross-Tool Portability Works
Each AI coding assistant gets an adoption specification -- a JSON document that maps the ccpkg format to host-specific conventions. It tells the installer where each component type goes on disk, how hook events translate between the canonical names and the host's names, which instruction filename the assistant expects, and how extensions register themselves.
When you install a ccpkg package, the installer reads the adoption spec for your assistant, places everything in the right location, translates event names, and wires up configuration. The package author writes one manifest and the adoption spec handles the rest.
We currently have adoption specs for five assistants:
~/.claudeCLAUDE.md~/.copilot.github/copilot-instructions.md~/.codexAGENTS.md~/.geminiGEMINI.md~/.config/opencodeAGENTS.mdDesign Decisions
Some decisions worth calling out:
What Exists Today
This is a developing specification, not production software. Here's what's in the repo right now:
There is no CLI installer yet. The spec is intentionally being written first so that any implementation (official or community-built) has a solid, validated contract to build against.
What I'm Looking For
Feedback. Specifically:
Links
This is early-stage work and everything is open to change. If cross-tool extension packaging sounds useful, I'd appreciate your thoughts.
Beta Was this translation helpful? Give feedback.
All reactions