<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/agenthatch/.github/main/profile/assets/logo-dark.svg">
<img alt="agenthatch" src="https://raw.githubusercontent.com/agenthatch/.github/main/profile/assets/logo-light.svg" width="600">
</picture>
</p>
<p align="center">
<strong>Turn any SKILL.md into a standalone, runnable AI Agent.</strong>
</p>
<p align="center">
<a href="https://pypi.org/project/agenthatch/">
<img src="https://img.shields.io/pypi/v/agenthatch?color=blue" alt="PyPI version">
</a>
<a href="https://pypi.org/project/agenthatch/">
<img src="https://img.shields.io/pypi/pyversions/agenthatch" alt="Python versions">
</a>
<a href="https://pypi.org/project/agenthatch/">
<img src="https://img.shields.io/pypi/dm/agenthatch" alt="PyPI downloads">
</a>
<a href="LICENSE">
<img src="https://img.shields.io/badge/license-MIT-green" alt="License">
</a>
<a href="https://x.com/EterRights">
<img src="https://img.shields.io/badge/X-@EterRights-1DA1F2" alt="X">
</a>
</p>
The problem with SKILL.md
SKILL.md promised a lot. Write a markdown file, tell your agent what to do, and
it works. In practice, anyone who has used more than three skills across Claude
Code, Codex CLI, or OpenClaw knows the friction:
| Pain point | What actually happens |
|---|---|
| No isolation | Skills leak into each other. A file-organizer skill and a git-ops skill share the same context window. The agent confuses instructions meant for one with the other. |
| Reference book, not operating manual | Agents treat SKILL.md as a loose suggestion, not a contract. Given a long skill, the model skim-reads it. It picks the parts that seem relevant and ignores the rest. |
| Token waste | Every SKILL.md lives in the system prompt. Add 5 skills at 3KB each and you just burned 15KB of context before the conversation even starts. On long-running tasks this compounds fast