从 Python CLI 包中安装内置 agent skill。
Project description
agent-skill-dist
agent-skill-dist 是一个很小的 Python 库,面向需要随 wheel 分发
canonical agent skill 的 CLI 包。它让 CLI 包可以把内置 skill 显式安装到
agent 已扫描的 skill 目录中。
MVP 对齐 Codex 风格的 skill 目录:
- repo 安装:
./.agents/skills/<skill-name> - user 安装:
${CODEX_HOME:-~/.codex}/skills/<skill-name> - 自定义安装:
<output>/<skill-name>
安装必须显式触发。除非父 CLI 传入 yes=True,否则已有 skill 不会被替换。
包内目录结构
消费方 package 可以按下面的结构内置 skill:
my_cli/
bundled_skills/
my-cli/
SKILL.md
references/command-guide.md
SKILL.md 必须包含带有 name 和 description 的 frontmatter,并且
frontmatter 中的 name 必须和 skill 目录名一致。
---
name: my-cli
description: 让 agent 安全操作 My CLI 工具。
---
# My CLI
API
from agent_skill_dist import install_bundled_skill, skill_status
status = skill_status(
package="my_cli",
distribution="my-cli",
resource_root="bundled_skills",
skill_name="my-cli",
target="user",
)
install_bundled_skill(
package="my_cli",
distribution="my-cli",
resource_root="bundled_skills",
skill_name="my-cli",
package_version="1.3.1",
target="repo",
yes=False,
)
两个函数都会返回 SkillInstallStatus dataclass:
{
"skill_name": "my-cli",
"target": "user",
"destination": "/home/me/.codex/skills/my-cli",
"bundled_version": "1.3.1",
"installed_version": "1.3.0",
"installed": True,
"outdated": True,
"would_overwrite": True,
"metadata_path": "/home/me/.codex/skills/my-cli/.agent-skill-install.json",
}
package_version 是可选参数。传入时会优先用于 bundled_version、状态判断和
.agent-skill-install.json;不传时 fallback 到
importlib.metadata.version(distribution)。
CLI 集成
本库不依赖 Typer、Click 或 argparse。父 CLI 可以把 API 接入自己的命令框架:
mycli skill status
mycli skill install --target repo
mycli skill install --target user --yes
mycli skill install --target global --yes
mycli skill install --output .agents/skills --yes
target="global" 是 target="user" 的 alias,安装路径仍然是
${CODEX_HOME:-~/.codex}/skills/<skill-name>。
如果需要人类可读输出或 JSON 输出 helper:
from agent_skill_dist.cli import (
already_exists_to_text,
install_to_text,
status_to_json,
status_to_text,
)
SkillAlreadyExists 暴露 destination 字段,父 CLI 可以用
already_exists_to_text() 输出覆盖提示。
Hatchling 包数据
使用 Hatchling 的消费方可以这样把内置 skill 文件打进 wheel:
[tool.hatch.build.targets.wheel]
packages = ["my_cli"]
artifacts = [
"my_cli/bundled_skills/**",
]
开发
uv run pytest
uv build
本包包含 py.typed,类型检查器可以直接使用源码中的类型标注。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agent_skill_dist-0.1.1.tar.gz.
File metadata
- Download URL: agent_skill_dist-0.1.1.tar.gz
- Upload date:
- Size: 25.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f087f109ddfb9e929db5f1bba1f056a227a60e0333de9b9a6fd0815d48abb01
|
|
| MD5 |
c273852c344f0a7cf3e317b18e21b061
|
|
| BLAKE2b-256 |
174ab83e6d10de0f4a61d7edaca30fd691496015541e56ff4b5935fec01f05bb
|
File details
Details for the file agent_skill_dist-0.1.1-py3-none-any.whl.
File metadata
- Download URL: agent_skill_dist-0.1.1-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1fd2a0dbb89a4c9cd19c63b502429989875d9c031406090c3def575ccd8e8d9e
|
|
| MD5 |
7e3f4fcce8b4a733c27e9476ef68eb4c
|
|
| BLAKE2b-256 |
505a20dfb5e5ece9a454d896f281deadd3f4a279347e5f408bcf0db6329132da
|