Which one am I building?
One question decides it.- Does it add teammates or abilities? That is an agent or a skill. You are sharing knowledge, judgement, or a way of working.
- Does it change how a file looks or behaves? That is an extension. You are adding a way of seeing something.
- Both? One repository carries both. Somebody pastes one link and gets your extension and your agents together.
Agents and skills are content
Agents and skills are ordinary markdown files. When someone installs them they land in that person’s workspace, in the same.claude/agents/ and .claude/skills/ folders as the agents and skills they wrote themselves, and they become theirs. They can open your agent, disagree with a line and change it. That is what they are for.
That has two consequences worth knowing before you start:
- Uninstalling removes only what is still as you shipped it. A person can uninstall your package from the Packages page. Each agent and skill that is exactly as installed goes; anything they edited, and every starter file, stays theirs.
- Updates are offered, and their edits are kept. When you tag a new release, it is offered as an update from the package’s card. Whatever the person changed is kept, and your new version of it is saved beside it for them to review. Nothing is pushed into their workspace without their say-so.
An extension is code
An extension changes how a file opens. Rundock already works this way internally: a markdown file withkanban-plugin in its frontmatter opens as a board instead of text. That is a renderer, and an extension is the same idea written by someone else.
Your extension declares which files it can display, such as every .csv file, or only the markdown files carrying a frontmatter key you name. Somebody opens one of those files and gets your view instead of the plain one, drawn with Rundock’s own components. A note can also name other files for your view to be handed, which is how a dashboard over several files is built, and your view can draft a message to one of the person’s agents for them to send.
Extensions stay yours. They install from a tag or an exact commit of your repository, never a branch, and are updated and uninstalled with their package.
Your code runs in a sandbox, so it can do less than you might expect. Read What an extension cannot do before you write any of it. It is the page most likely to save you a weekend.
When you need a manifest
A manifest is a file calledrundock.json at the root of your repository.
Agents and skills need no manifest. A repository with .claude/agents/*.md and .claude/skills/*/SKILL.md already says everything Rundock needs. So a repository that was never built for Rundock still installs: somebody pastes the link and Rundock tells them how many agents and skills it found, then asks before adding anything. You may still add a rundock.json with just name, version and displayName, to give the package the name people see.
An extension always needs one, because an entry point and a match rule are things you claim rather than things Rundock can read off the disk. A repository without a valid manifest has no extension to install, whatever else it carries. See the rundock.json reference.
What a package looks like
A package carrying both halves:rundock.json and view/ and you have a package of agents and skills. Leave out .claude/ and starter/ and you have an extension. Starter files are files your agents or your view work on, such as a portfolio, added only where the person has nothing at that path and theirs from then on: see Ship starter files.
What happens when someone installs it
They paste your repository link into Settings, under Packages, and see what is in the box before anything is written. The screen splits by what can be undone:- What will run. Your extension, sandboxed, removable later.
- What you will keep. Your agents, skills and starter files, theirs to edit.
Examples to learn from
Each of these installs from its link in Settings, Packages, and each is small enough to read before you do.- Rundock package starter: a template repository with a team package and a team that brings its own view, a checker that reads a package the way Rundock will, and tests.
- Lean Agent Team: agents and skills only, no code, with a routine.
- CSV Viewer: an extension in one file, that draws every
.csvfile as a table. - Investment Partner: a full package: a dashboard built from Rundock UI, three agents, skills and starter notes.
Where to next
Share agents and skills
Repository structure, writing agents that travel well, and what happens on import.
Build an extension
A working extension in one file, and how to test it locally.
Rundock UI
The components Rundock gives every extension view.
What an extension cannot do
The sandbox’s limits, stated up front so you build something that works.
Publish and get listed
Tag a release and list your package in the Directory.