skillgate-ai
Apache-2.0 local gate for Agent Skills: one pack on disk plus skillgate check exiting 0 or 1. No Skill Gate account. Built-in checks need no API key.
Requires Python 3.11+. Install from PyPI:
pip install skillgate-ai
(pip install skillgate is a different project.) CLI command: skillgate.
10 minutes, no account
python3 -m venv .venv && source .venv/bin/activate
pip install skillgate-ai
skillgate check skills/pdf-sabotaged # exit 1 — description never matches PDF tasks
# copy SKILL.md from skills/pdf (or paste the CLI “Corrected SKILL.md description”)
skillgate check skills/pdf # exit 0
From a clone of this repo, pip install -e . works the same once the virtualenv is on Python 3.11+.
Optional local UI (same engine, no account): skillgate ui → http://127.0.0.1:8765. See docs/ui.md. Docker still runs skillgate check /pack.
--expect-fail inverts the exit code (CI for the sabotaged twin):
skillgate check skills/pdf-sabotaged --expect-fail # exit 0
skillgate deploy skills/pdf copies the pack into Cursor, Claude, or Codex only if the latest local check passed. If this pack has never been checked, deploy runs the check first. Pass --force to install anyway (the skill may still be broken).
skillgate deploy skills/pdf
skillgate deploy skills/pdf --force
Docker
Image ENTRYPOINT is skillgate; default CMD is check /pack (never serve).
docker compose run --rm --no-TTY skillgate
# bind-mount a pack:
PACK=./skills/pdf-sabotaged docker compose run --rm --no-TTY skillgate
# exit 1
Public image tag:
docker run --rm -v "$PWD/skills/pdf:/pack:ro" \
ghcr.io/vigneshm1995personal/skillgate:v0.4.2
A :ro mount skips writing evals/history/*.jsonl (not writable). Compose mounts the pack read-write so history can append.
Copy-paste GitHub Action
Working directory is the skill pack. Exit 1 fails the job. No account. Needs Python 3.11+.
- uses: actions/setup-python@v5
with: { python-version: "3.12" }
- run: pip install skillgate-ai==0.4.2
- run: skillgate check .
Docs
- docs/quickstart.md — red sabotaged → green pdf
- docs/pack.md —
evals/cases.yamlschema 1, fixtures, goldens, history - Score live checks with your OpenAI key — optional;
OPENAI_API_KEYscores live checks. Built-in checker if unset. - docs/ui.md — start the local UI, red path, Docker stays
check /pack - docs/proof/PUBLISH.md — secret scan, tag, PyPI Trusted Publishing, GHCR
Your own keys (Cursor / Codex / OpenAI-compatible / Anthropic) run the live check. An OpenAI key also scores live checks. Skip keys for the built-in checker (not a live model). See .env.example and docs/openai-judge.md.
Optional Action secret: OPENAI_API_KEY (not required to merge).
Sync & Mac helper (optional, no account)
Pull a skills repo and copy its skills into your local editor folders:
skillgate sync --repo https://github.com/you/skills.git --targets cursor,codex,claude
It only touches the skill dirs it manages — unrelated folders in your skills roots are never deleted. Add a hands-off LaunchAgent (macOS only):
skillgate sync --repo https://github.com/you/skills.git --install-launchd
Connect a Mac to a hosted Skill Gate to receive installs:
skillgate connect --url https://your-host.example --code ABCDEFGH --name "My Mac"
skillgate helper # polls outbound only; no listening ports
skillgate helper --install-launchd
Metadata
Release files for skillgate-ai 0.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| skillgate_ai-0.4.2.tar.gz | 155.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| skillgate_ai-0.4.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 294.3 kB
Release files / skillgate_ai-0.4.2.tar.gz
| Download URL | skillgate_ai-0.4.2.tar.gz |
|---|---|
| Size | 155.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fbb530edfd51e191a09d14f3958d79c286829c4efe40e5ea45d76f09f268d499
|
|
BLAKE2b-256 checksum How to use checksums |
0686f814b7e2c5779aa4df20c852aea8db95db3f67bf5c73e68d7f14e8a21aa2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 11, 2026.
Transparency logRelease files / skillgate_ai-0.4.2-py3-none-any.whl
| Download URL | skillgate_ai-0.4.2-py3-none-any.whl |
|---|---|
| Size | 139.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2b18c64e4a999412b0f269cff7c53f2aa4e718042ccd805b7f3aed775234fd08
|
|
BLAKE2b-256 checksum How to use checksums |
e49aa20b7ded5ca11d08548b54b527a4f3357dc3730342cbfa3584abfa03aff8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 11, 2026.
Transparency log