Assets
The five things an experiment can hand every agent in it.
An asset is attached to an experiment, so every agent in it gets the same one — which is what keeps the comparison fair. Attaching nothing is a complete experiment: the agent exactly as it ships.
Each kind lives on its own page under Assets in the sidebar, and each is the same record with a different second line: a name, what it is for, and the one string that makes it real.
The five kinds
| Kind | What you give it | What actually happens |
|---|---|---|
| MCP server | a stdio command (npx -y @acme/mcp-postgres) or an HTTP/SSE URL |
Written into .mcp.json in the workspace — the file Claude Code, Codex and cursor-agent all look for. For your own agent, the server’s tools are injected into its tool list. |
| Skill | guidance, in prose | Installed as .claude/skills/<name>/SKILL.md where the agent will read it, and given to your own agent inside its brief. |
| CLI | an install command (npm i -g @acme/cli) |
Run while the machine provisions, so the binary is on PATH before the first token. |
| SDK | a package spec (@acme/sdk@^3, or a pip package) |
Installed into the project the task runs against. Node packages go into the workspace; Python packages into the user’s own site-packages. |
| Plugin | a git source, or an install command | Cloned into .claude/plugins/<name>/, dependencies installed, and any command it provides linked onto PATH — without running the repository’s own build. |
Whatever is attached, a summary is written to CONTEXT.md in the workspace and
appended to the agent’s instructions, so it knows what it has been given rather
than having to discover it.
Writing a skill
Write it the way you would brief a new engineer, not as a prompt:
Tests live beside the code they cover, named *.spec.ts.
Never add a bare timeout to a spec to make it pass — find the race.
Scripts go in scripts/ and are kebab-case.
Skills are the one kind that reaches every agent identically, because text travels anywhere.
What each kind means for your own agent
An agent connected with redline dev runs in your process, so some of these
cannot be installed underneath it. The builder says so inline when you have one
of your own agents selected.
| Kind | On a catalog agent | On your own agent |
|---|---|---|
| Skill | Written to disk and mentioned in the brief | Arrives as text in task.prompt. Nothing to do. |
| MCP server | Configured in .mcp.json |
Injected into your framework’s tool list automatically; or ask for it with redlineTools(task). |
| CLI | Installed on the machine | Not installed on your computer. Reach the run’s machine with machine_run, or call installClis(task) yourself. |
| SDK package | Installed in the workspace | Same — it is installed on the run’s machine, not in your process. |
| Plugin | Cloned and linked on the machine | Same. |
Managing them
Each asset card shows what it is for, the string that makes it real, and how many experiments have attached it. Deleting an asset does not touch the experiments that already used it: what those runs were given is part of their record.