Pynchy plugin authoring
Skill crypdick/pynchy/.claude/skills/pynchy-plugin-authoring
OpenClaw alternative with strict container isolation for security measures. Connects to WhatsApp, has memory, scheduled jobs, and runs directly on Anthropic's Agents SDK
npx -y skills add crypdick/pynchy --skill pynchy-plugin-authoringAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 10 stars10 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when creating, scaffolding, or updating a pynchy plugin, including channels, MCP servers, skills, agent cores, workspace specs, and container runtime plugins. Also use when users ask how to register plugins via config.toml, add entry points, or validate plugin hook wiring.
SKILL.md
4.2 KB, as published. Nobody here has run it
Pynchy Plugin Authoring
When To Use
Use this skill when the user asks to:
- Create a new
pynchyplugin - Add a new hook to an existing plugin
- Register/enable plugins in
config.toml - Validate plugin discovery and runtime behavior
Core Rules
- Keep plugin responsibilities narrow. One plugin can implement multiple hooks, but avoid unrelated concerns in one package.
- In the plugin repository
pyproject.toml(notpynchy/pyproject.toml), define entry points under[project.entry-points."pynchy"]. - For host runtime/channel code, treat plugin code as high trust and avoid risky side effects in import-time code.
- For plugin docs, cross-link to
pynchy/docs/plugins/*instead of duplicating long explanations. - Refer to the quickstart guide for the recommended plugin directory structure.
- Plugin config models belong in the plugin. Define Pydantic config models inside the plugin's own source file, not in
pynchy/src/pynchy/config/models.py. The coreconfig/models.pyis for pynchy core settings only.
File Scope Conventions
When this skill mentions config files, use this mapping:
- Host app config:
config.toml([plugins.<name>]entries enable repos) - Host app package metadata:
pyproject.toml - Plugin package metadata:
<plugin-repo>/pyproject.toml(entry points live here) - Plugin source:
<plugin-repo>/src/<plugin_module>/...
Authoring Workflow
Copy this checklist and complete it in order:
Plugin Authoring Checklist
- [ ] Choose plugin scope and hook categories
- [ ] Create plugin directory structure (or update existing plugin)
- [ ] Implement hook methods and runtime logic
- [ ] Add/update tests
- [ ] Configure local pynchy [plugins.<name>] entry
- [ ] Run tests and smoke checks
- [ ] Update docs if behavior is user-visible
Hook Map
pynchy_create_channel: Host-side channel instancepynchy_speech_synthesizer: Shared speech output providerpynchy_service_handler: Typed host actions (IPC dispatch)pynchy_computer_use_backend: Computer-use providerpynchy_action_specs: Semantic action contractspynchy_skill_paths: Skill directories mounted into containerpynchy_agent_core_info: Agent core implementation metadatapynchy_agent_hook_specs: Trusted agent lifecycle hook modulespynchy_container_runtime: Host container runtime providerpynchy_tunnel: Host tunnel providerpynchy_connection_runtime: Long-lived authenticated connection runtimepynchy_observer: Host event observerpynchy_memory: Memory backendpynchy_webhook_routes: Authenticated webhook routespynchy_mcp_server_spec: MCP server templatepynchy_workspace_spec: Managed workspace definitionspynchy_job_specs: Config-backed jobs
Hook reference:
docs/plugins/hooks/index.md
Config-Managed Plugin Registration
For local pynchy, prefer config-managed plugin repos:
[plugins.example]
repo = "owner/pynchy-plugin-example"
ref = "main"
enabled = true
Then restart pynchy. Startup sync handles clone/update and host install.
If the host is remote, don't forget to ssh into it and add the plugin to the config.toml file.
Validation Commands
For plugin repositories:
uv run pytest
For pynchy docs link safety after docs changes:
uv run mkdocs build --strict
Security
All plugin Python code runs on the host during discovery (__init__, validate(), category methods). Installing a plugin means trusting its code. Only install plugins from authors you trust.
For the full risk-by-category breakdown, see Plugin Security.
References
- Plugin overview:
docs/plugins/index.md - Plugin quickstart (creation guide):
docs/plugins/quickstart.md - Hook reference:
docs/plugins/hooks/index.md - Packaging guidance:
docs/plugins/packaging.md - Available plugin registry:
docs/plugins/available.md