Meridian Plugin Opencode Scrub banner
rynfar rynfar

Meridian Plugin Opencode Scrub

Development community

Description

Meridian plugin: strip OpenCode identifying fingerprints from the system prompt

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

@rynfar/meridian-plugin-opencode-scrub

A [Meridian](https://github.com/rynfar/meridian) plugin that strips OpenCode's identifying fingerprints from the system prompt before it reaches Claude.

Why

Vanilla OpenCode's system prompt (loaded from `packages/opencode/src/session/prompt/anthropic.txt` when the model id matches `claude`) opens with `"You are OpenCode, the best coding agent on the planet."` and carries a feedback block pointing at `github.com/anomalyco/opencode`, a docs paragraph referencing `opencode.ai/docs`, and a "Professional objectivity" sentence that names `OpenCode` directly.

OpenCode's runtime `environment()` builder also prepends a line like `"You are powered by the model named claude-opus-4-6. The exact model ID is anthropic/claude-opus-4-6"` — a phrasing Claude Code never emits, which makes it a strong third-party tell.

When Meridian routes OpenCode → Claude Max, those identity sections are:

  1. Redundant — Claude Code's preset already owns identity, tone, safety, and tool-use guidance.
  2. A detection fingerprint — they give Anthropic's detection a clear "this isn't Claude Code" signal that can trigger third-party extra-usage errors or rate-limit flags.

This plugin surgically removes those lines and replaces the identity paragraph with a neutral, generic coding-assistant framing. Everything else in OpenCode's prompt (tone rules, task management, tool usage policy, code references, the env block, any user CLAUDE.md appended by OpenCode) is preserved verbatim.

The scrub also handles [OhMyOpenCode](https://github.com/anomalyco/ohmyopencode)-style custom personas (Sisyphus et al.): the `You are "Sisyphus" ... from OhMyOpenCode.` identity line and the `...` block are stripped, while the persona's orchestration rules (Phase 0 intent gate, explore/librarian delegation, Oracle consultation, tone guidelines) are preserved.

The scrub is **idempotent** — running it twice on the same string is a no-op.

Install