{"id":48582497,"url":"https://github.com/zircote/ccpkg","last_synced_at":"2026-04-08T17:34:05.771Z","repository":{"id":338508296,"uuid":"1158114670","full_name":"zircote/ccpkg","owner":"zircote","description":"Open packaging format for AI coding assistant extensions -- one archive installs skills, agents, MCP servers, and hooks across any compatible tool.","archived":false,"fork":false,"pushed_at":"2026-03-23T16:49:21.000Z","size":1579,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-24T14:21:18.578Z","etag":null,"topics":["agents","ai-coding-assistant","ccpkg","claude-code","codex-cli","cross-platform","declarative-config","developer-tools","gemini-cli","github-copilot","hooks","json-schema","lsp-server","mcp-server","open-specification","package-manager","packaging-format","plugin-system","skills","specification"],"latest_commit_sha":null,"homepage":"https://ccpkg.dev","language":"MDX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zircote.png","metadata":{"files":{"readme":".github/readme-infographic.svg","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"zircote"}},"created_at":"2026-02-14T20:25:39.000Z","updated_at":"2026-03-23T16:49:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zircote/ccpkg","commit_stats":null,"previous_names":["zircote/ccpkg"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/zircote/ccpkg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2Fccpkg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2Fccpkg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2Fccpkg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2Fccpkg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zircote","download_url":"https://codeload.github.com/zircote/ccpkg/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2Fccpkg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31567056,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agents","ai-coding-assistant","ccpkg","claude-code","codex-cli","cross-platform","declarative-config","developer-tools","gemini-cli","github-copilot","hooks","json-schema","lsp-server","mcp-server","open-specification","package-manager","packaging-format","plugin-system","skills","specification"],"created_at":"2026-04-08T17:34:05.007Z","updated_at":"2026-04-08T17:34:05.754Z","avatar_url":"https://github.com/zircote.png","language":"MDX","readme":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 800 400\" width=\"800\" height=\"400\"\u003e\n  \u003cdefs\u003e\n    \u003clinearGradient id=\"ibg\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"\u003e\n      \u003cstop offset=\"0%\" stop-color=\"#0f172a\"/\u003e\n      \u003cstop offset=\"100%\" stop-color=\"#1e293b\"/\u003e\n    \u003c/linearGradient\u003e\n    \u003clinearGradient id=\"ia\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\"\u003e\n      \u003cstop offset=\"0%\" stop-color=\"#38bdf8\"/\u003e\n      \u003cstop offset=\"100%\" stop-color=\"#818cf8\"/\u003e\n    \u003c/linearGradient\u003e\n  \u003c/defs\u003e\n\n  \u003crect width=\"800\" height=\"400\" rx=\"12\" fill=\"url(#ibg)\"/\u003e\n  \u003crect width=\"800\" height=\"3\" rx=\"1.5\" fill=\"url(#ia)\"/\u003e\n\n  \u003c!-- Title --\u003e\n  \u003ctext x=\"400\" y=\"45\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"18\" font-weight=\"700\" fill=\"#f8fafc\"\u003eHow ccpkg works\u003c/text\u003e\n\n  \u003c!-- Step 1: Author --\u003e\n  \u003cg transform=\"translate(110, 120)\"\u003e\n    \u003crect x=\"-65\" y=\"-40\" width=\"130\" height=\"80\" rx=\"10\" fill=\"#1e293b\" stroke=\"#38bdf840\" stroke-width=\"1.5\"/\u003e\n    \u003ctext x=\"0\" y=\"-10\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"24\" fill=\"#38bdf8\"\u003e1\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"12\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"13\" font-weight=\"600\" fill=\"#e2e8f0\"\u003eAuthor\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"28\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#94a3b8\"\u003emanifest.json +\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"40\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#94a3b8\"\u003ecomponents\u003c/text\u003e\n  \u003c/g\u003e\n\n  \u003c!-- Arrow 1-2 --\u003e\n  \u003cg transform=\"translate(200, 120)\"\u003e\n    \u003cline x1=\"0\" y1=\"0\" x2=\"45\" y2=\"0\" stroke=\"#38bdf860\" stroke-width=\"2\" stroke-dasharray=\"4,4\"/\u003e\n    \u003cpolygon points=\"45,-5 55,0 45,5\" fill=\"#38bdf8\"/\u003e\n  \u003c/g\u003e\n\n  \u003c!-- Step 2: Pack --\u003e\n  \u003cg transform=\"translate(310, 120)\"\u003e\n    \u003crect x=\"-65\" y=\"-40\" width=\"130\" height=\"80\" rx=\"10\" fill=\"#1e293b\" stroke=\"#818cf840\" stroke-width=\"1.5\"/\u003e\n    \u003ctext x=\"0\" y=\"-10\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"24\" fill=\"#818cf8\"\u003e2\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"12\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"13\" font-weight=\"600\" fill=\"#e2e8f0\"\u003ePack\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"28\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#94a3b8\"\u003ezip into .ccpkg\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"40\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#94a3b8\"\u003eself-contained\u003c/text\u003e\n  \u003c/g\u003e\n\n  \u003c!-- Arrow 2-3 --\u003e\n  \u003cg transform=\"translate(400, 120)\"\u003e\n    \u003cline x1=\"0\" y1=\"0\" x2=\"45\" y2=\"0\" stroke=\"#818cf860\" stroke-width=\"2\" stroke-dasharray=\"4,4\"/\u003e\n    \u003cpolygon points=\"45,-5 55,0 45,5\" fill=\"#818cf8\"/\u003e\n  \u003c/g\u003e\n\n  \u003c!-- Step 3: Distribute --\u003e\n  \u003cg transform=\"translate(510, 120)\"\u003e\n    \u003crect x=\"-65\" y=\"-40\" width=\"130\" height=\"80\" rx=\"10\" fill=\"#1e293b\" stroke=\"#c084fc40\" stroke-width=\"1.5\"/\u003e\n    \u003ctext x=\"0\" y=\"-10\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"24\" fill=\"#c084fc\"\u003e3\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"12\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"13\" font-weight=\"600\" fill=\"#e2e8f0\"\u003eDistribute\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"28\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#94a3b8\"\u003eregistry, URL,\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"40\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#94a3b8\"\u003eor file share\u003c/text\u003e\n  \u003c/g\u003e\n\n  \u003c!-- Arrow 3-4 --\u003e\n  \u003cg transform=\"translate(600, 120)\"\u003e\n    \u003cline x1=\"0\" y1=\"0\" x2=\"45\" y2=\"0\" stroke=\"#c084fc60\" stroke-width=\"2\" stroke-dasharray=\"4,4\"/\u003e\n    \u003cpolygon points=\"45,-5 55,0 45,5\" fill=\"#c084fc\"/\u003e\n  \u003c/g\u003e\n\n  \u003c!-- Step 4: Install --\u003e\n  \u003cg transform=\"translate(690, 120)\"\u003e\n    \u003crect x=\"-65\" y=\"-40\" width=\"130\" height=\"80\" rx=\"10\" fill=\"#1e293b\" stroke=\"#38bdf840\" stroke-width=\"1.5\"/\u003e\n    \u003ctext x=\"0\" y=\"-10\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"24\" fill=\"#38bdf8\"\u003e4\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"12\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"13\" font-weight=\"600\" fill=\"#e2e8f0\"\u003eInstall\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"28\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#94a3b8\"\u003eextract, config,\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"40\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#94a3b8\"\u003eregister\u003c/text\u003e\n  \u003c/g\u003e\n\n  \u003c!-- Divider --\u003e\n  \u003cline x1=\"50\" y1=\"195\" x2=\"750\" y2=\"195\" stroke=\"#334155\" stroke-width=\"1\"/\u003e\n\n  \u003c!-- Feature cards row — 4 cards centered at 110, 310, 510, 690 --\u003e\n  \u003c!-- Card 1 --\u003e\n  \u003cg transform=\"translate(110, 270)\"\u003e\n    \u003crect x=\"-70\" y=\"-50\" width=\"140\" height=\"100\" rx=\"8\" fill=\"#0f172a\" stroke=\"#334155\" stroke-width=\"1\"/\u003e\n    \u003ctext x=\"0\" y=\"-22\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"20\" fill=\"#38bdf8\"\u003e\u0026#128230;\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"0\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"12\" font-weight=\"600\" fill=\"#e2e8f0\"\u003eSelf-Contained\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"16\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"10\" fill=\"#94a3b8\"\u003eAll deps vendored.\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"28\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"10\" fill=\"#94a3b8\"\u003eNo runtime fetches.\u003c/text\u003e\n  \u003c/g\u003e\n\n  \u003c!-- Card 2 --\u003e\n  \u003cg transform=\"translate(310, 270)\"\u003e\n    \u003crect x=\"-70\" y=\"-50\" width=\"140\" height=\"100\" rx=\"8\" fill=\"#0f172a\" stroke=\"#334155\" stroke-width=\"1\"/\u003e\n    \u003ctext x=\"0\" y=\"-22\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"20\" fill=\"#818cf8\"\u003e\u0026#9889;\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"0\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"12\" font-weight=\"600\" fill=\"#e2e8f0\"\u003eLazy Loading\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"16\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"10\" fill=\"#94a3b8\"\u003eMetadata only at start.\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"28\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"10\" fill=\"#94a3b8\"\u003eContent on demand.\u003c/text\u003e\n  \u003c/g\u003e\n\n  \u003c!-- Card 3 --\u003e\n  \u003cg transform=\"translate(510, 270)\"\u003e\n    \u003crect x=\"-70\" y=\"-50\" width=\"140\" height=\"100\" rx=\"8\" fill=\"#0f172a\" stroke=\"#334155\" stroke-width=\"1\"/\u003e\n    \u003ctext x=\"0\" y=\"-22\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"20\" fill=\"#c084fc\"\u003e\u0026#128274;\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"0\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"12\" font-weight=\"600\" fill=\"#e2e8f0\"\u003eDeterministic\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"16\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"10\" fill=\"#94a3b8\"\u003eLockfile pins versions.\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"28\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"10\" fill=\"#94a3b8\"\u003eSHA-256 checksums.\u003c/text\u003e\n  \u003c/g\u003e\n\n  \u003c!-- Card 4 --\u003e\n  \u003cg transform=\"translate(690, 270)\"\u003e\n    \u003crect x=\"-70\" y=\"-50\" width=\"140\" height=\"100\" rx=\"8\" fill=\"#0f172a\" stroke=\"#334155\" stroke-width=\"1\"/\u003e\n    \u003ctext x=\"0\" y=\"-22\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"20\" fill=\"#38bdf8\"\u003e\u0026#127760;\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"0\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"12\" font-weight=\"600\" fill=\"#e2e8f0\"\u003eCross-Tool\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"16\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"10\" fill=\"#94a3b8\"\u003eOne package for all\u003c/text\u003e\n    \u003ctext x=\"0\" y=\"28\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"10\" fill=\"#94a3b8\"\u003eAI coding tools.\u003c/text\u003e\n  \u003c/g\u003e\n\n  \u003c!-- Footer --\u003e\n  \u003ctext x=\"400\" y=\"380\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"12\" fill=\"#475569\"\u003eccpkg.dev -- Spec version 2026-02-14 (draft)\u003c/text\u003e\n\u003c/svg\u003e\n","funding_links":["https://github.com/sponsors/zircote"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzircote%2Fccpkg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzircote%2Fccpkg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzircote%2Fccpkg/lists"}