Skip to content

CapyAgent an agent that walks into your business systems itself. Go core, Python connectors, your data stays with you.

Skills

A procedure
written by a human

A skill is neither a prompt nor code. It is an instruction for how a particular piece of work is done, which the agent opens once the work reaches it. The prompt carries the catalogue of names; the bodies are pulled on demand.

The catalogue is small so far, and that is the honest picture: skills are written for real client tasks rather than padded to make a counter on a landing page look better.

How it works

Three levels

01 skill

Skill

A SKILL.md file with a header and a procedure. It sits in the skills directory, appears in the agent's catalogue and opens when needed.

SKILL.md

02 plugin

Plugin

A directory with a manifest, its own connectors and its own skills. Installed by command, it cannot silently replace a built-in connector.

interclaw.plugin.json

03 extension

Browser extension

A panel beside the page. It requests permissions through a manifest and receives the intersection of what it asked for and what was granted, not everything it asked for.

manifest.json

Rules

What was made deliberate here

  • Catalogue first, bodies on demand. Twenty full skills in the prompt eat the model window before the work even starts.
  • Data directories come before the home folder. The service runs under a dedicated user and the unit closes off the home folder with ProtectHome=true. While plugins were searched for only in the home folder, there was physically nowhere to put them on a production machine.
  • An unreachable directory means «no plugins here», not a refusal to work. The service writes a warning and moves on.
  • A broken manifest inside an installed plugin is an error. A human put it there, and ignoring it silently would mean lying that the plugin works.
  • A plugin does not grant itself permissions. The manifest asks, a human grants, and the intersection goes into the process.

Format

Plugin manifest, version 1

interclaw.plugin.json
{  "schema_version": 1,  "id": "example",  "name": "Example Business API",  "version": "1.0.0",  "connectors": [{    "id": "api",    "command": ["python3", "${PLUGIN_DIR}/server.py"],    "env": ["EXAMPLE_API_TOKEN"]  }],  "skills": ["skills"],  "permissions": {    "network": ["api.example.com"],    "secrets": ["EXAMPLE_API_TOKEN"]  }}

${PLUGIN_DIR} is expanded only after the manifest passes validation. At runtime the connector is named example.api, and it cannot be used to shadow a built-in one.

Catalogue

What exists today

Two finished entries and one format. Everything else is written for the task at hand: half a page of skill usually closes work that previously needed its own script.

01 skill

Equipment price research

Builds an evidence table of offers: source, date checked, price, VAT, availability, delivery, confidence. A search snippet is never treated as a price; the page is always opened.

skills/поиск-цен

02 plugin

Calltouch

Calls, requests and sources as a separate plugin with its own manifest and permissions. The first plugin verified live on install and removal.

plugins/calltouch

03 template

Your own skill in half an hour

A header with a name and a description, then a numbered procedure in plain words. No code, no build step.

How to write one

Example

What a good skill looks like

Taken from the price research skill that is already in use. Notice that every step closes a specific way of producing a beautiful and wrong answer.

  • Clarify what we are looking for. Category, specs, region, acceptable alternatives. A vague answer is worse than no answer: it looks like work.
  • Search with several phrasings. A snippet is a hint about where to go, not a source of price.
  • Open the page. The cheap way first; if an empty shell comes back, use the browser. The price is taken only from a page we opened.
  • Merge duplicates. One supplier on their own site and on a marketplace is one offer. Three links to the same shop do not widen the sample.
  • Assemble a table with the date checked and a confidence level on every row.
A skill like this is portable: it works in CapyAgent, and its text reads to a human as an ordinary instruction. That is the point of the format.

Need a skill for your own work?

Describe the procedure in words and we will turn it into something the agent performs every day.