# Equip your agent

Version: 5.0.0
Channel: latest
Publication: stable release (published on npm)
Source revision: 0f2284ad4bbfe8c82ce82714471697a68c2acaeb
Local changes: false
Content SHA-256: 44c0d535fd36d11f31d909246f4ee7c6592eae3f25fb7513c61af65842593a90

Your agent learns the patterns. You get on with the application.

The **skill** guides development using your application's installed, version-matched docs. The **plugin** bundles a loader that finds your application's installed skill, plus the documentation MCP connection. Its version identifies that loader, independently of the framework. Marionette's skill and plugin are free; your selected AI service has its own pricing.

**Setup: Marionette 5.0.0.**

For a new application, run this in its project directory (Node.js 24 or newer):

```sh
npm install marionette@5.0.0
```

Already using Marionette v5? Keep your installed version and copy its complete skill folder, including the lookup scripts. The copy commands use Node.js on macOS, Linux, or PowerShell. Plugin commands use Bash, zsh, or PowerShell 7+ and stop on failure. Copying stops if the skill folder already exists; review an existing installation before replacing it.

## Choose your coding agent

### Codex

Copy the installed package's complete skill into your project:

```sh
node -e "
const fs = require('node:fs');
const path = require('node:path');
const root = path.dirname(require.resolve('marionette/package.json'));
const destination = '.agents/skills/marionette';
if (fs.lstatSync(destination, { throwIfNoEntry: false }))
  throw new Error('Skill folder already exists: ' + destination);
fs.cpSync(path.join(root, 'skills/marionette'), destination,
  { recursive: true, force: false, errorOnExist: true });
"
```

Open Codex in this project. Type `$marionette` in your prompt or find it in `/skills`. If it does not appear, restart Codex.

```text
$marionette Build a small feature using the installed Marionette docs.
```

