npm package: @sveltejs/opencode
Description: OpenCode plugin for Svelte that provides the Svelte MCP server, a specialized file editor subagent and instruction files.
Latest version: 0.1.8

# @sveltejs/opencode

OpenCode plugin for Svelte that provides the Svelte MCP server, a specialized file editor subagent and instruction files.

## Installation

Add `@sveltejs/opencode` to your OpenCode config (either global or local):

```json
{
	"$schema": "https://opencode.ai/config.json",
	"plugin": ["@sveltejs/opencode"]
}
```

That's it! You now have the Svelte MCP server and the file editor subagent configured automatically.

## Features

### Svelte MCP Server

The plugin automatically configures the [Svelte MCP server](https://mcp.svelte.dev) which provides:

- **list-sections** - Discover available Svelte 5 and SvelteKit documentation sections
- **get-documentation** - Retrieve full documentation content for specific sections
- **svelte-autofixer** - Analyze Svelte code and get issues/suggestions
- **playground-link** - Generate Svelte Playground links with provided code

### Svelte File Editor Subagent

A specialized subagent (`svelte-file-editor`) that is automatically used when creating, editing, or reviewing `.svelte`, `.svelte.ts`, or `.svelte.js` files. It fetches relevant documentation and validates code using the Svelte MCP server tools.

### Agent Instructions

The plugin injects instructions that teach the agent how to effectively use the Svelte MCP tools.

## Configuration

Create `svelte.json` to customize how the plugin configures MCP, the Svelte subagent, instructions, and skills.

```json
{
	"$schema": "https://svelte.dev/opencode/schema.json",
	"mcp": {
		"type": "remote",
		"enabled": true
	},
	"subagent": {
		"enabled": true,
		"agents": {
			"svelte-file-editor": {
				"model": "anthropic/claude-sonnet-4-20250514",
				"temperature": 0.7,
				"top_p": 0.9,
				"maxSteps": 20
			}
		}
	},
	"instructions": {
		"enabled": true
	},
	"skills": {
		"enabled": ["svelte-code-writer", "svelte-core-bestpractices"]
	}
}
```

### Defaults

If omitted, the plugin uses these defaults:

- `mcp.type`: `"remote"`
- `mcp.enabled`: `true`
- `subagent.enabled`: `true`
- `subagent.agents`: `{}`
- `instructions.enabled`: `true`
- `skills.enabled`: `true`

### Configuration Options

| Option                                           | Type                  | Default    | Description                                                                                    |
| ------------------------------------------------ | --------------------- | ---------- | ---------------------------------------------------------------------------------------------- |
| `mcp.type`                                       | `"remote" \| "local"` | `"remote"` | Use `https://mcp.svelte.dev/mcp` (`remote`) or run `@sveltejs/mcp` via `npx` (`local`).        |
| `mcp.enabled`                                    | `boolean`             | `true`     | Enable or disable the Svelte MCP server entry.                                                 |
| `subagent.enabled`                               | `boolean`             | `true`     | Enable or disable registration of the `svelte-file-editor` subagent.                           |
| `subagent.agents.svelte-file-editor.model`       | `string`              | main agent | Override the model used by the Svelte file editor subagent.                                    |
| `subagent.agents.svelte-file-editor.temperature` | `number`              | unset      | Set temperature for the subagent.                                                              |
| `subagent.agents.svelte-file-editor.top_p`       | `number`              | unset      | Set top-p sampling for the subagent.                                                           |
| `subagent.agents.svelte-file-editor.maxSteps`    | `number`              | unlimited  | Limit the number of steps the subagent can execute.                                            |
| `instructions.enabled`                           | `boolean`             | `true`     | Enable or disable automatic instruction-file injection.                                        |
| `skills.enabled`                                 | `boolean \| string[]` | `true`     | Enable all skills (`true`), disable all skills (`false`), or enable only specific skill names. |

### Supported Skill Names

When using `skills.enabled` as an array, these built-in names are currently available:

- `svelte-code-writer`
- `svelte-core-bestpractices`

### Config File Locations and Precedence

The plugin reads from these files (lowest priority first, highest priority last):

- `~/.config/opencode/svelte.json`
- `$OPENCODE_CONFIG_DIR/svelte.json` (when `OPENCODE_CONFIG_DIR` is set)
- `.opencode/svelte.json` in the current project

If the same key is defined in multiple files, the later location overrides earlier ones.

## License

MIT