README.mdβ’4.75 kB
# Skillz
## π **Use _skills_ in any agent** _(Codex, Copilot, Cursor, etc...)_
[](https://pypi.org/project/skillz/)
[](https://pypi.org/project/skillz/)
> β οΈ **Experimental proofβofβconcept. Potentially unsafe. Treat skills like untrusted code and run in sandboxes/containers. Use at your own risk.**
**Skillz** is an MCP server that turns [Claude-style skills](https://github.com/anthropics/skills) _(`SKILL.md` plus optional resources)_ into callable tools for any MCP client. It discovers each skill, exposes the authored instructions and resources, and can run bundled helper scripts.
> π‘ You can find skills to install at the **[Skills Supermarket](http://skills.intellectronica.net/)** directory.
## Quick Start
To run the MCP server in your agent, use the following config (or equivalent):
```json
{
  "skillz": {
    "command": "uvx",
    "args": ["skillz@latest"]
  }
}
```
with the skills residing at `~/.skillz`
_or_
```json
{
  "skillz": {
    "command": "uvx",
    "args": ["skillz@latest", "/path/to/skills/direcotry"]
  }
}
```
or Docker
You can run Skillz using Docker for isolation. The image is available on Docker Hub at `intellectronica/skillz`.
To run the Skillz MCP server with your skills directory mounted using Docker, configure your agent as follows: 
Replace `/path/to/skills` with the path to your actual skills directory. Any arguments after `intellectronica/skillz` in the array are passed directly to the Skillz CLI.
```json
{
  "skillz": {
    "command": "docker",
    "args": [
      "run",
      "-i",
      "--rm",
      "-v",
      "/path/to/skills:/skillz",
      "intellectronica/skillz",
      "/skillz"
    ]
  }
}
```
## Usage
Skillz looks for skills inside the root directory you provide (defaults to
`~/.skillz`). Each skill lives in its own folder or zip archive (`.zip` or `.skill`)
that includes a `SKILL.md` file with YAML front matter describing the skill. Any
other files in the skill become downloadable resources for your agent (scripts,
datasets, examples, etc.).
An example directory might look like this:
```text
~/.skillz/
βββ summarize-docs/
β   βββ SKILL.md
β   βββ summarize.py
β   βββ prompts/example.txt
βββ translate.zip
βββ analyzer.skill
βββ web-search/
    βββ SKILL.md
```
When packaging skills as zip archives (`.zip` or `.skill`), include the `SKILL.md`
either at the root of the archive or inside a single top-level directory:
```text
translate.zip
βββ SKILL.md
βββ helpers/
    βββ translate.js
```
```text
data-cleaner.zip
βββ data-cleaner/
    βββ SKILL.md
    βββ clean.py
```
### Directory Structure: Skillz vs Claude Code
Skillz supports a more flexible skills directory than Claude Code. In addition to a flat layout, you can organize skills in nested subdirectories and include skills packaged as `.zip` or `.skill` files (as shown in the examples above).
Claude Code, on the other hand, expects a flat skills directory: every immediate subdirectory is a single skill. Nested directories are not discovered, and `.zip` or `.skill` files are not supported.
If you want your skills directory to be compatible with Claude Code (for example, so you can symlink one skills directory between the two tools), you must use the flat layout.
**Claude Codeβcompatible layout:**
```text
skills/
βββ hello-world/
β   βββ SKILL.md
β   βββ run.sh
βββ summarize-text/
    βββ SKILL.md
    βββ run.py
```
**Skillz-only layout examples** (not compatible with Claude Code):
```text
skills/
βββ text-tools/
β   βββ summarize-text/
β       βββ SKILL.md
β       βββ run.py
βββ image-processing.zip
βββ data-analyzer.skill
```
You can use `skillz --list-skills` (optionally pointing at another skills root)
to verify which skills the server will expose before connecting it to your
agent.
## CLI Reference
`skillz [skills_root] [options]`
| Flag / Option | Description |
| --- | --- |
| positional `skills_root` | Optional skills directory (defaults to `~/.skillz`). |
| `--transport {stdio,http,sse}` | Choose the FastMCP transport (default `stdio`). |
| `--host HOST` | Bind address for HTTP/SSE transports. |
| `--port PORT` | Port for HTTP/SSE transports. |
| `--path PATH` | URL path when using the HTTP transport. |
| `--list-skills` | List discovered skills and exit. |
| `--verbose` | Emit debug logging to the console. |
| `--log` | Mirror verbose logs to `/tmp/skillz.log`. |
---
> Made with π«Ά by [`@intellectronica`](https://intellectronica.net)