{"_id":"@aria-plugins/aria-skills-marketplace","_rev":"4-4831893842f5aba5714a3c36e5719c3d","name":"@aria-plugins/aria-skills-marketplace","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@aria-plugins/aria-skills-marketplace","version":"1.0.0","keywords":["opencode","opencode-plugin","skills","marketplace","gitlab"],"author":"","license":"MIT","_id":"@aria-plugins/aria-skills-marketplace@1.0.0","maintainers":[{"name":"david-butbul","email":"butbul.david@gmail.com"}],"dist":{"shasum":"586c244cb320ea020f2c9012e386c5374d7aedc2","tarball":"https://registry.npmjs.org/@aria-plugins/aria-skills-marketplace/-/aria-skills-marketplace-1.0.0.tgz","fileCount":40,"integrity":"sha512-fXKIEHkhtn8XTiRiOwDLpoxQhyAZxBnDX2IB31Pd2MR05WMT5s3SUkCzGBRNxeF46GmcKKcJEWAq4UG3rSdY6Q==","signatures":[{"sig":"MEYCIQC/hDU1F8m4mn1sBBXIOGfERAXTN0UYeny3+P61JmidiwIhAI9GlWireyzmXT3sX1Rf9s3KGrZGOkmdOOuQVposPb6z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":565530},"main":"dist/marketplace.bundle.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/marketplace.bundle.js","./tui":"./dist/marketplace-tui.bundle.js"},"scripts":{"dev":"tsc --watch","build":"tsc","bundle":"npm run bundle:server && npm run bundle:tui","bundle:tui":"esbuild src/tui.ts --bundle --platform=node --format=esm --external:@opentui/core --external:@opentui/solid --outfile=dist/marketplace-tui.bundle.js","bundle:server":"esbuild src/index.ts --bundle --platform=node --format=esm --outfile=dist/marketplace.bundle.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"david-butbul","email":"butbul.david@gmail.com"},"oc-plugin":["server","tui"],"_npmVersion":"11.6.2","description":"Interactive skills marketplace for opencode CLI — browse, install, and auto-update skills from a GitLab registry","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.0","typescript":"^6.0.3","@types/node":"^25.9.1"},"peerDependencies":{"@opencode-ai/plugin":"^1.4.3"},"peerDependenciesMeta":{"@opencode-ai/plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aria-skills-marketplace_1.0.0_1779313425502_0.6818425883089223","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aria-plugins/aria-skills-marketplace","version":"1.0.1","keywords":["opencode","opencode-plugin","skills","marketplace","gitlab"],"author":"","license":"MIT","_id":"@aria-plugins/aria-skills-marketplace@1.0.1","maintainers":[{"name":"david-butbul","email":"butbul.david@gmail.com"}],"dist":{"shasum":"4c04ae1386f0666c6c5b696359828073a31e016a","tarball":"https://registry.npmjs.org/@aria-plugins/aria-skills-marketplace/-/aria-skills-marketplace-1.0.1.tgz","fileCount":40,"integrity":"sha512-FJvUXjtfVscksXIYbIUzu+ggaDa/g8w8gAMdV1pXlSxqj5wEfqghkLC6zhrsGylP0toFPsPuZOfgHsUbB2QMWA==","signatures":[{"sig":"MEUCIQDXAyEvNP4XiFYLyUc+xnZXOlem3EY+NHaFwOwCE/5uiQIgBcp02gPSC4bzUOy1jiC0wOSxeNFDgr53Sq2XwDSrJJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":566176},"main":"dist/marketplace.bundle.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/marketplace.bundle.js","./tui":"./dist/marketplace-tui.bundle.js"},"scripts":{"dev":"tsc --watch","build":"tsc","bundle":"npm run bundle:server && npm run bundle:tui","bundle:tui":"esbuild src/tui.ts --bundle --platform=node --format=esm --external:@opentui/core --external:@opentui/solid --outfile=dist/marketplace-tui.bundle.js","bundle:server":"esbuild src/index.ts --bundle --platform=node --format=esm --outfile=dist/marketplace.bundle.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"david-butbul","email":"butbul.david@gmail.com"},"oc-plugin":["server","tui"],"_npmVersion":"11.6.2","description":"Interactive skills marketplace for opencode CLI — browse, install, and auto-update skills from a GitLab registry","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@aria-plugins/aria-skills-marketplace":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.0","typescript":"^6.0.3","@types/node":"^25.9.1"},"peerDependencies":{"@opencode-ai/plugin":"^1.4.3"},"peerDependenciesMeta":{"@opencode-ai/plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aria-skills-marketplace_1.0.1_1779314371043_0.7879337364408705","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aria-plugins/aria-skills-marketplace","version":"1.0.2","keywords":["opencode","opencode-plugin","skills","marketplace","gitlab"],"author":"","license":"MIT","_id":"@aria-plugins/aria-skills-marketplace@1.0.2","maintainers":[{"name":"david-butbul","email":"butbul.david@gmail.com"}],"dist":{"shasum":"69bf238a5657bdc3b15ab30f765d513051165b65","tarball":"https://registry.npmjs.org/@aria-plugins/aria-skills-marketplace/-/aria-skills-marketplace-1.0.2.tgz","fileCount":40,"integrity":"sha512-eNE2gkdYhvIuL4aEIgMYgxwPqye5LNNJ6WZYp3hDUQUVjGLV7+AB8LxeZQnS9rjaC7l0Qv8bPHdljtfZrjG8dg==","signatures":[{"sig":"MEUCID3hhTNS5CfN40zcttYBnR/nwStXkWuyTuSynHllCaqnAiEAlYdK5EZKalK7wMD1YdA1I7ph8G6dNehwtk19gIVY+TQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":566849},"main":"dist/marketplace.bundle.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":"./dist/marketplace.bundle.js","./tui":"./dist/marketplace-tui.bundle.js"},"scripts":{"dev":"tsc --watch","build":"tsc","bundle":"npm run bundle:server && npm run bundle:tui","bundle:tui":"esbuild src/tui.ts --bundle --platform=node --format=esm --external:@opentui/core --external:@opentui/solid --outfile=dist/marketplace-tui.bundle.js","bundle:server":"esbuild src/index.ts --bundle --platform=node --format=esm --outfile=dist/marketplace.bundle.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"david-butbul","email":"butbul.david@gmail.com"},"oc-plugin":["server","tui"],"_npmVersion":"11.6.2","description":"Interactive skills marketplace for opencode CLI — browse, install, and auto-update skills from a GitLab registry","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@aria-plugins/aria-skills-marketplace":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.0","typescript":"^6.0.3","@types/node":"^25.9.1"},"peerDependencies":{"@opencode-ai/plugin":"^1.4.3"},"peerDependenciesMeta":{"@opencode-ai/plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aria-skills-marketplace_1.0.2_1779315222794_0.9994039507480665","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aria-plugins/aria-skills-marketplace","version":"1.0.3","description":"Interactive skills marketplace for opencode CLI — browse, install, and auto-update skills from a GitLab registry","type":"module","main":"dist/marketplace.bundle.js","types":"dist/index.d.ts","exports":{".":"./dist/marketplace.bundle.js","./tui":"./dist/marketplace-tui.bundle.js"},"oc-plugin":["server","tui"],"scripts":{"build":"tsc","bundle:server":"esbuild src/index.ts --bundle --platform=node --format=esm --outfile=dist/marketplace.bundle.js","bundle:tui":"esbuild src/tui.ts --bundle --platform=node --format=esm --external:@opentui/core --external:@opentui/solid --outfile=dist/marketplace-tui.bundle.js","bundle":"npm run bundle:server && npm run bundle:tui","dev":"tsc --watch","prepublishOnly":"npm run build"},"keywords":["opencode","opencode-plugin","skills","marketplace","gitlab"],"author":"","license":"MIT","engines":{"node":">=18"},"peerDependencies":{"@opencode-ai/plugin":"^1.4.3"},"peerDependenciesMeta":{"@opencode-ai/plugin":{"optional":true}},"devDependencies":{"@types/node":"^25.9.1","esbuild":"^0.28.0","typescript":"^6.0.3"},"dependencies":{"@aria-plugins/aria-skills-marketplace":"^1.0.1"},"_id":"@aria-plugins/aria-skills-marketplace@1.0.3","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-vmdSfP83l2gjM63hoF9r0vt8BzVfmjP64xGtespqTuGzsQt4GRQtxOt1U1CnRfMLk1kKOuMxtD1+rMo7SmOsiQ==","shasum":"4b614cab2ee2e0608563fdb5a76a67a6f2929030","tarball":"https://registry.npmjs.org/@aria-plugins/aria-skills-marketplace/-/aria-skills-marketplace-1.0.3.tgz","fileCount":40,"unpackedSize":566771,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAU2iJEzjefdfWMHHwduZ0dJ//X0Szj88MvUT4h1JW6KAiEAkKCrfdblRqbFrUGRd8IF0AG4Dg9VdeXRjiVyBI8QJ/0="}]},"_npmUser":{"name":"david-butbul","email":"butbul.david@gmail.com"},"directories":{},"maintainers":[{"name":"david-butbul","email":"butbul.david@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/aria-skills-marketplace_1.0.3_1779315416665_0.9398433038143379"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-20T21:43:45.363Z","modified":"2026-05-20T22:16:56.927Z","1.0.0":"2026-05-20T21:43:45.651Z","1.0.1":"2026-05-20T21:59:31.185Z","1.0.2":"2026-05-20T22:13:42.943Z","1.0.3":"2026-05-20T22:16:56.824Z"},"license":"MIT","keywords":["opencode","opencode-plugin","skills","marketplace","gitlab"],"description":"Interactive skills marketplace for opencode CLI — browse, install, and auto-update skills from a GitLab registry","maintainers":[{"name":"david-butbul","email":"butbul.david@gmail.com"}],"readme":"# aria-skills-marketplace\n\nAn interactive skills marketplace plugin for [opencode CLI](https://opencode.ai). Browse, install, and auto-update skills directly from a GitLab registry — all from inside the opencode TUI.\n\n## Features\n\n- **`/aria-skills-marketplace` command** — interactive TUI popup to browse and install skills\n- **Auto-update on startup** — fetches registry and silently installs updates for all installed skills\n- **GitLab-backed registry** — skills live in a GitLab repo you control\n- **Multi-file skills** — each skill is a folder (`SKILL.md` + scripts, assets, references)\n- **Versioned skills** — semver versioning, automatic updates on opencode start\n- **Zero config JSON** — configured via two environment variables only\n\n---\n\n## Installation\n\n### 1. Install the package\n\n```bash\nnpm install @aria-plugins/aria-skills-marketplace\n```\n\n### 2. Add the dependency to opencode's package file\n\nAdd the package to `~/.config/opencode/package.json`.  \nIf that file doesn't exist yet, create it:\n\n```json\n{\n  \"dependencies\": {\n    \"@aria-plugins/aria-skills-marketplace\": \"latest\"\n  },\n  \"type\": \"module\"\n}\n```\n\nThen run:\n\n```bash\ncd ~/.config/opencode\nbun install\n```\n\n### 3. Register the server plugin\n\nCreate `~/.config/opencode/plugins/marketplace.js` with a single re-export:\n\n```js\nexport { default } from \"@aria-plugins/aria-skills-marketplace\";\n```\n\n### 4. Register the TUI plugin\n\nCreate (or update) `~/.config/opencode/tui.json`:\n\n```json\n{\n  \"plugin\": [\"@aria-plugins/aria-skills-marketplace\"]\n}\n```\n\n### 4. Set environment variables\n\n```bash\nexport OPENCODE_MARKETPLACE_GITLAB_URL=\"https://gitlab.com/your-group/your-skills-registry\"\nexport OPENCODE_MARKETPLACE_GITLAB_TOKEN=\"glpat-xxxxxxxxxxxx\"\n```\n\nAdd these to your shell profile (`~/.zshrc`, `~/.bashrc`, etc.) to persist across sessions.  \nThe GitLab token needs at minimum `read_api` scope.\n\n### 5. Restart opencode\n\nOn the next start opencode will load the plugin, auto-update installed skills, and register the `/aria-skills-marketplace` command.\n\n---\n\n## Usage\n\nType `/aria-skills-marketplace` in the opencode TUI to open the interactive marketplace:\n\n```\nAVAILABLE SKILLS\n1. Git Commit Helper [v1.0.0] — Writes conventional commits [not installed]\n2. Example Skill [v4.0.0] — A sample skill to demonstrate the marketplace [INSTALLED ✓]\n3. Web Design Guidelines [v1.0.0] — Web design best practices [UPDATE AVAILABLE ↑1.1.0]\n\nINSTALLED SKILLS\n- example-skill v4.0.0 ✓\n- web-design-guidelines v1.0.0 → update available (v1.1.0)\n\nEnter a skill number or ID to install it, 'update all' to update all skills,\n'remove <id>' to uninstall, or 'done' to exit.\n```\n\n### Available AI tools\n\n| Tool | Description |\n|------|-------------|\n| `marketplace_status` | Sync status + list of installed skills |\n| `marketplace_list` | Browse all registry skills (optional tag filter) |\n| `marketplace_search` | Search skills by keyword across name, description, and tags |\n| `marketplace_install` | Install a skill by ID |\n| `marketplace_uninstall` | Remove an installed skill |\n| `marketplace_update` | Update one skill or all skills with newer versions |\n\n---\n\n## Environment Variables\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `OPENCODE_MARKETPLACE_GITLAB_URL` | Yes | Full HTTPS URL to the GitLab skills registry repo |\n| `OPENCODE_MARKETPLACE_GITLAB_TOKEN` | Yes | GitLab personal access token (`read_api` scope) |\n\n---\n\n## GitLab Registry Structure\n\nYour GitLab repository must follow this layout:\n\n```\nyour-skills-registry/          ← the repo pointed to by OPENCODE_MARKETPLACE_GITLAB_URL\n├── registry.json              ← root index listing all skills\n└── skills/\n    └── your-skill-id/\n        ├── skill.json         ← skill manifest (id, version, tags, file list)\n        ├── SKILL.md           ← AI instructions — required, must have frontmatter\n        ├── references/        ← optional reference docs the AI reads\n        ├── scripts/           ← optional helper scripts\n        └── assets/            ← optional binary assets\n```\n\n### `registry.json` — root index\n\nLists every skill available in the registry. Update this file whenever you add or version a skill.\n\n```json\n{\n  \"version\": \"1\",\n  \"updated\": \"2026-05-21T00:00:00Z\",\n  \"skills\": [\n    {\n      \"id\": \"git-commit-helper\",\n      \"name\": \"Git Commit Helper\",\n      \"version\": \"1.2.0\",\n      \"description\": \"Writes conventional commits and crafts perfect commit messages\",\n      \"author\": \"your-username\",\n      \"tags\": [\"git\", \"commits\", \"conventional-commits\"],\n      \"path\": \"skills/git-commit-helper\",\n      \"updatedAt\": \"2026-05-21T00:00:00Z\"\n    },\n    {\n      \"id\": \"code-reviewer\",\n      \"name\": \"Code Reviewer\",\n      \"version\": \"2.0.1\",\n      \"description\": \"Reviews pull requests and suggests improvements\",\n      \"author\": \"your-username\",\n      \"tags\": [\"code-review\", \"quality\"],\n      \"path\": \"skills/code-reviewer\",\n      \"updatedAt\": \"2026-04-10T00:00:00Z\"\n    }\n  ]\n}\n```\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `id` | string | Unique slug — used as the folder name and install identifier |\n| `name` | string | Display name shown in the marketplace UI |\n| `version` | string | Semver version (e.g. `1.2.0`) — must match `skill.json` |\n| `description` | string | One-line description shown in skill listings |\n| `author` | string | Author name or username |\n| `tags` | string[] | Searchable tags |\n| `path` | string | Path to the skill folder relative to the repo root |\n| `updatedAt` | string | ISO-8601 timestamp of the last update |\n\n### `skill.json` — skill manifest\n\nLives inside each skill folder. Declares metadata and the full list of files the installer should download.\n\n```json\n{\n  \"id\": \"git-commit-helper\",\n  \"name\": \"Git Commit Helper\",\n  \"version\": \"1.2.0\",\n  \"description\": \"Writes conventional commits and crafts perfect commit messages\",\n  \"author\": \"your-username\",\n  \"tags\": [\"git\", \"commits\", \"conventional-commits\"],\n  \"license\": \"MIT\",\n  \"files\": {\n    \"skillMd\": \"SKILL.md\",\n    \"references\": [\n      \"references/conventional-commits.md\",\n      \"references/examples.md\"\n    ],\n    \"scripts\": [\n      \"scripts/validate-message.sh\"\n    ],\n    \"assets\": []\n  }\n}\n```\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `id` | string | Must match the folder name and `registry.json` entry |\n| `name` | string | Display name |\n| `version` | string | Semver version — bump this to trigger auto-updates |\n| `description` | string | Short description |\n| `author` | string | Author |\n| `tags` | string[] | Searchable tags |\n| `license` | string | Optional — SPDX license identifier |\n| `files.skillMd` | string | Relative path to the `SKILL.md` file (always `\"SKILL.md\"`) |\n| `files.references` | string[] | Reference docs loaded alongside the skill |\n| `files.scripts` | string[] | Helper scripts bundled with the skill |\n| `files.assets` | string[] | Binary or static assets (images, data files, etc.) |\n\n### `SKILL.md` — AI instructions\n\nEvery skill **must** include a `SKILL.md` with YAML frontmatter. Without the frontmatter, opencode will not recognise the file as a skill and it will not appear in `/skills`.\n\n```markdown\n---\nname: git-commit-helper\ndescription: Write conventional commits and craft perfect commit messages. Trigger when the user asks to commit, write a commit message, or needs git workflow help.\nversion: \"1.2.0\"\n---\n\n# Git Commit Helper\n\nFull skill instructions go here. The AI reads this file when the skill is loaded.\n\n## When to use me\n\n- \"help me commit these changes\"\n- \"write a commit message\"\n\n## How I work\n\n1. I examine your staged changes with `git diff --staged`\n2. I suggest a conventional commit message\n3. I confirm with you before running `git commit`\n```\n\nFrontmatter fields:\n\n| Field | Required | Description |\n|-------|----------|-------------|\n| `name` | Yes | Must match the skill `id` |\n| `description` | Yes | One sentence — what the skill does AND when to trigger it. Front-load the keywords a user is likely to say. |\n| `version` | No | Informational only |\n\n---\n\n## Publishing a New Skill Version\n\n1. Update `version` in `skill.json` (e.g. `1.2.0` → `1.3.0`)\n2. Update the matching `version` in `registry.json`\n3. Update `updatedAt` in `registry.json`\n4. Push to `main`\n\nOn the next opencode startup, the plugin detects the version bump and automatically installs the update. No user action required.\n\n---\n\n## Building\n\n```bash\n# Install dev dependencies\nnpm install\n\n# Build both bundles\nnpm run bundle\n\n# Server plugin only\nnpm run bundle:server\n\n# TUI plugin only\nnpm run bundle:tui\n```\n\nOutput files:\n- `dist/marketplace.bundle.js` — server plugin (copy to `~/.config/opencode/plugins/`)\n- `dist/marketplace-tui.bundle.js` — TUI plugin (loaded via `tui.json`)\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}