# Developing With Agentsquire

> Use when building a Python CLI that carries its own Agent Skills with agentsquire - wiring the skills subcommand group, the staleness notice, console entry points, and package-data layout into a consumer package.

- **Type:** Skill
- **Install:** `agentstack add skill-tacotakumi-agentsquire-developing-with-agentsquire`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [TacoTakumi](https://agentstack.voostack.com/s/tacotakumi)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [TacoTakumi](https://github.com/TacoTakumi)
- **Source:** https://github.com/TacoTakumi/AgentSquire/tree/main/src/agentsquire/skills/developing-with-agentsquire

## Install

```sh
agentstack add skill-tacotakumi-agentsquire-developing-with-agentsquire
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Developing with agentsquire

agentsquire lets your Python package carry its own Agent Skills and install them
into whatever agent harness is present (Claude Code, pi, Hermes, opencode). Your
users only ever run your tool - `your-cli skills install` - never a second CLI.

Add `agentsquire` as a plain dependency, then wire the four points below. This is
a checklist, not the reference: run `squire guide` (topics `api`, `harnesses`,
`integration`) or read `docs/api.md` for full signatures and behaviour.

## 1. Ship skills as package data

Lay each skill out as a directory with a `SKILL.md` (agentskills.io format)
under a `skills/` resource inside your importable package:

```
your_pkg/
    __init__.py
    skills/
        my-skill/
            SKILL.md
```

The skills ride inside your wheel, so no source checkout is needed at run time.
hatchling includes package data by default; setuptools needs
`include-package-data`. This skills-as-package-data layout is what
`BundledPackageDataSource("your_pkg")` reads from.

## 2. Mount the skills subcommand group

`skills_command_group` returns a click group with `install`, `status`, `update`,
and `uninstall` subcommands, parameterized by your package name and default
scope. Mount it on your root group:

```python
from agentsquire.cli import skills_command_group

cli.add_command(skills_command_group("your_pkg", default_scope="user"))
```

For typer, mount onto `typer.main.get_command(app)`. Every subcommand takes
`--scope user|project` and `--harness NAME`. Choose `user` scope for
general-purpose tools, `project` for repo-specific skills.

## 3. Expose a console entry point

Give your CLI a `[project.scripts]` console entry in `pyproject.toml` so users
invoke it by name:

```toml
[project.scripts]
your-cli = "your_pkg.console:main"
```

## 4. Surface updates proactively (optional)

Call the `check_stale` hook at your entry point. When an installed skill has a
newer shipped copy it prints one advisory line on stderr and nothing else - it
never prompts, never writes stdout, never changes your exit code:

```python
from agentsquire import BundledPackageDataSource, check_stale

def main():
    check_stale(
        BundledPackageDataSource("your_pkg"),
        prog_name="your-cli",
        update_command="your-cli skills update",
    )
    # ... rest of your entry point
```

Suppressed when `CI` or `AGENTSQUIRE_NO_UPDATE_CHECK` is set to any non-empty
value.

## 5. Mark the package as skill-carrying (optional)

One pyproject line registers your package under the `agentsquire.skills`
entry-point marker. Nothing reads it today; it is reserved for a future
environment-wide listing and changes no behaviour:

```toml
[project.entry-points."agentsquire.skills"]
your_pkg = "your_pkg"
```

## The provenance and update model

Installs are plain copies - no symlinks, no lockfile - so an installed skill
survives upgrade or removal of your package. Each installed `SKILL.md` carries a
provenance stamp in its frontmatter `metadata.agentsquire` map (installer,
versions, source package, content hash). Staleness detection is a local hash
compare: `status` classifies each skill as not-installed, up-to-date,
update-available, or locally-modified, and `update` refreshes only the stale
ones. User-modified installs and pre-existing symlinks are reported and skipped,
never clobbered. See `squire guide integration` for the full model.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [TacoTakumi](https://github.com/TacoTakumi)
- **Source:** [TacoTakumi/AgentSquire](https://github.com/TacoTakumi/AgentSquire)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-tacotakumi-agentsquire-developing-with-agentsquire
- Seller: https://agentstack.voostack.com/s/tacotakumi
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
