Skip to main content

agentskill-kit

CI PyPI Python versions License

agentskill-kit is a command line toolkit for agent skills, the SKILL.md folders that coding agents such as Claude Code, Cursor, Codex, Gemini CLI and Hermes load when a task matches. It checks a skill before you trust it, generates new ones, and installs the same skill into every agent you use.

  • Lint a skill: name, description, structure. Works offline.
  • Scan it for prompt injection, hidden unicode, secrets and dangerous commands.
  • Test it: run the tests that ship with the skill in an isolated folder.
  • Forge a new skill from a task description with any model, including free and local ones.
  • Mine your shell history for routines that should be skills.
  • Export one skill to Claude Code, Cursor, Windsurf, Copilot, Codex and Gemini CLI.
  • Share skills through a static registry with checksums and a searchable website.

No runtime dependencies. No paid service required. Python 3.9 or newer on Linux, macOS and Windows.

Terminal session: lint, scan, test and forge

Install

pip install agentskill-toolkit

The PyPI package is named agentskill-toolkit (the shorter name was not available). It installs the askit command and the longer alias agentskill. The repository, the Python module (agentskill_kit) and the commands keep the agentskill-kit name.

Quick start

Check a skill without any API key:

askit lint skills/my-skill
askit scan skills/my-skill
askit test skills/my-skill
askit score skills/my-skill

Create one with a free model (a local Ollama model, or a Groq or Gemini key on the free tier):

askit forge --task "turn meeting notes into action items with owners and due dates"

Use it in your agents:

askit export skills/meeting-notes-to-actions --target claude
askit export skills/meeting-notes-to-actions --target cursor
askit export skills/meeting-notes-to-actions --target all

Install something from the community registry:

askit search docker
askit install dockerfile-linter

Try everything offline with the built-in demo model: askit forge --task "anything" --provider mock.

Why this exists

Skills are plain text that an agent obeys, so they deserve the same care as code you run: a review, a linter, a test and a look at what they do. At the same time every agent wants a slightly different file layout, and writing good skills by hand is slow. agentskill-kit covers both: quality gates for skills, and tools that do the tedious parts.

Commands

Command What it does
askit init NAME Create a skill from a template, optionally with a script and tests
askit lint [PATH] Check SKILL.md structure (--strict, --format json|github)
askit scan [PATH] Security scan (--fail-on high|medium|low|never)
askit test [PATH] Run tests/cases.json and tests/test_*.py of each skill
askit score [PATH] Combine lint, scan and tests into one score and a pass or fail gate
askit forge Generate a skill with a model, verify it and refine it until it passes
askit eval PATH Check how well a model follows a skill, with an optional baseline run
askit mine Find repeated workflows in shell history and draft skills
askit export PATH Convert and install a skill for another agent
askit search, install, uninstall, list Work with the registry, GitHub folders and local folders
askit pack, publish Bundle a skill, run the quality gate, prepare a pull request
askit registry build|site Build a registry index or a static website
askit serve Browse the skills on your machine in a local web page
askit providers, config, doctor Models, settings and environment checks

Every command has --help. Add --lang tr for a Turkish interface.

Free first, paid optional

Provider Cost How
Ollama, LM Studio free, local run a local model, no key
Groq free tier GROQ_API_KEY
Google Gemini free tier GEMINI_API_KEY
OpenRouter free models OPENROUTER_API_KEY, pick a :free model
Any OpenAI compatible server yours ASKIT_BASE_URL, ASKIT_MODEL
OpenAI, Anthropic paid, optional OPENAI_API_KEY, ANTHROPIC_API_KEY

askit providers shows what is ready. Details in docs/providers.md.

forge does not rely on tool calling. The loop is controlled by code, so small local models work. The model only writes files; lint, scan and tests decide whether they are good enough.

How forge decides

task or notes
      |
      v
  model drafts SKILL.md, scripts and tests/cases.json
      |
      v
  lint + scan + run tests in a clean folder  ->  score
      |                                           |
      |  below threshold: failures go back        |  at or above threshold,
      |  to the model (up to 3 rounds)            |  no high findings
      v                                           v
  best attempt kept                          written to skills/<name>/

The score is not the model's opinion. It comes from real checks. Nothing is written when the best attempt misses the threshold, unless you pass --force.

Mine your history

$ askit mine --file examples/shell-history-sample.txt
-- read 20 commands
Found 1 repeated workflow(s)

#1  git-status-add-commit  (4x)
     git status
     git add -A
     git commit -m <str>
     git push origin main

$ askit mine --file examples/shell-history-sample.txt --draft 1

