Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/ciscodevnet/essentials/create-python-packagegit clone --depth 1 https://github.com/CiscoDevNet/essentialsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/ciscodevnet/essentials/create-python-package)<a href="https://agentmods.dev/commands/ciscodevnet/essentials/create-python-package"><img src="https://agentmods.dev/badge/commands/ciscodevnet/essentials/create-python-package.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.00546 |
| Opus 5 | $0.00000 | $0.00273 |
| Sonnet 5 | $0.00000 | $0.00109 |
| Haiku 4.5 | $0.00000 | $0.00055 |
Grade A, and why
create-python-package scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 55 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Create a new Python package using uv in the specified directory.
Parameters
- directory_location: The directory path where the new package should be created
- package_name: The name of the Python package to create
Behavior
- If
directory_locationis not provided, ask the user: "What directory should the package be created in?" - If
package_nameis not provided, ask the user: "What should the package be named?" - Navigate to the specified directory location (create it if it doesn't exist)
- Run
uv init --lib <package_name>in that directory - Add the new package to the project's root
pyproject.tomlfile in the[tool.uv.workspace]members list (create the section if it doesn't exist) - The entry should use the format:
"<relative_path_from_root>/<package_name>"- Convert underscores in package_name to hyphens for the directory name (e.g.,
my_new_packagebecomesmy-new-package) - The path should be relative to the workspace root (e.g., if directory_location is
tools/pythonand package_name ismy_new_package, the path would betools/python/my-new-package)
- Convert underscores in package_name to hyphens for the directory name (e.g.,
- Ensure the new package uses hatchling as the build backend:
[build-system] requires = ["hatchling"] build-backend = "hatchling.build" - Confirm the package was created successfully and added to the root pyproject.toml
Example Usage
With parameters:
- directory_location:
tools/python - package_name:
my_new_package - This will create the package at
tools/python/my-new-package/and add to rootpyproject.toml:[tool.uv.workspace] members = [ "tools/python/core_github", "tools/python/gcp_gemini", "tools/python/my-new-package", ]
Without parameters:
- Prompt user for directory location
- Prompt user for package name
- Then proceed with creation
Notes
- The directory location can be absolute or relative to the workspace root
- If the directory doesn't exist, create it before running
uv init - The package name should follow Python naming conventions (lowercase, underscores allowed)
- The directory name in the workspace members list should use hyphens (e.g.,
my-new-package) - If
[tool.uv.workspace]section doesn't exist in the root pyproject.toml, create it before adding the new package
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 55 lines · 0 tokens per session scan A 1ec182b721b8
create-python-package is a command published in the GitHub repository CiscoDevNet/essentials (7 stars, last pushed 16d ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 546 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-04.
Other commands, from other repositories
init
Command "init" from ErisPulse/ErisPulse, covering erispulse.cli.commands.init 模块, 模块概述, 函数列表, validateprojectname(name: str) and 类列表.
list
Command "list" from ErisPulse/ErisPulse, covering erispulse.cli.commands.list 模块, 模块概述, 类列表 and class listcommand(command).
wrap-snarkvm
Automates wrapping a SnarkVM type in wasm-bindgen bindings for the Provable SDK.
config
Command "config" from ErisPulse/ErisPulse, covering erispulse.cli.commands.config 模块, 模块概述, 类列表 and class configcommand(command).
doctor
Command "doctor" from ErisPulse/ErisPulse, covering erispulse.cli.commands.doctor 模块, 模块概述, 类列表 and class doctorcommand(command).
list_remote
Command "list_remote" from ErisPulse/ErisPulse, covering erispulse.cli.commands.listremote 模块, 模块概述, 类列表 and class listremotecommand(command).