#270 by GitHub stars

metalbear-co/mirrord

Run any process, on your machine or in an AI agent's environment, as if it were a pod in your Kubernetes cluster: real env vars, DNS, network, traffic.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

mirrord/mcp/corpus/skills/mirrord-chaos/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Network or broad shell

1cd28b29b2bd → 89bfc07c6a44

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 1cd28b29b2bd

No earlier version was observed for comparison.

Compare on GitHub

mirrord/mcp/corpus/skills/mirrord-ci/SKILL.md

Week of Nov 2, 2026 · +4 / −2 lines

Before Network or broad shell → After Network or broad shell

1cd28b29b2bd → 89bfc07c6a44

- 6   version: "1.4"
+ 6   version: "1.5"
- 123 This only applies to the Enterprise plan; if you're on the open-source version of mirrord, skip this section. When the mirrord Operator is installed in the cluster, `mirrord ci` commands require a CI API key, and generating one requires an Enterprise plan. Without it, every CI runner registers as a new user and consumes a seat:
+ 123 This only applies to the Enterprise plan; if you're on the open-source version of mirrord, skip this section. When the mirrord Operator is installed in the cluster, `mirrord ci` commands require a CI API key, and generating one requires an Enterprise plan. Without it, every CI runner registers as a new user and consumes a seat. Sessions started with a CI API key don't take up seats — they are machine sessions, and they count towards the concurrent machine sessions of your plan instead:
+ 131 
+ 132 The same key and mechanism also cover cloud/background coding agents (Cursor cloud agents, Codex cloud, Claude Code on the web, Devin, etc.) that run `mirrord exec` rather than `mirrord ci start/stop` — each agent environment otherwise registers as a new user. See mirrord's "Using mirrord with Cloud Agents" docs for that setup, including keeping concurrent agent sessions apart with `MIRRORD_KEY`/`--key`.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 1cd28b29b2bd

No earlier version was observed for comparison.

Compare on GitHub

mirrord/mcp/corpus/skills/mirrord-config/SKILL.md

Week of Nov 2, 2026 · +1 / −1 lines

Before Instructions only → After Network or broad shell

1cd28b29b2bd → 89bfc07c6a44

- 6   version: "1.28"
+ 6   version: "1.30"

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 1cd28b29b2bd

No earlier version was observed for comparison.

Compare on GitHub

mirrord/mcp/corpus/skills/mirrord-db-branching/SKILL.md

Week of Nov 2, 2026 · +50 / −2 lines

Before Network or broad shell → After Network or broad shell

1cd28b29b2bd → 89bfc07c6a44