Secrets are masked before anything is shown. See docs/mining.md.

Export targets

Target Result
claude .claude/skills/<name>/ or ~/.claude/skills/ with --global
hermes .hermes/skills/<name>/ or ~/.hermes/skills/
cursor .cursor/rules/<name>.mdc
windsurf .windsurf/rules/<name>.md
copilot .github/instructions/<name>.instructions.md
codex managed block in AGENTS.md
gemini managed block in GEMINI.md

Exports are repeatable: managed blocks are replaced, not duplicated. More in docs/export-targets.md.

Starter skills

The registry ships 16 skills that pass every check. Nine of them include scripts with tests, so you can read how a tested skill is built.

Skill What it does
log-analyzer severity counts, time range and frequent errors of a log
python-code-smells bare except, mutable defaults, missing docstrings and long functions
csv-profiler column types, missing values and ranges for a CSV
json-diff structural diff of two JSON files
dockerfile-linter unpinned images, root user, ADD vs COPY, secrets in ENV
env-file-auditor .env against .env.example, without printing values
todo-extractor TODO, FIXME and HACK inventory of a source tree
changelog-generator conventional commits to grouped release notes
api-endpoint-tester smoke test an API from a JSON file
commit-message-writer clear conventional commit messages
pr-description-writer pull request descriptions reviewers can use
sql-query-reviewer safety, correctness and performance review of SQL
meeting-notes-to-actions decisions, owners and open questions from notes
readme-doctor what to fix in a README to get people to try a project
secure-code-review a security checklist with a report format
skill-author how to write a skill that triggers and works

Browse them on the registry website, or run askit search and askit install NAME.

Use it in CI

- uses: Lethe044/agentskill-kit@main
  with:
    path: skills
    strict: "true"
    scan-fail-on: medium

Also available as a pre-commit hook. See docs/github-action.md.

Use it from Python

from agentskill_kit.lint import lint_skill
from agentskill_kit.scan import scan_skill
from agentskill_kit.scoring import evaluate_skill

quality = evaluate_skill("skills/log-analyzer")
print(quality.score, quality.grade, quality.passes_gate)

for issue in lint_skill("skills/log-analyzer").issues:
    print(issue.code, issue.message)

print(scan_skill("skills/log-analyzer").verdict)

Security notes

  • The scanner is a heuristic filter, not a guarantee. Read skills from sources you do not trust.
  • askit test isolates the working directory and environment and limits time and memory, but it is not a sandbox. Use a container for untrusted skills.
  • Registry downloads are verified against checksums, linted and scanned before installation.

Details in docs/security.md and SECURITY.md.

Hermes Agent

This project began as a Hermes Agent hackathon prototype. Hermes remains a first class target (askit export --target hermes) and integrations/hermes/ holds the skill-forge playbook and an Atropos training environment whose reward can use verified scores. See integrations/hermes.

Documentation

Roadmap

  • More scanner rules and a community rule pack.
  • Translated rule messages (the interface is already available in Turkish and English).
  • askit eval with a judge model for open ended checks.
  • Skill dependencies and version constraints in the registry.
  • Export targets for more agents.

Ideas and pull requests are welcome. See CONTRIBUTING.md for how to add a skill in a few minutes.

License

MIT

Metadata

Release files for agentskill-toolkit 0.1.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 agentskill-toolkit 0.1.0
File Size Uploaded Provenance
agentskill_toolkit-0.1.0.tar.gz 92.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for agentskill-toolkit 0.1.0
File Interpreter ABI Platform
agentskill_toolkit-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 173.3 kB

Release files / agentskill_toolkit-0.1.0.tar.gz

Download URL agentskill_toolkit-0.1.0.tar.gz
Size 92.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4be5b6798d14bc0a029c23c547d83f5f02f58ddfb573f2bb1cd6319bafc84655
BLAKE2b-256 checksum
How to use checksums
0e51e871978515bf4d66141373bac8deddd751787d45012095e8a7b3f505c6ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 26, 2026.

Transparency log

Release files / agentskill_toolkit-0.1.0-py3-none-any.whl

Download URL agentskill_toolkit-0.1.0-py3-none-any.whl
Size 80.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
160c88421267338513676fd5bcce3ab3f158df28901fd64e6e52c018daa1b36b
BLAKE2b-256 checksum
How to use checksums
2287ee1f156662b481b05ff1ef05dff7d14c97e1df6c1de772580a418c27d608
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 26, 2026.

Transparency log

Security for agentskill-toolkit 0.1.0

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for agentskill_toolkit-0.1.0.tar.gz

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 26, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

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