https://github.com/francostino/opencode-skills-collection
OpenCode plugin that automatically downloads and keeps Skills up to date
https://github.com/francostino/opencode-skills-collection
ai opencode skills
Last synced: 23 days ago
JSON representation
OpenCode plugin that automatically downloads and keeps Skills up to date
- Host: GitHub
- URL: https://github.com/francostino/opencode-skills-collection
- Owner: FrancoStino
- License: mit
- Created: 2026-03-17T11:34:43.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-12T08:52:32.000Z (about 2 months ago)
- Last Synced: 2026-04-12T09:30:46.464Z (about 2 months ago)
- Topics: ai, opencode, skills
- Language: Python
- Homepage: https://www.npmjs.com/package/opencode-skills-collection
- Size: 30.5 MB
- Stars: 6
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Codeowners: CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README

[](https://www.npmjs.com/package/opencode-skills-collection)
[](https://www.npmjs.com/package/opencode-skills-collection)
[](./LICENSE)
[](https://zread.ai/FrancoStino/opencode-skills-collection)
# OpenCode Skills Collection
> An [OpenCode CLI](https://opencode.ai/) plugin that bundles and auto-syncs a universal collection of AI skills —
> delivered instantly, with zero network latency at startup.
---
## Overview
**OpenCode Skills Collection** ships a pre-bundled snapshot of 1000+ universal skills for the OpenCode CLI.
Instead of loading every skill into the AI context at startup — which would consume ~80k tokens and cause compaction
loops — the plugin uses a **SkillPointer** architecture: skills are organized into categories inside a hidden vault and
only loaded into context on demand.
---
## How It Works
The plugin operates in two phases:
**1. Local deployment (startup)**
When OpenCode starts, the plugin copies the pre-bundled skills from the npm package and runs the SkillPointer pipeline:
```
bundled-skills/ (npm package)
│
▼
~/.config/opencode/skills/ ← OpenCode reads this
│
└── SkillPointer pipeline
│
├─ vault-manager → moves raw skills to the vault
└─ pointer-generator → writes ~35 lightweight pointer files
```
**2. On-demand skill loading**
Each pointer file tells the AI: *"there are N skills for this category in the vault — use `list_dir` / `view_file` to
retrieve them when needed."*
The full skill content is only injected into context when the AI actually needs it.
---
## Disk Layout
After the first startup, your `~/.config/opencode/` directory looks like this:
```
~/.config/opencode/
├── opencode.json
├── skills/ ← pointer folders (active, read by OpenCode)
│ ├── backend-dev-category-pointer/
│ │ └── SKILL.md
│ ├── devops-category-pointer/
│ │ └── SKILL.md
│ └── ...
└── skill-libraries/ ← vault with all raw skills (hidden from startup context)
├── backend-dev/
│ ├── laravel-expert/
│ │ └── SKILL.md
│ └── wordpress-core/
│ └── SKILL.md
├── devops/
└── ...
```
---
## Context Usage
| | Without SkillPointer | With SkillPointer |
|----------------------|----------------------|---------------------|
| Folders in `skills/` | ~1000 | ~35 |
| Tokens at startup | ~80,000 | ~255 |
| Skills available | All injected upfront | On-demand via vault |
| Compaction loops | ✗ frequent | ✓ none |
---
## Installation
Add the plugin to your global OpenCode configuration file at `~/.config/opencode/opencode.json`:
```json
{
"plugin": [
"opencode-skills-collection@latest"
]
}
```
That's it. OpenCode will automatically download the npm package on next startup via Bun — no manual `npm install`
needed.
---
## Usage
Once installed, all skills are available in three ways:
**Explicit invocation via CLI:**
```bash
opencode run /brainstorming help me plan a new feature
opencode run /refactor clean up this function
```
**Slash commands in the OpenCode chat:**
```
/brainstorming
/refactor
/document
```
**Natural language — OpenCode picks the right skill automatically:**
```
"Help me brainstorm ideas for a REST API design"
"Refactor this function to be more readable"
```
---
## Skill Risk Filter
The plugin supports configurable risk-based filtering of skills. By default, **all skills are loaded** — filtering is
opt-in.
Each skill in the index has a `risk` field with one of these levels:
| Level | Description |
|-------------|--------------------------------------------------------------------|
| `none` | No risk assessment |
| `safe` | Verified safe |
| `critical` | Contains sensitive operations |
| `offensive` | Contains offensive security tools (exploits, reverse shells, etc.) |
| `unknown` | Not yet classified |
### Configuration
Create a `~/.config/opencode/skill-filter.jsonc` file:
```jsonc
{
"excludedRiskLevels": ["offensive"],
"excludedSkills": ["windows-privilege-escalation"]
}
```
- **`excludedRiskLevels`**: Array of risk levels to block entirely
- **`excludedSkills`**: Array of specific skill IDs to block
Blocked skills are excluded from both the vault and the generated pointers — they are never loaded into context.
---
## Development
**Requirements:** Node.js ≥ 20, TypeScript ≥ 5
```bash
# Install dependencies
npm install
# Build
npm run build
# Output is in dist/
```
The plugin is written in TypeScript and compiled to ESNext with full type declarations. It targets ES2022 and uses ESM
module resolution.
---
The old `opencode-skills-antigravity` package on npm is deprecated and re-exports this one automatically.
---
## Contributing
Issues and pull requests are welcome
at [github.com/FrancoStino/opencode-skills-collection](https://github.com/FrancoStino/opencode-skills-collection/issues).
---
## Beta Releases
Beta versions are published from the `develop` branch for testing before official releases.
### Installing Beta Versions
To use the latest beta version, update your `~/.config/opencode/opencode.json`:
```json
{
"plugin": [
"opencode-skills-collection@beta"
]
}
```
## License
[MIT ©](./LICENSE)