- 6   version: "2.10"
+ 6   version: "2.12"
+ 133 | `cluster` | redis | Remote only. `true` runs the branch as a one-node Redis Cluster instead of a standalone `redis-server`, for apps using a Redis Cluster client. See [Redis Cluster Clients](#redis-cluster-clients). |
+ 148 | Redis Cluster branches (`cluster: true`) | 3.225.0 | 3.279.0 | 3.225.0 | `operator.redisBranching: true` |
- 264   - `env_var_name` is normally optional on these three sources, but becomes **required** when the connection is used by a `container`-flavor [migration](#schema-migrations) Job — the operator needs a variable name to redirect the branch connection into the Job's inherited environment. Without it, the migration fails.
+ 266 - **AWS SSM Parameter Store** (url or params; uses the target pod's service account the same way AWS Secrets Manager does; `SecureString` parameters are decrypted): url → `{ "type": "aws_ssm_parameter", "parameter": "/dev/app/database/url", "env_var_name": "DATABASE_URL" }`; param → `{ "aws_ssm_parameter": "/dev/app/db-creds", "value_selector": ".password", "env_var_name": "DB_PASSWORD" }`. `parameter` is a parameter name or a full ARN; the region comes from the ARN, or from `AWS_REGION`/`AWS_DEFAULT_REGION` on the target pod for a plain name. Set `name` on the branch when the `url` source is `aws_ssm_parameter` — the operator never reads the literal URL, so without `name` the app gets a branch URL for the `postgres` database instead of its own. Requires operator **3.224.0+** and CLI **3.278.0+**; an older operator can't read it, so the CLI refuses to start the session against one.
+ 267   - `env_var_name` is normally optional on these four sources, but becomes **required** when the connection is used by a `container`-flavor [migration](#schema-migrations) Job — the operator needs a variable name to redirect the branch connection into the Job's inherited environment. Without it, the migration fails.
+ 519 ### Apps that build the connection URL at runtime
+ 520 
+ 521 Some apps never read a connection URL from an env var — at startup they look up the address in AWS SSM, sign an IAM token, and build the URL in code. mirrord can't redirect that, and the app would ignore a branch URL mirrord set for it anyway. This works without changing the app or the cluster, as long as the code already has a switch that makes it read a URL from an env var instead (e.g. a local-development flag):
+ 522 
+ 523 ```json mirrord=feature.db_branches[]
+ 524 {
+ 525   "connection": {
+ 526     "url": {
+ 527       "type": "env",
+ 528       "variable": "DATABASE_URL",
+ 529       "value": "postgresql://app_user@mydb.abc123.us-east-1.rds.amazonaws.com:5432/app?sslmode=require"
+ 530     }
+ 531   },
+ 532   "iam_auth": { "type": "aws_rds" }
+ 533 }
+ 534 ```
+ 535 
+ 536 Pair it with `"feature": { "env": { "override": { "USE_SSM": "false" } } }` (use the app's own flag name) to flip the switch on your machine only — the deployed workload is untouched. `value` is the source URL the branch copies from; with `iam_auth` set, the branch init container signs its own IAM token, so `value` needs no password and doesn't need to exist in the pod spec. `name` is taken from `value` automatically on mirrord **3.278.0+**; set it explicitly on older CLIs — the operator never reads the literal URL, so without `name` the app gets a branch URL for the `postgres` database instead of its own. To avoid inlining the URL in the config, point `connection.url` at the same SSM parameter the app reads instead, with an [`aws_ssm_parameter` source](#advanced-sources); in that case `name` is required, since mirrord never sees the URL. When copying data (`copy.mode: schema` or `all`), use `sslmode=require` in `value` even if the app itself uses `verify-full` — the branch init container has no copy of the source's CA to verify against, and `require` still encrypts the copy connection.
+ 537 
+ 590 
+ 591 ### Redis Cluster Clients
+ 592 
+ 593 A remote branch is a standalone `redis-server` by default. An app that connects with a Redis Cluster client (one that runs `CLUSTER SLOTS` or `CLUSTER SHARDS` on connect, as cluster clients in go-redis, ioredis, Lettuce, redis-py and others do) refuses such a server. Set `"cluster": true` to run the branch as a one-node Redis Cluster instead:
+ 594 
+ 595 ```json mirrord
+ 596 {
+ 597   "feature": { "db_branches": [ {
+ 598     "id": "cache-redis",
+ 599     "type": "redis",
+ 600     "cluster": true,
+ 601     "connection": { "url": "REDIS_URL" },
+ 602     "copy": { "mode": "all" }
+ 603   } ] }
+ 604 }
+ 605 ```
+ 606 
+ 607 The branch node owns all 16384 hash slots, so every key the app uses lands on it, and normal Redis Cluster rules apply:
+ 608 
+ 609 - Only database `0` exists. Leave `name` out or set it to `"0"`; any other index is rejected.
+ 610 - Multi-key commands (`MGET`, `MSET`, transactions, Lua scripts) must keep all their keys in one hash slot, same as against the real cluster.
+ 611 - The node announces its own pod IP, which a cluster client dials after `CLUSTER SLOTS`. Through mirrord that address is reachable from your machine like any pod in the cluster.
+ 612 
+ 613 With `"mode": "all"` the source may be standalone Redis or a Redis Cluster. From a cluster, keys are copied from every master node, following the addresses the cluster announces, with the same credentials and TLS settings as the source connection; `patterns` applies the same way. A standalone source needs only read access (`+@read`); a cluster source user also needs `cluster|slots` and `cluster|nodes`, used to find the masters and confirm no slot moved while the copy ran — if the cluster is resharding during the copy, the branch fails to start instead of coming up with missing keys, so retry once resharding finishes.
+ 614 
+ 615 `"cluster": true` only applies to remote branches; a local branch always runs a standalone instance.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 1cd28b29b2bd

No earlier version was observed for comparison.

Compare on GitHub

mirrord/mcp/corpus/skills/mirrord-header-propagation/SKILL.md

Week of Nov 2, 2026 · +2 / −1 lines

Before Network or broad shell → After Network or broad shell

1cd28b29b2bd → 89bfc07c6a44

- 18   version: "1.1"
+ 18   version: "1.2"
+ 49 | NATS (JetStream, Core Pub/Sub) | message header | `baggage` (`message_filter`) |

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 1cd28b29b2bd

No earlier version was observed for comparison.

Compare on GitHub

mirrord/mcp/corpus/skills/mirrord-kafka/SKILL.md

Week of Nov 2, 2026 · +6 / −4 lines

Before Local scripts → After Network or broad shell

1cd28b29b2bd → 89bfc07c6a44

- 15   version: "2.7"
+ 15   version: "2.8"
- 174             containers: [<container>]
+ 174             containerNames: [<container>]
- 177             containers: [<container>]
- 178 ```
+ 177             containerNames: [<container>]
+ 178 ```
+ 179 
+ 180 `containerNames` is the current spelling (works with Kustomize's `images:` transformer); the legacy `containers` spelling still works on existing manifests — don't set both on the same reference. Don't adopt `containerNames` until the operator and its CRD are upgraded to a release that supports it and the rollout has completed; an older operator can reject or ignore the field.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 1cd28b29b2bd

No earlier version was observed for comparison.

Compare on GitHub

mirrord/mcp/corpus/skills/mirrord-operator/SKILL.md

Week of Nov 2, 2026 · +35 / −21 lines

Before Network or broad shell → After Network or broad shell

1cd28b29b2bd → 89bfc07c6a44

- 6   version: "2.19"
+ 6   version: "2.22"
- 165 If the cluster has no mirrord for Teams license, an agent can offer the user a seven-day Enterprise trial instead of stopping. Run `mirrord operator status` first: if it succeeds, the cluster already runs the Operator (possibly from a trial an earlier session started), so don't sign up again. Otherwise, once the user agrees:
- 166 
- 167 ```bash
- 168 mirrord operator install --no-browser
- 169 ```
- 170 
- 171 This runs against the cluster of the current kubecontext, or the one named with `--context`. No authentication, no credit card, and no API key for the agent to handle. In a terminal, the command first asks you to confirm the kubecontext and namespace before it starts the trial or changes the cluster — `--yes` skips the question; an agent usually runs without a terminal, and then it isn't asked either way.
- 172 
- 173 The command starts the trial, installs the Operator from the default Helm chart (no Helm needed), and prints the trial's end date, a `claim_url` for the user to open to take ownership of the organization, and the trial's API key. `--no-browser` keeps it from opening the claim page itself (it's skipped automatically whenever the command isn't running in a terminal). It sends the cluster's ID (the UID of its `default` namespace) as a hint so the user can recognize the cluster on the claim page; `--cluster-hint <name>` sends a different name, `--no-hint` sends none. If an Operator is already installed, or an earlier install left objects behind, the command stops and tells you rather than touching anything.
- 174 
- 175 If the install fails or is stopped half-way, don't start another trial — remove what was installed and retry with the trial's key (the command prints both commands, filled in, when it fails):
+ 165 If the cluster has no mirrord for Teams license, an agent can offer the user a seven-day Enterprise trial instead of stopping. Run `mirrord operator status` first: if it succeeds, the cluster already runs the Operator (possibly from a trial an earlier session started), so don't sign up again. If the user already has a MetalBear organization, install with that instead (see [Already have an organization?](#already-have-an-organization) below) — signing up again creates a second organization to clean up. Otherwise, once the user agrees:
+ 166 
+ 167 ```bash
+ 168 mirrord operator signup
+ 169 mirrord operator install --from-signup
+ 170 ```
+ 171 
+ 172 These run against the cluster of the current kubecontext, or the one named with `--context` (give both commands the same one). No authentication, no credit card, and no API key for the agent to handle.
+ 173 
+ 174 `mirrord operator signup` starts the trial and prints its end date and a `claim_url` for the user to open to take ownership of the organization. It saves the trial's API key on this machine instead of printing it. It sends the cluster's ID (the UID of its `default` namespace) as a hint so the user can recognize the cluster on the claim page; `--cluster-hint <name>` sends a different name, `--no-hint` sends none.
+ 175 
+ 176 `mirrord operator install --from-signup` installs the Operator from the default Helm chart (no Helm needed) using the saved key. In a terminal, it first asks you to confirm the kubecontext and namespace before it changes the cluster — `--yes` skips the question; an agent usually runs without a terminal, and then it isn't asked either way. If an Operator is already installed, or an earlier install left objects behind, the command stops and tells you rather than touching anything.
+ 177 
+ 178 If the install fails or is stopped half-way, don't start another trial — remove what was installed and retry the install with the saved key:
- 179 mirrord operator install --api-key <key>
- 180 ```
- 181 
- 182 Give both commands the same `--context` if the first attempt used one.
- 183 
- 184 Treat the returned API key like any other secret material (see Security Boundaries) — don't echo it; if you move the install to Helm later, pass it via a Secret reference, not `--set`.
- 185 
- 186 **Confirm with the user before running `mirrord operator install`** — it creates an external organization and installs into the cluster; treat it with the same care as any other cluster-modifying action.
+ 182 mirrord operator install --from-signup
+ 183 ```
+ 184 
+ 185 Treat the trial's API key like any other secret material (see Security Boundaries) — don't echo it; if you move the install to Helm later, pass it via a Secret reference, not `--set`.
+ 186 
+ 187 **Confirm with the user before running `mirrord operator signup`** — it creates an external organization and installs into the cluster; treat it with the same care as any other cluster-modifying action.
+ 192 
+ 193 ### Already have an organization?
+ 194 
+ 195 No trial needed. Running `mirrord operator install` with no flags logs you (or the agent, with your approval) into [app.metalbear.com](https://app.metalbear.com) in the browser (or reuses a recent `mirrord login` from the same machine), creates the organization's operator API key, and installs the Operator with it — without ever showing the key to the agent. If no browser opens, it prints the URL to visit and waits up to five minutes for approval. This only works for an organization admin, and only while the organization has no operator API key yet; if it already has one, install with `mirrord operator install --api-key <key>` using a key from a cluster that already runs the Operator, or ask an admin to generate one under **API Keys** in the dashboard.
- 324 This is currently the **only** field the CLI actually applies from the global file as a session default — other fields can be stored there but don't yet affect sessions, so point users at their project config for anything else. An explicit project config value (including `false`) or `MIRRORD_OPERATOR_ENABLE` still wins over the global default. If a session starts successfully through the Operator, mirrord also remembers `operator: true` in the global file for next time.
+ 329 `operator` and `kube_context` are currently the **only** fields the CLI actually applies from the global file as session defaults — other fields can be stored there but don't yet affect sessions, so point users at their project config for anything else. An explicit project config value (including `false`) or `MIRRORD_OPERATOR_ENABLE` still wins over the global `operator` default. If a session starts successfully through the Operator, mirrord also remembers `operator: true` in the global file for next time.
+ 330 
+ 331 To point every mirrord command (including `mirrord up`, `mirrord ui`, and the `mirrord operator` commands) at one cluster without changing the kubeconfig's current context:
+ 332 
+ 333 ```bash
+ 334 mirrord config set kube_context staging
+ 335 mirrord config unset kube_context   # back to following the kubeconfig's current context
+ 336 ```
+ 337 
+ 338 A `--context` flag, a `kube_context` in the project config, or `MIRRORD_KUBE_CONTEXT` still wins over the global default. If `mirrord ui` is already running, restart it (`mirrord ui stop`, then run it again) to pick up the change.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 1cd28b29b2bd

No earlier version was observed for comparison.

Compare on GitHub

mirrord/mcp/corpus/skills/mirrord-prev-env/SKILL.md

Week of Nov 2, 2026 · +37 / −1 lines

Before Network or broad shell → After Network or broad shell

1cd28b29b2bd → 89bfc07c6a44

- 6   version: "2.8"
+ 6   version: "2.9"
+ 231 ## Targeting by label
+ 232 
+ 233 A preview can target every pod a label selector matches, instead of one workload — requires operator **3.213.0+** and CLI **3.266.0+**. A single preview session takes traffic from every matching pod. Queue splitting and DB branching aren't supported when the target is a label selector.
+ 234 
+ 278 
+ 279 ## Previewing several services (`mirrord preview up`)
+ 280 
+ 281 `mirrord preview up` starts a preview for every service in a [`mirrord-up.yaml`](https://metalbear.com/mirrord/docs/using-mirrord/multiple-concurrent-sessions) that has an image, all under one key — services already defined there need no separate `mirrord.json`. `mirrord preview down` stops them again. Requires mirrord **3.279.0+**.
+ 282 
+ 283 ```yaml mirrord-up
+ 284 services:
+ 285   user-auth-service:
+ 286     run:
+ 287       command: ["python", "-m", "http.server"]
+ 288   stage-user-dashboard-app:
+ 289     run:
+ 290       command: ["node", "app.js"]
+ 291 ```
+ 292 
+ 293 ```bash
+ 294 mirrord preview up \
+ 295   --image user-auth-service=ghcr.io/org/user-auth-service:preview-pr-123-abc1234 \
+ 296   --image stage-user-dashboard-app=ghcr.io/org/stage-user-dashboard-app:preview-pr-123-abc1234 \
+ 297   -k pr-123
+ 298 
+ 299 mirrord preview down -k pr-123
+ 300 ```
+ 301 
+ 302 Key points:
+ 303 
+ 304 - **Images.** A service's image comes from `--image <service>=<image ref>` (repeat per service) or a `MIRRORD_<SERVICE>_IMAGE` env var (service name upper-cased, non-alphanumerics turned into `_`). A service with no image is skipped.
+ 305 - **Key.** Without `-k`/`MIRRORD_KEY`, the key is `GITHUB_HEAD_REF` in a GitHub PR, else the current git branch; on `main`/`master` or with no branch checked out, it's random — pass `-k`/`MIRRORD_KEY` there, since a generated key can't be found again for `preview down`.
+ 306 - **Per-service setup.** Each preview is created as `mirrord preview start` would for that service's `target`/`context`/`ignore_ports`/`config_patch`, in `split` mode (`http_filter` replaces the default `baggage: mirrord-session=<key>` filter); `default_mode`/`env`/`run`/`skip` are ignored. Queues are split by the key and, for a single-workload target, the operator's default database branches apply too — set `feature.split_queues`/`feature.db_branches` (`[]` to turn off) in `config_patch` to change either. `config_patch` can set any option except `feature.preview.image`.
+ 307 - **Checks first.** Every service is validated before anything starts — an unknown/duplicate `--image` service, no service with an image, a colliding `MIRRORD_<SERVICE>_IMAGE`, a previewed service with `target: none` or an unfindable target (`mirrord preview up` never prompts), two previewed services sharing a target, or an invalid/unsupported `config_patch` all fail the whole command with nothing created.
+ 308 - **Reruns.** Running it again with the same key replaces each previewed service's session and keeps its preview URL; a service that gets no image on the rerun keeps its earlier preview until stopped or its TTL expires.
+ 309 - **Link sharing.** Leave `operator.shareIngress.stableSlugs` off — a stable slug comes from the key alone, so every service under one key would collide except the first.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 1cd28b29b2bd

No earlier version was observed for comparison.

Compare on GitHub

mirrord/mcp/corpus/skills/mirrord-propagation-discovery/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

1cd28b29b2bd → 89bfc07c6a44

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 1cd28b29b2bd

No earlier version was observed for comparison.

Compare on GitHub

mirrord/mcp/corpus/skills/mirrord-quickstart/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

1cd28b29b2bd → 89bfc07c6a44

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 1cd28b29b2bd

No earlier version was observed for comparison.

Compare on GitHub

mirrord/mcp/corpus/skills/mirrord-temporal/SKILL.md

Week of Nov 2, 2026 · +3 / −3 lines

Before Instructions only → After Network or broad shell

1cd28b29b2bd → 89bfc07c6a44

- 15   version: "1.3"
+ 15   version: "1.4"
- 155 - Each `appConfig` field uses the same source structure as other queue services: `env`, `envLike`, `volume` (read from a file mounted from a ConfigMap volume instead of an env var — operator **3.198.0+**), `podFile` (read from a file that exists only inside the running pods, e.g. Vault- or CSI-injected, with no ConfigMap/Secret behind it — operator **3.201.0+**), `fallback`, `valueSelector`, `valuePattern`, `containers`.
+ 155 - Each `appConfig` field uses the same source structure as other queue services: `env`, `envLike`, `volume` (read from a file mounted from a ConfigMap volume instead of an env var — operator **3.198.0+**), `podFile` (read from a file that exists only inside the running pods, e.g. Vault- or CSI-injected, with no ConfigMap/Secret behind it — operator **3.201.0+**), `fallback`, `valueSelector`, `valuePattern`, `containerNames` (legacy spelling `containers` still works — don't set both on the same entry).
- 178             containers: [<container>]
+ 178             containerNames: [<container>]

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 1cd28b29b2bd

No earlier version was observed for comparison.

Compare on GitHub

mirrord/mcp/corpus/skills/mirrord-up/SKILL.md

Week of Nov 2, 2026 · +4 / −4 lines

Before Instructions only → After Network or broad shell

1cd28b29b2bd → 89bfc07c6a44

- 10   version: "1.8"
+ 10   version: "1.11"
- 234 3. Messages intended for the session must contain `mirrord-session=checkout-debug`. This is matched in broker-specific message metadata (Kafka headers, RabbitMQ headers, SQS message attributes, Google Cloud Pub/Sub attributes, Azure Service Bus application properties, Temporal headers) or, for Redis Pub/Sub and BullMQ, in the message payload.
- 235 
- 236 Supported brokers: Kafka, Amazon SQS, RabbitMQ, Google Cloud Pub/Sub, Azure Service Bus, Redis Pub/Sub, Temporal, and BullMQ.
+ 234 3. Messages intended for the session must contain `mirrord-session=checkout-debug`. This is matched in broker-specific message metadata (Kafka headers, RabbitMQ headers, SQS message attributes, Google Cloud Pub/Sub attributes, Azure Service Bus application properties, NATS JetStream headers, Temporal headers) or, for Redis Pub/Sub and BullMQ, in the message payload.
+ 235 
+ 236 Supported brokers: Kafka, Amazon SQS, RabbitMQ, Google Cloud Pub/Sub, Azure Service Bus, NATS JetStream, Redis Pub/Sub, Temporal, and BullMQ. Core NATS pub/sub is split only when a service's `config_patch` sets it in `feature.split_queues`, which then replaces the automatic splits.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 1cd28b29b2bd

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 89bfc07c6a44e768cd0d060c79326fe585ae5601

git clone --filter=blob:none --no-checkout https://github.com/metalbear-co/mirrord.git .hotskills/metalbear-co-mirrord && git -C .hotskills/metalbear-co-mirrord checkout --detach 89bfc07c6a44e768cd0d060c79326fe585ae5601 # Copy each selected skill directory from .hotskills/metalbear-co-mirrord into .agents/skills/<skill-name>/
5.4kGitHub stars
10stars in 7 days
12skills in this repository
853commits in 30 days

Heat

5.2
  • Star growth, last 7 daysAhead of 51% of tracked repositories
  • Star growth, last 24 hoursAhead of 69% of tracked repositories
  • Rank movement, last 7 daysAhead of 39% of tracked repositories
  • Commits, last 30 daysAhead of 99% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 6, 20265,404

Individual skills in this repository

How it works

mirrord-chaos

When your agent uses it

Help users chaos test their app with mirrord: inject artificial latency or connection errors into a mirrord session's outgoing traffic via per-session chaos rules managed with the `mirrord chaos` CLI. Use when a user wants to add latency or delay to outgoing connections or a dependency (e.g. a slow database), simulate connection failures (reset, timed out, refused), test app behavior under degraded network conditions, or wire chaos rules into CI test runs. Always use this skill instead of the deprecated _experimental_.latency mirrord config option.

What it loads into context

Frontmatter

142 tokens

Always available to the agent

SKILL.md

3,566 tokens

When the skill is activated

Reference documents

503 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Purpose
  2. When to Use This Skill
  3. Security (must follow)
  4. Security Boundaries
  5. Not the `_experimental_.latency` config
  6. How chaos rules work
  7. Prerequisites
  8. Rule anatomy
  9. The `mirrord chaos` command
  10. Mode 1: Interactive usage
  11. Mode 2: CI
  12. Common Issues
  13. Response Guidelines
  14. Example Interaction
  15. Learn More

Files

  • README.mddoc1,924 bytes
  • SKILL.mdcore13,451 bytes
  • SKILL.mdcore13,451 bytes
  • SKILL.mdcore13,451 bytes
  • SKILL.mdcore13,451 bytes
  • SKILL.mdcore13,451 bytes
  • SKILL.mdcore13,451 bytes
  • SKILL.mdcore13,451 bytes
Read SKILL.md

# Mirrord Chaos Testing Skill

## Purpose

Help users inject artificial failures and disruptions into a mirrord session's **outgoing traffic**, to test how their app behaves under unexpected conditions. A **chaos rule** pairs a **selector** (which traffic to match) with an **effect** (what to do to it). Rules are created and managed with the **`mirrord chaos` CLI command**, and each rule is attached to a single mirrord session: it never affects other sessions or the cluster.

This skill covers two modes:

1. **Interactive mode**: a developer starts a session with `mirrord exec` and manages rules with `mirrord chaos`.
2. **CI mode**: a pipeline applies rule files checked into the repo with `mirrord chaos add`, and runs tests under chaos.

## When to Use This Skill

Trigger on questions like:
View the complete source on GitHub

Skills included

  • mirrord-chaos
  • mirrord-ci
  • mirrord-config
  • mirrord-db-branching
  • mirrord-header-propagation
  • mirrord-kafka
  • mirrord-operator
  • mirrord-prev-env
  • mirrord-propagation-discovery
  • mirrord-quickstart
  • mirrord-temporal
  • mirrord-up

Repository facts

License
MIT
Created
Feb 1, 2022
Last pushed
Nov 6, 2026
Forks
229
Open issues
1
Project activity
Active

Rank over the last 12 weeks

Now #270 · best #198 · down 36 in 30 days

  1. #262 on Oct 31
  2. #261 on Nov 1
  3. #262 on Nov 2
  4. #265 from Nov 3 to Nov 4
  5. #266 on Nov 5
  6. #270 since Nov 6
55 earlier periods
  1. #187 on Aug 2
  2. #189 on Aug 7
  3. #188 on Aug 8
  4. #195 from Aug 10 to Aug 12
  5. #198 on Aug 13
  6. #199 on Aug 14
  7. #198 on Aug 15
  8. #199 on Aug 17
  9. #203 on Aug 18
  10. #202 on Aug 19
  11. #199 on Aug 20
  12. #198 on Aug 22
  13. #204 from Aug 24 to Aug 25
  14. #207 on Aug 26
  15. #208 from Aug 27 to Aug 28
  16. #206 on Aug 31
  17. #212 on Sep 1
  18. #208 on Sep 2
  19. #216 on Sep 3
  20. #213 on Sep 4
  21. #216 on Sep 5
  22. #213 on Sep 6
  23. #219 on Sep 9
  24. #219 on Sep 11
  25. #221 on Sep 12
  26. #224 on Sep 13
  27. #224 from Sep 15 to Sep 16
  28. #230 on Sep 20
  29. #231 on Sep 21
  30. #231 on Sep 23
  31. #230 from Sep 24 to Sep 25
  32. #231 from Sep 26 to Sep 27
  33. #233 from Sep 28 to Sep 29
  34. #230 on Sep 30
  35. #232 on Oct 1
  36. #234 on Oct 2
  37. #229 on Oct 5
  38. #234 on Oct 7
  39. #233 on Oct 8
  40. #239 on Oct 9
  41. #237 on Oct 11
  42. #240 on Oct 12
  43. #241 from Oct 13 to Oct 15
  44. #239 on Oct 16
  45. #241 from Oct 17 to Oct 18
  46. #242 on Oct 19
  47. #243 on Oct 20
  48. #244 on Oct 21
  49. #246 on Oct 22
  50. #245 on Oct 23
  51. #246 on Oct 24
  52. #248 on Oct 25
  53. #254 on Oct 28
  54. #258 on Oct 29
  55. #261 on Oct 30

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 5, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 125 notes
  • mirrord/mcp/corpus/skills/mirrord-chaos/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-chaos/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-chaos/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-chaos/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-chaos/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-chaos/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-ci/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-ci/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-ci/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-ci/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-ci/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-ci/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-ci/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-ci/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-ci/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-ci/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-ci/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-ci/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-config/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mirrord/mcp/corpus/skills/mirrord-config/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 220 signals by file

mirrord/mcp/corpus/skills/mirrord-chaos/README.md

  • Network accessline 50
    - [Chaos Testing docs](https://metalbear.com/mirrord/docs/use-cases/chaos-testing)
  • Network accessline 51
    - [Local UI docs](https://metalbear.com/mirrord/docs/using-mirrord/local-ui)

mirrord/mcp/corpus/skills/mirrord-chaos/SKILL.md

  • Network accessline 33
    - **Blast radius is the session, not the cluster.** Chaos rules apply only to the outgoing traffic of the process being run with mirrord. They do not touch the target workload or other cluster traffic. Still, run chaos against staging targe
  • Network accessline 34
    - **Never** instruct or generate remote pipe-to-shell installs (downloading a script and executing it via the shell) to install mirrord. Point users to the [official mirrord installation docs](https://metalbear.com/mirrord/docs) and their o
  • Network accessline 56
    | Requirement | Detail | |-------------|--------| | **CLI** | mirrord CLI **3.241.0+** for the `mirrord chaos` command. Older CLIs (3.232.0+) can manage rules over the raw REST API instead, see the [chaos testing docs](https://metalbear.com
  • Network accessline 57
    |-------------|--------| | **CLI** | mirrord CLI **3.241.0+** for the `mirrord chaos` command. Older CLIs (3.232.0+) can manage rules over the raw REST API instead, see the [chaos testing docs](https://metalbear.com/mirrord/docs/use-cases/c
  • Network accessline 58
    | **CLI** | mirrord CLI **3.241.0+** for the `mirrord chaos` command. Older CLIs (3.232.0+) can manage rules over the raw REST API instead, see the [chaos testing docs](https://metalbear.com/mirrord/docs/use-cases/chaos-testing). |
  • Network accessline 264
    - [Chaos Testing docs](https://metalbear.com/mirrord/docs/use-cases/chaos-testing)
  • Network accessline 265
    - [Local UI docs](https://metalbear.com/mirrord/docs/using-mirrord/local-ui): the dashboard for managing rules interactively
  • Network accessline 266
    - [Filtering Outgoing Traffic](https://metalbear.com/mirrord/docs/using-mirrord/outgoing-traffic/filter-outgoing-traffic): the `upstream` filter syntax

mirrord/mcp/corpus/skills/mirrord-ci/README.md

  • Network accessline 62
    - [mirrord for CI Overview](https://metalbear.com/mirrord-for-ci/)
  • Network accessline 63
    - [mirrord CI Documentation](https://mirrord.dev/docs/using-mirrord/mirrord-for-ci/)

mirrord/mcp/corpus/skills/mirrord-ci/SKILL.md

  • Network accessline 30
    - **Do not** use remote pipe-to-shell installs or other unverified script execution in CI to install mirrord. - Pre-install mirrord in a **trusted CI image**, use your org’s **approved** package manager with pinned versions, or follow [offi
  • Network accessline 31
    - Pre-install mirrord in a **trusted CI image**, use your org’s **approved** package manager with pinned versions, or follow [official install docs](https://mirrord.dev/docs/overview/quick-start/). The YAML below assumes `mirrord` is alread
  • Access to secretsline 130
    [Credential-related source omitted]
  • Network accessline 179
    run: |           # Use a pre-built runner image that includes mirrord, or install via your org's approved method.           # See https://mirrord.dev/docs/overview/quick-start/ — do not pipe remote install scripts.
  • Network accessline 180
    # Use a pre-built runner image that includes mirrord, or install via your org's approved method.           # See https://mirrord.dev/docs/overview/quick-start/ — do not pipe remote install scripts.           mirrord --version
  • Network accessline 181
    # See https://mirrord.dev/docs/overview/quick-start/ — do not pipe remote install scripts.
  • Access to secretsline 188
    [Credential-related source omitted]
  • Network accessline 205
    - |       # Install mirrord - use your organization's approved installation method       # See https://mirrord.dev/docs/overview/quick-start/ for options
  • Network accessline 206
    # Install mirrord - use your organization's approved installation method       # See https://mirrord.dev/docs/overview/quick-start/ for options       # Option A: Pre-install mirrord in your CI Docker image
  • Network accessline 207
    # See https://mirrord.dev/docs/overview/quick-start/ for options
  • Access to secretsline 219
    [Credential-related source omitted]
  • Access to secretsline 247
    [Credential-related source omitted]
  • Access to secretsline 265
    [Credential-related source omitted]
  • Access to secretsline 356
    [Credential-related source omitted]
  • Access to secretsline 423
    [Credential-related source omitted]
  • Access to secretsline 438
    [Credential-related source omitted]
  • Network accessline 442
    - [mirrord for CI Overview](https://metalbear.com/mirrord-for-ci/)
  • Network accessline 443
    - [mirrord CI Documentation](https://mirrord.dev/docs/using-mirrord/mirrord-for-ci/)
  • Network accessline 444
    - [mirrord Installation](https://mirrord.dev/docs/overview/quick-start/)

mirrord/mcp/corpus/skills/mirrord-ci/references/troubleshooting.md

  • Network accessline 3
    > Source: https://github.com/metalbear-co/docs/tree/main/docs/troubleshooting
  • Network accessline 13
    2.  If you are running mirrord on MacOS and the executable you are running is protected by [SIP](https://en.wikipedia.org/wiki/System_Integrity_Protection) (the application you are developing wouldn't be, but the binary that is used to exec
  • Dangerous shell operationline 15
    `sudo codesign --remove-signature ./<your-binary>`
  • Network accessline 23
    ## I've run my [Turbo](https://turbo.build/) task with mirrord, but it seems to have no effect
  • Network accessline 60
    The root cause is still under investigation — see [this issue](https://github.com/metalbear-co/mirrord/issues/4672) for updates.
  • Network accessline 62
    See [this issue](https://github.com/metalbear-co/mirrord/issues/4672) for more details.
  • Access to secretsline 109
    [Credential-related source omitted]

mirrord/mcp/corpus/skills/mirrord-config/SKILL.md

  • Network accessline 21
    - **Never** instruct or generate remote pipe-to-shell installs (downloading a script and executing it via the shell) or similar patterns to install mirrord. - **Never** embed Homebrew tap install one-liners as mandatory steps; if the user n
  • Network accessline 22
    - **Never** embed Homebrew tap install one-liners as mandatory steps; if the user needs the CLI, point them to the [official mirrord installation docs](https://mirrord.dev/docs/overview/quick-start/) and their org’s approved install path.

mirrord/mcp/corpus/skills/mirrord-config/references/fs-mode-internals.md

  • Network accessline 22
    `localwithoverrides` reads `/etc/resolv.conf`, `/etc/hosts` and `/etc/hostname` remotely by default ([`read_remote_by_default.rs`](https://github.com/metalbear-co/mirrord/blob/989aa3bb76682f8d7869752ea33fb50af8dd14f7/mirrord/layer-lib/src/f
  • Network accessline 23
    by default ([`read_remote_by_default.rs`](https://github.com/metalbear-co/mirrord/blob/989aa3bb76682f8d7869752ea33fb50af8dd14f7/mirrord/layer-lib/src/file/unix/read_remote_by_default.rs#L3-L16)) — plus whatever you add to `fs.read_only` /

mirrord/mcp/corpus/skills/mirrord-db-branching/README.md

  • Access to secretsline 54
    [Credential-related source omitted]
  • Network accessline 98
    - [DB Branching Overview](https://metalbear.com/mirrord/docs/sharing-the-cluster/db-branching/)
  • Network accessline 99
    - [Connection Modes](https://metalbear.com/mirrord/docs/sharing-the-cluster/db-branching/connection/)
  • Network accessline 100
    - [IAM Authentication](https://metalbear.com/mirrord/docs/sharing-the-cluster/db-branching/iam-authentication/)
  • Network accessline 101
    - [Schema Migrations](https://metalbear.com/mirrord/docs/sharing-the-cluster/db-branching/migrations/)
  • Network accessline 102
    - [Branch Management](https://metalbear.com/mirrord/docs/sharing-the-cluster/db-branching/management/)

mirrord/mcp/corpus/skills/mirrord-db-branching/SKILL.md

  • Network accessline 34
    Authoritative docs (fetch sub-pages for engine-specific detail): - [DB Branching Overview](https://metalbear.com/mirrord/docs/sharing-the-cluster/db-branching/)
  • Network accessline 35
    - [DB Branching Overview](https://metalbear.com/mirrord/docs/sharing-the-cluster/db-branching/)
  • Network accessline 36
    - Engines: [MySQL](https://metalbear.com/mirrord/docs/sharing-the-cluster/db-branching/mysql/) · [PostgreSQL](https://metalbear.com/mirrord/docs/sharing-the-cluster/db-branching/postgresql/) · [MSSQL](https://metalbear.com/mirrord/docs/shar
  • Network accessline 37
    - [Connection Modes](https://metalbear.com/mirrord/docs/sharing-the-cluster/db-branching/connection/)
  • Network accessline 38
    - [IAM Authentication](https://metalbear.com/mirrord/docs/sharing-the-cluster/db-branching/iam-authentication/)
  • Network accessline 39
    - [Schema Migrations](https://metalbear.com/mirrord/docs/sharing-the-cluster/db-branching/migrations/)
  • Network accessline 40
    - [Branch Management](https://metalbear.com/mirrord/docs/sharing-the-cluster/db-branching/management/)
  • Access to secretsline 121
    [Credential-related source omitted]
  • Network accessline 197
    Also cluster-admin Helm config, not a `db_branches` field: `pgBranchConfig.dbPod.dbServerArgs` is a list of extra command-line flags for every PostgreSQL branch's `postgres` server — for example serving TLS with certificates baked into a cu
  • Network accessline 262
    [Credential-related source omitted]
  • Network accessline 263
    - **ConfigMap** (params only): read a value out of a config file mounted from a ConfigMap, instead of an env var: `{ "configmap": { "volume": "app-config" }, "key": "config.yml", "value_selector": ".database.host", "env_var_name": "DB_HOST"
  • Network accessline 453
    Runs [Liquibase](https://docs.liquibase.com) changelogs (XML, YAML, JSON, or formatted SQL). Liquibase records applied changesets in a `DATABASECHANGELOG` table, so re-runs apply only what's new. It starts from a single root changelog rathe
  • Access to secretsline 504
    [Credential-related source omitted]
  • Access to secretsline 511
    [Credential-related source omitted]
  • Access to secretsline 512
    [Credential-related source omitted]
  • Network accessline 637
    - `provider`: which storage service hosts the branch bucket. Optional, defaults to `"AWS"` ([Amazon S3](https://aws.amazon.com/s3/)) — the only provider today.
  • Network accessline 640
    - Fields that **don't apply** (rejected, or a config error): `version`, `image` (no container to run), `location` (the branch always lives in your cloud account), `profile` (no `s3BranchConfig` in the Helm chart), `migrations` (no database 
  • Network accessline 642
    - Permissions: the operator clones with its **own** AWS credentials (IAM role assumption via `sa.roleArn` on the operator's Helm chart is the easiest path) — read-only actions on source buckets, plus full control scoped to `arn:aws:s3:::mir
  • Network accessline 648
    Like S3, a [turbopuffer](https://turbopuffer.com) branch is **not a pod**: the operator asks turbopuffer to branch your source namespace into a copy-on-write clone in your own turbopuffer account, and points the target at the clone. There's
  • Access to secretsline 658
    [Credential-related source omitted]
  • Access to secretsline 667
    [Credential-related source omitted]
  • Network accessline 777
    The entries go under `dbBranches` on the workload's `MirrordSplitConfig` — the same resource used for [queue splitting](https://metalbear.com/mirrord/docs/sharing-the-cluster/queue-splitting) (see the `mirrord-kafka`/`mirrord-temporal` skil
  • Access to secretsline 1005
    [Credential-related source omitted]

mirrord/mcp/corpus/skills/mirrord-db-branching/references/troubleshooting.md

  • Network accessline 3
    > Source: https://metalbear.com/mirrord/docs/sharing-the-cluster/db-branching/

mirrord/mcp/corpus/skills/mirrord-header-propagation/README.md

  • Network accessline 36
    - [Queue splitting](https://metalbear.com/mirrord/docs/sharing-the-cluster/queue-splitting)
  • Network accessline 37
    - [HTTP filtering](https://metalbear.com/mirrord/docs/using-mirrord/incoming-traffic/filter-incoming-traffic)
  • Network accessline 38
    - [OpenTelemetry baggage](https://opentelemetry.io/docs/concepts/signals/baggage/)

mirrord/mcp/corpus/skills/mirrord-header-propagation/SKILL.md

  • Network accessline 136
    - **Unit/integration tests** where the repo has them: assert a published message carries `baggage`, and a consumed message with `baggage` produces outgoing calls that carry it. - **Inspect real messages** (read-only): Kafka `kcat -C -t <top
  • Network accessline 138
    - **With mirrord:** run the downstream service locally with a filter on `mirrord-session=<key>` (HTTP `header_filter` or queue `message_filter`) and send `curl -H "baggage: mirrord-session=<key>"` at the edge. Point to the `mirrord-config`,

mirrord/mcp/corpus/skills/mirrord-header-propagation/references/propagation-layer.md

  • Network accessline 49
    // HTTP: wrap the server handler and the client transport. handler = otelhttp.NewHandler(mux, "server") client := &http.Client{Transport: internalOnly{
  • Network accessline 50
    handler = otelhttp.NewHandler(mux, "server") client := &http.Client{Transport: internalOnly{     internal: otelhttp.NewTransport(http.DefaultTransport), external: http.DefaultTransport}}
  • Network accessline 51
    client := &http.Client{Transport: internalOnly{     internal: otelhttp.NewTransport(http.DefaultTransport), external: http.DefaultTransport}} // Outgoing requests must be built with the request's ctx: http.NewRequestWithContext(ctx, ...)
  • Network accessline 173
    headers = {} if is_internal(url): inject(headers) requests.get(url, headers=headers)
  • Network accessline 175
    requests.get(url, headers=headers)
  • Network accessline 245
    const headers: Record<string, string> = {}; if (isInternal(url)) propagation.inject(context.active(), headers); await fetch(url, { headers });
  • Network accessline 247
    await fetch(url, { headers });

mirrord/mcp/corpus/skills/mirrord-kafka/references/kafka-client-config-crd.md

  • Network accessline 13
    | Field | Type | Required | Description | |-------|------|----------|-------------| | `properties` | list of `{name, value}` | Yes | Kafka client properties passed as a `.properties` file. Full list: [librdkafka CONFIGURATION.md](https://gi
  • Network accessline 14
    |-------|------|----------|-------------| | `properties` | list of `{name, value}` | Yes | Kafka client properties passed as a `.properties` file. Full list: [librdkafka CONFIGURATION.md](https://github.com/confluentinc/librdkafka/blob/mast
  • Network accessline 15
    | `properties` | list of `{name, value}` | Yes | Kafka client properties passed as a `.properties` file. Full list: [librdkafka CONFIGURATION.md](https://github.com/confluentinc/librdkafka/blob/master/CONFIGURATION.md) |

mirrord/mcp/corpus/skills/mirrord-kafka/references/mirrord-property-list-crd.md

  • Network accessline 19
    Full list of Kafka client properties: [librdkafka CONFIGURATION.md](https://github.com/confluentinc/librdkafka/blob/master/CONFIGURATION.md).
  • Dangerous shell operationline 204
    [Credential-related source omitted]
  • Dangerous shell operationline 209
    && rm -r "$dir"
  • Dangerous shell operationline 212
    If Secret creation fails, the files stay in `$dir` for a retry; delete it with `rm -r "$dir"` when you are done.

mirrord/mcp/corpus/skills/mirrord-operator/README.md

  • Network accessline 32
    - Kubernetes cluster with admin access, and Helm 3.x - Nodes running Linux kernel 5.4+ with a containerd, CRI-O, or Docker runtime (see "Cluster Requirements" in `SKILL.md`) - A mirrord for Teams license — register at [app.metalbear.com](ht
  • Network accessline 34
    - A mirrord for Teams license — register at [app.metalbear.com](https://app.metalbear.com). No license yet? An agent can start a 7-day Enterprise trial for the user — see "No License Yet? Agent-Started Trials" in `SKILL.md` (confirm with th
  • Network accessline 39
    helm repo add metalbear https://metalbear-co.github.io/charts helm repo update curl https://raw.githubusercontent.com/metalbear-co/charts/main/mirrord-operator/values.yaml --output values.yaml
  • Network accessline 41
    curl https://raw.githubusercontent.com/metalbear-co/charts/main/mirrord-operator/values.yaml --output values.yaml
  • Dangerous shell operationline 51
    rm apikey.txt
  • Network accessline 66
    - [Operator install docs](https://metalbear.com/mirrord/docs/getting-started/installing-mirrord/operator)
  • Network accessline 67
    - [Chart values.yaml](https://raw.githubusercontent.com/metalbear-co/charts/main/mirrord-operator/values.yaml)
  • Network accessline 68
    - [Pricing & plan tiers](https://metalbear.com/mirrord/pricing/)

mirrord/mcp/corpus/skills/mirrord-operator/SKILL.md

  • Network accessline 54
    Authoritative upstream sources: - [Operator install docs](https://metalbear.com/mirrord/docs/getting-started/installing-mirrord/operator)
  • Network accessline 55
    - [Operator install docs](https://metalbear.com/mirrord/docs/getting-started/installing-mirrord/operator)
  • Network accessline 56
    - Chart `values.yaml`: https://raw.githubusercontent.com/metalbear-co/charts/main/mirrord-operator/values.yaml
  • Network accessline 66
    You also need a **mirrord for Teams license**. Register at [app.metalbear.com](https://app.metalbear.com). If there's no license yet, an agent can start a trial for the user once they agree — see [No License Yet? Agent-Started Trials](#no-l
  • Network accessline 94
    helm repo add metalbear https://metalbear-co.github.io/charts helm repo update curl https://raw.githubusercontent.com/metalbear-co/charts/main/mirrord-operator/values.yaml --output values.yaml
  • Network accessline 96
    curl https://raw.githubusercontent.com/metalbear-co/charts/main/mirrord-operator/values.yaml --output values.yaml
  • Network accessline 103
    **A. Cloud API key (default, recommended).** The operator authenticates to the mirrord cloud with a **cloud API key** and obtains its license over the API. Generate the key in the dashboard under **Settings** at [app.metalbear.com](https://
  • Dangerous shell operationline 116
    rm apikey.txt
  • Access to secretsline 120
    [Credential-related source omitted]
  • Network accessline 195
    No trial needed. Running `mirrord operator install` with no flags logs you (or the agent, with your approval) into [app.metalbear.com](https://app.metalbear.com) in the browser (or reuses a recent `mirrord login` from the same machine), cre
  • Network accessline 202
    curl -fsS -X POST https://app.metalbear.com/api/v1/agent/signup \
  • Access to secretsline 207
    [Credential-related source omitted]
  • Network accessline 229
    The operator pod waits for the Secret to appear and starts automatically once it's created — no restart needed. (To create the Secret first instead, the `mirrord` namespace must already exist and be Helm-managed, or `helm install` will fail
  • Network accessline 230
    - **License server** (fully self-hosted) — set `license.licenseServer: http://mirrord-operator-license-server.mirrord.svc`. Here the **license key** is the shared secret the operator uses to authenticate to your server (a value you choose),
  • Network accessline 236
    Reduces startup time and removes the dependency on GitHub's registry. Copy the operator + agent images to your registry (multi-arch copy with [regctl](https://regclient.org/)):
  • Network accessline 280
    Some features allocate more for a session: [copy target](https://metalbear.com/mirrord/docs/using-mirrord/copy-target) makes a full copy of the target pod, DB branching makes a branch database (its own pod for most engines, see [Branch Stor
  • Network accessline 284
    - **OpenShift** — set `openshift: true` in values (renders a SecurityContextConstraints), covering the `mirrord-operator` and `default` service accounts in the mirrord namespace. - **GKE Autopilot** — mirrord is an approved [GKE Autopilot p
  • Network accessline 285
    - **GKE Autopilot** — mirrord is an approved [GKE Autopilot partner](https://docs.cloud.google.com/kubernetes-engine/docs/resources/autopilot-partners), so run the operator as a customer-owned privileged workload by applying an `AllowlistSy
  • Network accessline 365
    - [Operator install docs](https://metalbear.com/mirrord/docs/getting-started/installing-mirrord/operator)
  • Network accessline 366
    - [Chart values.yaml](https://raw.githubusercontent.com/metalbear-co/charts/main/mirrord-operator/values.yaml)
  • Network accessline 367
    - [License server (self-hosted)](https://metalbear.com/mirrord/docs/managing-mirrord/license-server)
  • Network accessline 368
    - [Pricing & plan tiers](https://metalbear.com/mirrord/pricing/)

mirrord/mcp/corpus/skills/mirrord-operator/references/helm-values.md

  • Network accessline 3
    Curated digest of the important knobs in the operator chart. This file is **hand-maintained** — for the exact current defaults and any value not listed here, read the verbatim upstream snapshot in `references/values.yaml` (kept in sync auto
  • Network accessline 4
    https://raw.githubusercontent.com/metalbear-co/charts/main/mirrord-operator/values.yaml
  • Network accessline 33
    Generate the key in the dashboard (**Settings**, [app.metalbear.com](https://app.metalbear.com)); shown once. Rotate/revoke from the dashboard.
  • Network accessline 87
    | `copyTarget.useAgentImage` | `true` | Copy-target dummy container uses the agent image (has `sleep`). | | `jiraWebhookUrl` | unset | mirrord for Jira integration. | | `extraEnv`, `extraVolumes`, `extraVolumeMounts`, `podAnnotations`, `pod
  • Network accessline 89
    | `extraEnv`, `extraVolumes`, `extraVolumeMounts`, `podAnnotations`, `podLabels`, `labels`, `tolerations`, `affinity`, `nodeSelector`, `imagePullSecrets` | — | Standard deployment knobs. As of operator `3.186.0`, each `extraEnv` entry can b

mirrord/mcp/corpus/skills/mirrord-operator/references/troubleshooting.md

  • Network accessline 3
    > Sources: > - https://metalbear.com/mirrord/docs/getting-started/installing-mirrord/operator
  • Network accessline 4
    > - https://metalbear.com/mirrord/docs/getting-started/installing-mirrord/operator
  • Network accessline 5
    > - https://metalbear.com/mirrord/docs/troubleshooting

mirrord/mcp/corpus/skills/mirrord-operator/references/values.yaml

  • Network accessline 544
    #   my-eks-cluster:                    # ← must match the EKS cluster name     #     authType: eks     #     server: https://ABCDEF.gr7.us-east-1.eks.amazonaws.com
  • Network accessline 545
    #     authType: eks     #     server: https://ABCDEF.gr7.us-east-1.eks.amazonaws.com     #     region: us-east-1
  • Network accessline 546
    #     server: https://ABCDEF.gr7.us-east-1.eks.amazonaws.com
  • Network accessline 569
    #   remote-aks:     #     authType: aks     #     server: https://remote-aks-xxxxx.hcp.eastus.azmk8s.io:443
  • Network accessline 570
    #     authType: aks     #     server: https://remote-aks-xxxxx.hcp.eastus.azmk8s.io:443     #     # caData is required for AKS (each cluster has its own self-signed CA).
  • Network accessline 571
    #     server: https://remote-aks-xxxxx.hcp.eastus.azmk8s.io:443
  • Network accessline 597
    #   staging-us-east:     #     authType: bearerToken     #     server: https://staging-us-east.example.com:6443
  • Network accessline 598
    #     authType: bearerToken     #     server: https://staging-us-east.example.com:6443     #     caData: LS0tLS1CRUdJTi...  # base64 encoded CA cert
  • Network accessline 599
    #     server: https://staging-us-east.example.com:6443
  • Network accessline 606
    #   secure-cluster:     #     authType: mtls     #     server: https://secure.example.com:6443
  • Network accessline 607
    #     authType: mtls     #     server: https://secure.example.com:6443     #     caData: LS0tLS1CRUdJTi...  # CA cert
  • Network accessline 608
    #     server: https://secure.example.com:6443
  • Network accessline 643
    # Sets log level for the logs printed to `stdout` by the operator container.   #   # See reference: https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives.
  • Network accessline 644
    #   # See reference: https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives.   logLevel: mirrord=info,operator=info,kube_runtime=warn
  • Network accessline 645
    # See reference: https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives.
  • Network accessline 650
    ## This is independent of the logs printed to `stdout` (controlled by `logLevel`).   ##   ## See reference: https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives.
  • Network accessline 651
    ##   ## See reference: https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives.   # otelLogLevel: mirrord=info
  • Network accessline 652
    ## See reference: https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives.
  • Network accessline 656
    ## This is independent of the logs printed to `stdout` (controlled by `logLevel`).   ## This value may reference values in `operator.extraEnv`, as it appears later in the manifest.   # otelLogExportUrl: https://loki:3100/loki/app/v1/push
  • Network accessline 658
    # otelLogExportUrl: https://loki:3100/loki/app/v1/push
  • Network accessline 660
    ## The URL for OTel traces to be exported to in the cluster. If unset, traces will not be exported.   ## This value may reference values in `operator.extraEnv`, as it appears later in the manifest.   # otelTraceExportUrl: https://tempo:4318
  • Network accessline 662
    # otelTraceExportUrl: https://tempo:4318/v1/traces
  • Network accessline 707
    ##  You can adjust the format of the created kafka topic names to suit your needs. The default value is:   ## `mirrord-tmp-{{RANDOM}}{{FALLBACK}}{{ORIGINAL_TOPIC}}`   ## see docs here https://metalbear.co/mirrord/docs/using-mirrord/queue-sp
  • Network accessline 708
    ## `mirrord-tmp-{{RANDOM}}{{FALLBACK}}{{ORIGINAL_TOPIC}}`   ## see docs here https://metalbear.co/mirrord/docs/using-mirrord/queue-splitting/#customizing-mirrord-created-kafka-topic-names   ## `spec.tmpNameTemplate` of a `MirrordSplitConfig
  • Network accessline 709
    ## see docs here https://metalbear.co/mirrord/docs/using-mirrord/queue-splitting/#customizing-mirrord-created-kafka-topic-names
  • Network accessline 826
    ## If this is set, the operator will attempt to send session duration metrics to the Jira app   ## every time a user session ends.   # jiraWebhookUrl: "https://example.atlassian-dev.net/x1/random-hash"
  • Network accessline 828
    # jiraWebhookUrl: "https://example.atlassian-dev.net/x1/random-hash"
  • Network accessline 1466
    ## use this if you want to add settings that aren't covered by the values.yaml   ## see possible settings here: https://mirrord.dev/docs/reference/configuration/#root-agent
  • Network accessline 1467
    ## see possible settings here: https://mirrord.dev/docs/reference/configuration/#root-agent
  • Network accessline 1507
    # (can be in cluster or not and via any ingress or node-port as long as communication is possible via http/https)   #   # licenseServer: http://mirrord-operator-license-server.mirrord.svc
  • Network accessline 1509
    # licenseServer: http://mirrord-operator-license-server.mirrord.svc

mirrord/mcp/corpus/skills/mirrord-prev-env/README.md

  • Network accessline 67
    - [mirrord Preview Environments docs](https://metalbear.com/mirrord/docs/use-cases/preview-environments)
  • Network accessline 68
    - [Preview Environments in CI docs](https://metalbear.com/mirrord/docs/use-cases/preview-environments-in-ci)
  • Network accessline 69
    - [mirrord-preview GitHub Action](https://github.com/metalbear-co/mirrord-preview)
  • Network accessline 70
    - [Reference workflow (playground)](https://github.com/metalbear-co/playground/blob/main/.github/workflows/preview-shop-pr.yml)

mirrord/mcp/corpus/skills/mirrord-prev-env/SKILL.md

  • Network accessline 34
    - **Never** instruct or generate remote pipe-to-shell installs (downloading a script and executing it via the shell) or similar patterns to install mirrord. If the user needs the CLI, point them to the [official mirrord installation docs](h
  • Network accessline 50
    - A **Headless Service** routes filtered traffic to the preview without consuming a cluster IP. - An **environment key** is the unifying identifier. It scopes HTTP/queue traffic filtering, ties together multiple preview pods, can drive data
  • Network accessline 51
    - An **environment key** is the unifying identifier. It scopes HTTP/queue traffic filtering, ties together multiple preview pods, can drive database branches, and lets developers share the same preview. It is auto-generated if you don't sup
  • Network accessline 52
    - **Reaching a preview** requires sending the filter header (e.g. `baggage: mirrord-session=<key>`). Developers can inject it with the [mirrord Browser Extension](https://metalbear.com/mirrord/docs/using-mirrord/incoming-traffic/debug-from-
  • Network accessline 64
    | **CLI** | mirrord CLI **3.189.0+**. (The CI Action installs the latest automatically.) | | **Helm flag** | The operator must be deployed with preview environments enabled (see below). | | **License** | Preview environments require the **E
  • Network accessline 65
    | **Helm flag** | The operator must be deployed with preview environments enabled (see below). | | **License** | Preview environments require the **Enterprise** plan. A [free trial](https://app.metalbear.com/account/sign-up) is minted as En
  • Network accessline 66
    | **License** | Preview environments require the **Enterprise** plan. A [free trial](https://app.metalbear.com/account/sign-up) is minted as Enterprise, so previews work for its duration; an agent working on a cluster with no license can of
  • Network accessline 177
    curl -H "baggage: mirrord-session=alice-checkout-fix" https://staging.example.com/checkout
  • Network accessline 281
    `mirrord preview up` starts a preview for every service in a [`mirrord-up.yaml`](https://metalbear.com/mirrord/docs/using-mirrord/multiple-concurrent-sessions) that has an image, all under one key — services already defined there need no se
  • Network accessline 313
    By default, reaching a preview requires injecting the `baggage: mirrord-session=<key>` header — fine for developers (via the [mirrord Browser Extension](https://metalbear.com/mirrord/docs/using-mirrord/incoming-traffic/debug-from-browser) o
  • Network accessline 373
    [`metalbear-co/mirrord-preview`](https://github.com/metalbear-co/mirrord-preview) installs the mirrord CLI, builds a `mirrord.json` from inputs, and runs `mirrord preview start` / `mirrord preview stop` for you. `{{ key }}` in the filter is
  • Network accessline 585
    - [mirrord Preview Environments docs](https://metalbear.com/mirrord/docs/use-cases/preview-environments)
  • Network accessline 586
    - [Preview Environments in CI docs](https://metalbear.com/mirrord/docs/use-cases/preview-environments-in-ci)
  • Network accessline 587
    - [mirrord-preview GitHub Action](https://github.com/metalbear-co/mirrord-preview)
  • Network accessline 588
    - [mirrord Browser Extension (set the header for reviewers)](https://metalbear.com/mirrord/docs/using-mirrord/incoming-traffic/debug-from-browser)
  • Network accessline 589
    - [Reference workflow (playground)](https://github.com/metalbear-co/playground/blob/main/.github/workflows/preview-shop-pr.yml)
  • Network accessline 590
    - [mirrord config options](https://metalbear.com/mirrord/docs/config/options)

mirrord/mcp/corpus/skills/mirrord-propagation-discovery/README.md

  • Network accessline 42
    - [Inspecting live traffic with `mirrord dump`](https://metalbear.com/mirrord/docs/using-mirrord/incoming-traffic/inspect-live-traffic)
  • Network accessline 43
    - [Filtering incoming traffic](https://metalbear.com/mirrord/docs/using-mirrord/incoming-traffic/filter-incoming-traffic)
  • Network accessline 44
    - [Stealing HTTPS traffic](https://metalbear.com/mirrord/docs/using-mirrord/incoming-traffic/steal-https)

mirrord/mcp/corpus/skills/mirrord-propagation-discovery/SKILL.md

  • Network accessline 42
    1. **Present:** on every request of the flow at that hop. 2. **Unique:** it separates one developer's traffic from everyone else's, either per request (a correlation id the developer mints) or per identity (a claim or tenant only that devel
  • Network accessline 44
    3. **Controllable:** the developer can set it at the edge (`curl -H`, the mirrord browser extension, a test client) or owns the identity it names (their own user or tenant).
  • Network accessline 66
    Anything else (no package manager, locked-down machines): point to the [CLI install docs](https://metalbear.com/mirrord/docs/getting-started/installing-mirrord/cli) and let the user install a release binary. Version notes: port auto-detecti
  • Network accessline 168
    ## mirrord.json <complete config: target, namespace, mode mirror, ports, http_filter with {{ key }}, probes excluded> <the exec command and the curl header the developer sends>
  • Network accessline 170
    <the exec command and the curl header the developer sends>

mirrord/mcp/corpus/skills/mirrord-propagation-discovery/references/identifier-catalog.md

  • Network accessline 7
    | **Present** | The value reaches every hop, on every request in the flow | Presence per hop ≈ 100% in the dump stats; the probe value shows up in every hop's dump | | **Unique** | It separates one developer's traffic from everyone else's. 
  • Network accessline 9
    | **Controllable** | The developer can put their own value on the request at the edge, or own the identity the value refers to | Can be set with `curl -H`, the mirrord browser extension, or a test account the developer owns |

mirrord/mcp/corpus/skills/mirrord-propagation-discovery/references/reading-dumps.md

  • Network accessline 82
    PROBE="probe-$(date +%s)-$RANDOM" TRACE_ID=$(printf '%032x' "$RANDOM$RANDOM$RANDOM") curl -sS -m 20 -o /dev/null "$EDGE_URL/v1/orders" \
  • Network accessline 83
    TRACE_ID=$(printf '%032x' "$RANDOM$RANDOM$RANDOM") curl -sS -m 20 -o /dev/null "$EDGE_URL/v1/orders" \   -H "baggage: mirrord-session=$PROBE" \
  • Network accessline 84
    [Credential-related source omitted]
  • Access to secretsline 84
    [Credential-related source omitted]
  • Access to secretsline 89
    [Credential-related source omitted]
  • Dangerous shell operationline 136
    - Write logs to a temp directory outside the repository and delete them when done (`rm -rf "$DUMP_DIR"`).

mirrord/mcp/corpus/skills/mirrord-propagation-discovery/references/report-template.md

  • Network accessline 9
    **Filter on:** the `mirrord-session` member of the `baggage` header. **Why:** it reached 3 of 4 services with the value sent at the edge, the developer sets it per request (`curl -H`, browser extension), and the OpenTelemetry Node and Java 
  • Network accessline 10
    **Why:** it reached 3 of 4 services with the value sent at the edge, the developer sets it per request (`curl -H`, browser extension), and the OpenTelemetry Node and Java agents on those services already forward it. No code change is needed
  • Network accessline 22
    | Service | Port | What arrives instead | Why it is dropped | Fix (who) | |---------|------|----------------------|-------------------|-----------| | `deployment/billing` | 8080 | `traceparent` with a **new** trace id, no `baggage`, `author
  • Network accessline 24
    | `deployment/billing` | 8080 | `traceparent` with a **new** trace id, no `baggage`, `authorization` is a service token | `inventory` calls billing through a hand-built `http.Client` without the OTel transport, so no context is injected | w
  • Network accessline 37
    | `baggage` mirrord-session | ✅ | ✅ | ✅ | ❌ | per request | yes | **chosen** | | `tracestate` mirrord-session | ✅ | ✅ | ❌ rewritten by Java agent | ❌ | per request | yes | no | | `traceparent` trace-id | ✅ | ✅ | ✅ | ❌ new trace | per reques
  • Network accessline 38
    | `tracestate` mirrord-session | ✅ | ✅ | ❌ rewritten by Java agent | ❌ | per request | yes | no | | `traceparent` trace-id | ✅ | ✅ | ✅ | ❌ new trace | per request | yes (curl only) | runner-up, same gap | | `x-request-id` | ✅ rewritten by N
  • Network accessline 39
    | `traceparent` trace-id | ✅ | ✅ | ✅ | ❌ new trace | per request | yes (curl only) | runner-up, same gap |

mirrord/mcp/corpus/skills/mirrord-quickstart/README.md

  • Network accessline 26
    Use the [official installation guide](https://mirrord.dev/docs/overview/quick-start/) — avoid downloading and executing install scripts via the shell from the network. Options include approved package managers, pinned release binaries (veri
  • Network accessline 46
    - [mirrord Documentation](https://metalbear.com/mirrord/docs/)
  • Network accessline 47
    - [GitHub Repository](https://github.com/metalbear-co/mirrord)

mirrord/mcp/corpus/skills/mirrord-quickstart/SKILL.md

  • Network accessline 38
    **Cluster requirements:** Kubernetes `1.22` or later, with nodes on Linux kernel `5.4`+ and a containerd, CRI-O, or Docker runtime. Some features need a newer Kubernetes version (for example, the agent as an ephemeral container needs `1.23`
  • Network accessline 46
    **Official guide:** Follow [mirrord installation documentation](https://mirrord.dev/docs/overview/quick-start/) for supported options (package managers, pinned release binaries with checksum verification, etc.).
  • Network accessline 114
    curl http://<remote-service-url>
  • Network accessline 119
    Once the first session works, point users to: - **`mirrord ui`** — launches a local dashboard showing every active session on the machine, with a live event stream (HTTP requests, file operations, DNS, outgoing connections). See [Local UI](
  • Network accessline 120
    - **`mirrord ui`** — launches a local dashboard showing every active session on the machine, with a live event stream (HTTP requests, file operations, DNS, outgoing connections). See [Local UI](https://metalbear.com/mirrord/docs/using-mirro
  • Network accessline 121
    - **`mirrord up`** — for debugging several microservices together from one `mirrord-up.yaml` (compose-style). Point to the **mirrord-up** skill. - **Browser extension** — routes requests made from Chrome to the local process, for testing an
  • Network accessline 122
    - **Browser extension** — routes requests made from Chrome to the local process, for testing an HTTP-filtered session from a browser instead of `curl`. See [Debugging from Browser](https://metalbear.com/mirrord/docs/using-mirrord/incoming-t

mirrord/mcp/corpus/skills/mirrord-temporal/README.md

  • Network accessline 41
    - [Temporal queue splitting docs](https://metalbear.com/mirrord/docs/sharing-the-cluster/queue-splitting/temporal)
  • Network accessline 42
    - [Queue Splitting overview](https://metalbear.com/mirrord/docs/sharing-the-cluster/queue-splitting)

mirrord/mcp/corpus/skills/mirrord-up/README.md

  • Network accessline 71
    - [Multiple concurrent sessions (mirrord up)](https://metalbear.com/mirrord/docs/using-mirrord/multiple-concurrent-sessions)

mirrord/mcp/corpus/skills/mirrord-up/SKILL.md

  • Network accessline 17
    Help users create and run **multiple concurrent mirrord sessions** from one config file — think docker compose, but for mirrord — as documented in [Multiple concurrent sessions (mirrord up)](https://metalbear.com/mirrord/docs/using-mirrord/
  • Network accessline 272
    The whole `mirrord-up.yaml` file is rendered with [Tera](https://keats.github.io/tera/docs/) (Jinja2-style syntax) **before** it is parsed. Available:
  • Network accessline 347
    - [Multiple concurrent sessions (mirrord up)](https://metalbear.com/mirrord/docs/using-mirrord/multiple-concurrent-sessions)

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 189 facts

and 139 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md mirrord/mcp/corpus/skills/mirrord-chaos/SKILL.md.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md mirrord/mcp/corpus/skills/mirrord-chaos/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md mirrord/mcp/corpus/skills/mirrord-chaos/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md mirrord/mcp/corpus/skills/mirrord-chaos/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md mirrord/mcp/corpus/skills/mirrord-chaos/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Add this badge to your README

It updates every night and links to this page.

metalbear-co/mirrord: #270 on hotskills, 5.4k stars

[![metalbear-co/mirrord on hotskills](https://hotskills.dev/badge/metalbear-co-mirrord.svg)](https://hotskills.dev/skill/metalbear-co-mirrord/)