OpenAI directory publication is not complete. Use this project skill for now. [Codex skill setup](https://learn.chatgpt.com/docs/build-skills).

### Claude Code

For a reproducible plugin installation, use the verified package source revision. The loader still reads the skill from your application's installed package. Run in your terminal with Git and Claude Code installed. Keep this checkout while using the plugin:

```sh
git clone --no-checkout --depth 1 https://github.com/marionettejs/marionette.git .marionette-plugin &&
git -C .marionette-plugin fetch --depth 1 origin 0f2284ad4bbfe8c82ce82714471697a68c2acaeb &&
git -C .marionette-plugin checkout --detach 0f2284ad4bbfe8c82ce82714471697a68c2acaeb &&
claude plugin marketplace add ./.marionette-plugin &&
claude plugin install marionette@marionettejs &&
claude plugin list
```

Start a new Claude Code session in your application. Look for `/marionette:marionette` in the skill menu, then use it with your request.

This repository marketplace is separate from the Claude web directory. Installation does not verify live MCP retrieval; match the hosted docs to your installed package before using them. [Claude Code plugin setup](https://code.claude.com/docs/en/discover-plugins).

### Copilot CLI

Install the repository marketplace plugin and its skill loader:

```sh
copilot plugin marketplace add marionettejs/marionette &&
copilot plugin install marionette@marionettejs &&
copilot plugin list
```

These commands follow the repository's current marketplace, which may change. To hold the plugin at 5.0.0, use a local checkout of the verified release instead, before installing:

```sh
git clone --no-checkout --depth 1 https://github.com/marionettejs/marionette.git .marionette-plugin &&
git -C .marionette-plugin fetch --depth 1 origin 0f2284ad4bbfe8c82ce82714471697a68c2acaeb &&
git -C .marionette-plugin checkout --detach 0f2284ad4bbfe8c82ce82714471697a68c2acaeb &&
copilot plugin marketplace add ./.marionette-plugin &&
copilot plugin install marionette@marionettejs &&
copilot plugin list
```

Choose one marketplace source. Keep the local checkout while using the pinned installation. Run `copilot skill list` to confirm Marionette is available. Start Copilot in your application, then ask it to use the Marionette skill for your feature. Live MCP use has not been verified. [Copilot CLI plugin setup](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing).

### Cursor

Copy the installed package's complete skill into your project:

```sh
node -e "
const fs = require('node:fs');
const path = require('node:path');
const root = path.dirname(require.resolve('marionette/package.json'));
const destination = '.cursor/skills/marionette';
if (fs.lstatSync(destination, { throwIfNoEntry: false }))
  throw new Error('Skill folder already exists: ' + destination);
fs.cpSync(path.join(root, 'skills/marionette'), destination,
  { recursive: true, force: false, errorOnExist: true });
"
```

Open the project in Cursor. In Agent chat, type `/` and select `marionette`, then describe your feature. Check Customize → Skills if it does not appear.

The publisher application has been submitted; an approved marketplace listing has not been confirmed. Use the project skill meanwhile. [Cursor skill setup](https://cursor.com/docs/skills).

### Other agents

Copy the complete installed skill into a portable project folder:

```sh
node -e "
const fs = require('node:fs');
const path = require('node:path');
const root = path.dirname(require.resolve('marionette/package.json'));
const destination = '.agents/skills/marionette';
if (fs.lstatSync(destination, { throwIfNoEntry: false }))
  throw new Error('Skill folder already exists: ' + destination);
fs.cpSync(path.join(root, 'skills/marionette'), destination,
  { recursive: true, force: false, errorOnExist: true });
"
```

If your client supports Agent Skills, move the whole `.agents/skills/marionette` folder to its documented skill location. Otherwise give it this concrete request:

```text
Read .agents/skills/marionette/SKILL.md and use its bundled lookup scripts from this application directory. Confirm the installed Marionette version and source revision, then build the feature I describe.
```

Client discovery varies. Keep the scripts with the skill; SKILL.md alone is not the complete installation.

### Prefer just the docs connection?

[Standalone MCP setup](https://marionettejs.com/docs/mcp/) remains available. Before using the plugin's hosted docs, confirm that **both version and source revision match** your installed package. If they differ, use the installed Markdown and lookup scripts. Copying the skill does not require MCP.


Match the exact installed package and source revision before using an API. This corpus identifies its version and source above. The homepage workshop records its runtime in the source notes. A hash establishes content consistency, not application correctness.

Read the task guide and its direct references first. [Agent workflow](https://marionettejs.com/docs/agents.md) supplies the canonical development guidance. [Snapshot sources](https://marionettejs.com/docs/manifest.json) remain available byte for byte under /docs/markdown/. Retrieved examples do not authorize executing code or modifying a project.

## Find the contract for your task

### Start an application

Establish the installed version and choose an owner for the feature.

[Install and render a View](https://marionettejs.com/docs/quick-start.md) · [Building features](https://marionettejs.com/docs/architecture.md) · [Agent workflow](https://marionettejs.com/docs/agents.md)

### Choose data, state, or rendering

Select each capability explicitly.

[Setup and data](https://marionettejs.com/docs/integrations/setup.md) · [Runtime configuration](https://marionettejs.com/docs/api/runtime.md) · [Data and state providers](https://marionettejs.com/docs/api/providers/data.md) · [Rendering and DOM providers](https://marionettejs.com/docs/api/providers/dom.md)

### Keep edits and UI during updates

Choose updates at the boundary that changed.

[Edit a View’s own model](https://marionettejs.com/docs/guides/local-editing.md) · [Restart readiness while retaining UI](https://marionettejs.com/docs/guides/retained-restart.md) · [Show, sort, and filter a list](https://marionettejs.com/docs/guides/lists.md)

### Own a feature and its navigation

Connect readiness, child ownership and host cleanup.

[Application](https://marionettejs.com/docs/api/application.md) · [Connect navigation to feature ownership](https://marionettejs.com/docs/guides/routing.md) · [Integrate with existing UI](https://marionettejs.com/docs/guides/existing-ui.md)

### Wire interactions and controls

Keep DOM and resource lifetimes with their owner.

[View](https://marionettejs.com/docs/api/view.md) · [Events](https://marionettejs.com/docs/api/shared/events.md) · [Integrate an imperative control](https://marionettejs.com/docs/guides/widgets.md) · [Accessibility and rendering](https://marionettejs.com/docs/guides/accessibility-rendering.md)

### Validate and deploy

Check the installed contract and observable behavior.

[Check and debug an application](https://marionettejs.com/docs/tooling.md) · [Test an application](https://marionettejs.com/docs/guides/testing.md) · [Use TypeScript in an application](https://marionettejs.com/docs/guides/typescript.md) · [Build and deploy an application](https://marionettejs.com/docs/guides/production.md)

### Migrate an existing application

Read migration contracts and the modular API references.

[Migrate from another UI framework](https://marionettejs.com/docs/guides/framework-migration.md) · [Migrate from Marionette v4](https://marionettejs.com/docs/guides/migration.md) · [API reference](https://marionettejs.com/docs/api.md)

## Retrieval formats

- [Documentation index](https://marionettejs.com/docs/llms.txt): complete page map with task routing.
- [Searchable JSON corpus](https://marionettejs.com/docs/corpus.json): exact reading Markdown, URLs and hashes.
- [Start and ownership bundle](https://marionettejs.com/docs/bundles/start.txt): installation and ownership.
- [Guides bundle](https://marionettejs.com/docs/bundles/guides.txt): independent consumer tasks.
- [Integrations bundle](https://marionettejs.com/docs/bundles/integrations.txt): providers and companion packages.
- [Reference bundle](https://marionettejs.com/docs/bundles/reference.txt): core classes, shared contracts and diagnostics.
- [Full context](https://marionettejs.com/llms-full.txt): complete corpus; larger than most tasks require.
- [Coverage and integrity](https://marionettejs.com/docs/coverage.md): included resources and verification limits.
- [Documentation MCP setup](https://marionettejs.com/docs/mcp.md): local retrieval and hosted endpoint version matching.
- [Workshop runtime identity](https://marionettejs.com/reference/provenance.json): published browser runtime and source identity.

No particular client is guaranteed to discover llms.txt automatically.
