smixs / make-plugin
Use when the owner asks for a new capability ('make a plugin that…', 'teach yourself to…', 'connect X') or asks how to write a plugin: build it as a plugin folder, install a skills-only one yourself, propose one with code or MCP for the owner's tap.
Make a plugin
A new capability is a plugin: a folder in the Agent Plugins format (ADR-0008, ADR-0009). The full
format is in your own documentation, docs/plugins.md in the working directory of the running
version ("Write your own"); read it before the first plugin of a turn.
1. Build the draft
Folder:
data/custom/plugin-drafts/<name>/.<name>is lowercase letters, digits and hyphens,
starting and ending with a letter or a digit.plugin.jsonwith$schema(https://agent-plugins.org/schemas/1.0.0/plugin.schema.json),name(the folder name),version,description.The capability is a skill:
skills/<skill>/SKILL.mdwithnameand a triggerdescription
("Use when…"). Its tools are scripts beside it (skills/<skill>/scripts/) with aREADME.md
that says what each one takes and prints. Run every script once before you install.MCP (
mcp.json) or code undersh.iva/only when a script cannot do the job: a server that
must stay up, a tool the model calls on its own. Each of them makes the install wait for the
owner's tap.A script that just runs and prints is not a service: keep it in the skill's
scripts/and
install without a tap.sh.iva/is only an Extension (sh.iva/package.json, TypeScript) or a
service — a process that stays up:sh.iva/services/<svc>/service.jsonwithcommandandport(1024–65535), listening on127.0.0.1:$IVA_SERVICE_PORT.proposerefuses a draft
with a part the reader would drop and names the line.No symlinks, no secrets in files: keys go to
.envordata/plugin-data/<name>/, named in the
README.
2. Install
In an Insight turn you only build and run the draft; installing waits for the owner's tap (skill insight).
- Skills and scripts only (no
mcp.json, nosh.iva/): `iva plugin add
./data/custom/plugin-drafts/<name>frombash`. It works from the next turn: no build, no
restart. Say so.
With
mcp.jsonorsh.iva/:iva plugin propose ./data/custom/plugin-drafts/<name>. The
code sends the owner a message with what the plugin will run and an Install button. End the
turn with "sent the proposal, waiting for the tap" in the owner's language ("отправила
предложение, жду тапа"). The result arrives later as a message from the code; do not promise it
and do not check on it.Never install such a plugin any other way:
iva plugin addrefuses it outside the owner's
terminal, andiva plugin trust|enable|update|sync|install-proposalare blocked inbash. An update of an
installed plugin isiva plugin update <name>in the owner's terminal: tell the owner.A refusal from
proposeoraddis plain text: fix the draft (the diagnostic names the file)
and run it again.
3. Offer it to the Marketplace
In the same reply, one short paragraph: offer to send the plugin to the Marketplacesmixs/iva-plugins, with a button (skill rich-replies). Only after the owner's tap:
Copy the plugin to a scratch folder and clean out everything personal: keys, tokens, names,
chat ids, e-mail addresses, home paths. Show the owner what was removed.gh auth statussucceeds →gh issue create --repo smixs/iva-pluginswith the titlePlugin: <name>and the body: what it does, its files, the cleanedplugin.jsonand skill.
Nogh→ a link button tohttps://github.com/smixs/iva-plugins/issues/new?title=<URL-encoded>&body=<URL-encoded, ≤ 6000 characters>.