Skip to content
Redline
Esc
navigateopen⌘Jpreview
On this page

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.

Was this page helpful?