Skip to main content

skill-openapi-bridge

Bridge between agentskills.io skills and a local OpenAPI server.

CI PyPI Python License: MIT


Concept

An agentskills.io skill can contain rich supporting files beyond SKILL.md:

<skill-name>/
├── SKILL.md          # Required: metadata + instructions
├── scripts/          # Optional: executable code
├── references/       # Optional: documentation
└── assets/           # Optional: templates, resources

Claude.ai's skill integration currently only reads SKILL.md. All optional subdirectories are invisible to the agent.

skill-openapi-bridge solves this with two commands:

  • generate — fetches a skill from GitHub at a pinned commit and produces a <skillname>-openapi-spec.json embedding all referenced file content as a valid OpenAPI 3.1.0 spec
  • serve — reads that spec and starts a local HTTP server inside the agent's container session, exposing all skill content via 25 REST routes following Progressive Disclosure

No external servers. No tunnels. Everything runs on localhost inside the container.


Install

pip install skill-openapi-bridge
# or with uv:
uv add skill-openapi-bridge

Shell tab completion (free via Typer):

skill-openapi-bridge --install-completion

Usage

generate — GitHub repo → openapi-spec.json

Pin to a specific commit (recommended):

skill-openapi-bridge generate \
  --repo https://github.com/roebi/agent-skills \
  --commit abc123def456abc123def456abc123def456ab12 \
  --skill skills/brainstorming-topic-dialog-creative-mentor-en

Auto-resolve from branch:

skill-openapi-bridge generate \
  --repo https://github.com/roebi/agent-skills \
  --branch main \
  --skill skills/brainstorming-topic-dialog-creative-mentor-en

Outputs: brainstorming-topic-dialog-creative-mentor-en-openapi-spec.json

Custom output path:

skill-openapi-bridge generate \
  --repo https://github.com/roebi/agent-skills \
  --branch main \
  --skill skills/brainstorming-topic-dialog-creative-mentor-en \
  --output ./specs/brainstorming-en.json

serve — openapi-spec.json → local HTTP server

skill-openapi-bridge serve brainstorming-topic-dialog-creative-mentor-en-openapi-spec.json
# skill-openapi-bridge serving on http://127.0.0.1:52357
# READY on :52357

Custom port and host:

skill-openapi-bridge serve spec.json --port 8080 --host 0.0.0.0

In an agent session

The agent installs the package and starts the server:

pip install skill-openapi-bridge
skill-openapi-bridge serve brainstorming-topic-dialog-creative-mentor-en-openapi-spec.json &
sleep 1
curl http://localhost:52357/

Routes (25 total)

Fileserver routes

GET /                                        HATEOAS root — skill list with full URLs
GET /<skill>/                                Top-level entries
GET /<skill>/SKILL.md                        SKILL.md content
GET /<skill>/references/                     Reference file listing
GET /<skill>/references/<ref>                Reference file content
GET /<skill>/scripts/                        Script file listing
GET /<skill>/scripts/<file>                  Script file content
GET /<skill>/assets/                         Asset file listing
GET /<skill>/assets/<file>                   Asset file content

Special routes — root

GET /list                                    Human-readable skill list (HTML)
GET /to-prompt                               <available_skills> XML for all skills
GET /to-conventions                          Markdown conventions block for all skills
GET /validate                                JSON validation results for all skills
GET /meta                                    JSON frontmatter for all skills
GET /pin                                     JSON {commit, repo, path} for all skills
GET /find/<partial>                          302 redirect to best matching SKILL.md
GET /schema/openapi.json                     OpenAPI 3.1.0 spec (all routes)
GET /schema/swagger                          Swagger UI

Special routes — per skill

GET /<skill>/to-prompt                       <available_skills> XML for this skill
GET /<skill>/to-conventions                  Markdown conventions block for this skill
GET /<skill>/validate                        JSON validation result for this skill
GET /<skill>/meta                            JSON frontmatter for this skill
GET /<skill>/pin                             JSON {commit, repo, path} for this skill
GET /<skill>/schema/openapi.json             OpenAPI 3.1.0 spec scoped to this skill
GET /<skill>/schema/swagger                  Swagger UI scoped to this skill

Response headers on all file routes

Content-Type:      text/markdown; charset=utf-8
ETag:              "sha256:<hex>"
Cache-Control:     immutable, max-age=31536000
X-Skill-Name:      <skill-name>
X-Skill-Commit:    <full-commit-sha>
X-Content-SHA256:  <hex>

Content is pinned to a commit — Cache-Control: immutable is correct and permanent.


Architecture

GitHub repo (pinned commit)
        |
        | skill-openapi-bridge generate
        v
<skillname>-openapi-spec.json   (valid OpenAPI 3.1.0, all file content embedded)
        |
        | skill-openapi-bridge serve
        v
localhost:<port>                (pure stdlib HTTP server, in-container)
        |
        | curl / fetch — Progressive Disclosure
        v
Agent
  GET /                         Discovery  — skill list + URLs
  GET /<skill>/SKILL.md         Activation — full skill instructions
  GET /<skill>/references/x     Loading    — reference files on demand

Related

License

MIT

Metadata

Release files for skill-openapi-bridge 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for skill-openapi-bridge 0.3.0
File Size Uploaded
skill_openapi_bridge-0.3.0.tar.gz 25.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for skill-openapi-bridge 0.3.0
File Interpreter ABI Platform
skill_openapi_bridge-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 41.4 kB

Release files / skill_openapi_bridge-0.3.0.tar.gz

Download URL skill_openapi_bridge-0.3.0.tar.gz
Size 25.1 kB
Tags Source
SHA-256 checksum
How to use checksums
90ce4cb6a7947deb71db4a6772e47ad2e6247b6f13bb7218fdeb6c9d0296d28d
BLAKE2b-256 checksum
How to use checksums
264547c14810aa6c34c112962e969eb3063e810e353c943d178b45775227ea88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / skill_openapi_bridge-0.3.0-py3-none-any.whl

Download URL skill_openapi_bridge-0.3.0-py3-none-any.whl
Size 16.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1b8ea4418d59546ff94772a52921d49931a2d7f420c89d5468f3b50705f6ba16
BLAKE2b-256 checksum
How to use checksums
afed3ee55ca7b80997ed6990f1b04d554090bd3bf17cd9d43dc174c13a9a8b74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page