horo-pstack
pstack skills, packaged as a
Hermes plugin so they install with pip from a mirror. Unofficial; not
affiliated with Cursor or the pstack author. pstack is MIT-licensed by Lauren
Tan; its license ships in the wheel.
Not the PyPI package pstack, which is an unrelated stack-dump tool.
Install
pip install horo-pstack
hermes plugins enable pstack
The wheel has no dependencies, so a mirror that carries horo-pstack and
horo-next is enough.
| horo-next | Enable | Start a task |
|---|---|---|
| 0.21.5 | hermes plugins enable pstack |
hermes chat -s pstack:poteto-mode, or ask the agent to load pstack:poteto-mode. No slash command. |
| 0.23.0 and later | hermes plugins enable pstack |
/pstack:poteto-mode <task> in the interactive CLI, or -s pstack:poteto-mode |
On 0.23, the enabled skills are also listed in the system prompt's skill index (about 6,000 characters for all of them).
Each skill loads as pstack:<name>. Every skill starts with a pointer to
pstack:hermes-harness, which maps the Cursor tool names, subagent fields,
models and paths pstack uses to their Hermes equivalents. Hermes runs every
subagent on the session model.
Using a MiniMax or Anthropic-compatible endpoint on horo-next 0.23
That provider needs the anthropic package, which is not a horo-next
dependency, and 0.23 does not install it on demand:
pip install anthropic==0.125.0
hermes gateway stop
hermes chat runs through a background gateway; stop it so the next chat
starts one that sees the new package.
What is left out
Skills that need a network service or a tool an offline mirror does not
carry: statechart, create-formal-verification-skill,
maintain-formal-verification-skill, make-bot-ui, ketchup-video,
setup-pstack, automate-me, recall. vendor.py lists each reason, and
every wheel records its list in horo_pstack/_vendor/UPSTREAM.json.
pstack's two subagents (poteto-agent, comment-sicko) are not Hermes
concepts; the harness turns each into a brief for delegate_task.
How this repository is laid out
pstack content is never committed here. A release is a pure function of (pstack commit, this repository).
| Path | What it does |
|---|---|
vendor.py |
Copies one cursor/plugins commit into the package, minus the excluded skills, with the harness pointer added to each SKILL.md. Fails if the license is no longer MIT or an excluded skill disappeared upstream |
harness/hermes-harness/SKILL.md |
The Cursor-to-Hermes map |
src/horo_pstack/__init__.py |
The plugin: registers each skill with Hermes |
sbom.py |
CycloneDX SBOM naming the pstack commit, embedded in the wheel |
verify_wheel.py |
Installs the wheel next to horo-next in a clean venv and checks it works |
.github/workflows/release.yml |
Commit → vendor → wheel → verify → TestPyPI → PyPI |
Releasing
Run the release workflow with a full cursor/plugins commit SHA. Leave
post blank for a new pstack version; set it to 1, 2, ... when only this
repository changed, which releases 0.15.36.post1 and so on. With publish
off it builds and verifies only.
Building locally
git clone --filter=blob:none https://github.com/cursor/plugins.git cursor-plugins
git -C cursor-plugins checkout <commit>
python vendor.py cursor-plugins
uv build --wheel
python sbom.py generate horo-pstack.cdx.json
python sbom.py embed dist/horo_pstack-<version>-py3-none-any.whl horo-pstack.cdx.json release.cdx.json
python verify_wheel.py dist/horo_pstack-<version>-py3-none-any.whl 3.12 0.21.5
Metadata
Release files for horo-pstack 0.15.36
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| horo_pstack-0.15.36-py3-none-any.whl | Python 3 | none | any | Details for horo_pstack-0.15.36-py3-none-any.whl |
Release files / horo_pstack-0.15.36-py3-none-any.whl
| Download URL | horo_pstack-0.15.36-py3-none-any.whl |
|---|---|
| Size | 308.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
167a30bb0d7b10f10c194c0b3dad18826315e527a026d49848327d259219c17a
|
|
BLAKE2b-256 checksum How to use checksums |
4d325c8f37a0971a6023a5d8d25fc85079877f335b2ca451a714791c3ef4142a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Nov 10, 2026.
Transparency logSecurity for horo-pstack 0.15.36
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
1 file in this release has been uploaded with provenance metadata.
Attestation for horo_pstack-0.15.36-py3-none-any.whl
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 Nov 10, 2026.
Transparency logA 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.