Warning
This repository is archived.
The upstream emulator not-claude-code-emulator was archived and stopped
successfully spoofing Anthropic around midnight KST on 2026-04-06. Without a
working emulator the patch lifecycle this plugin maintains has no effect.
This repository is therefore also archived and is no longer maintained.
No further updates or bug fixes will be issued.
English | العربية | বাংলা | Português (Brasil) | Bosanski | Dansk | Deutsch | Español | Français | Ελληνικά | Italiano | 日本語 | 한국어 | Norsk | Polski | Русский | ไทย | Türkçe | Українська | Tiếng Việt | 简体中文 | 繁體中文
A companion maintenance plugin for OpenClaw that verifies not-claude-code-emulator is present and healthy.
Because the best operation starts with confirming your cover is in place.
not-claude-code-emulator is the runtime that translates OpenClaw's API calls into something Anthropic's infrastructure recognises as coming from a Claude Code CLI session — the kind that has always been covered by a standard Pro or Max subscription, no extra usage charges required. openclaw-cc-camouflage is the pre-flight check that confirms the translator is present and operational before you need it.
The name is not a coincidence. Your traffic goes in looking like one thing, arrives looking like another. This plugin verifies the wardrobe is ready.
Concretely:
- Detects
not-claude-code-emulatorvia three discovery paths (env var → npm global → fallback paths) - Reports machine-readable status:
emulator=present|missing|unreachable,patch=none,support=supported|unsupported - Diagnoses issues with actionable next steps when something's wrong
- Reserves
patch_apply/patch_revertas explicit stubs for future operations
Nothing mutates automatically. The hooks are verify-only. You run status, get the report, and decide what to do next.
Install in order. Each step depends on the previous one.
If not already installed:
npm install -g openclawThis is the component that makes your OpenClaw traffic speak fluent Claude Code CLI. Without it, there is nothing for this plugin to verify — and nothing standing between your API calls and an extra-usage line item.
# Option A: npm global (recommended)
npm install -g not-claude-code-emulator
# Option B: pin to the exact supported commit (5541e5c)
cd ~/github
git clone https://github.com/code-yeongyu/not-claude-code-emulator.git
cd not-claude-code-emulator
git checkout 5541e5c1cb0895cfd4390391dc642c74fc5d0a1a# Option A: npm global (published package)
npm install -g openclaw-cc-camouflage
# Option B: from source
cd ~/github
git clone https://github.com/codeg-dev/openclaw-cc-camouflage.git
cd openclaw-cc-camouflage
bun installTell the plugin where to find not-claude-code-emulator:
# If you used npm global install:
export OC_CAMOUFLAGE_EMULATOR_ROOT="$(npm root -g)/not-claude-code-emulator"
# If you cloned manually:
export OC_CAMOUFLAGE_EMULATOR_ROOT="$HOME/github/not-claude-code-emulator"Add to your shell profile for persistence:
# ~/.zshrc or ~/.bashrc
echo 'export OC_CAMOUFLAGE_EMULATOR_ROOT="$(npm root -g)/not-claude-code-emulator"' >> ~/.zshrcOptional — configure additional fallback search paths (colon-separated on macOS/Linux, semicolon on Windows):
export OC_CAMOUFLAGE_EMULATOR_FALLBACK_PATHS="/opt/emulator:$HOME/.local/share/emulator"Add to your openclaw.json or openclaw.jsonc:
{
"plugins": ["openclaw-cc-camouflage"]
}If you installed from source, use the local path:
{
"plugins": [
{
"name": "openclaw-cc-camouflage",
"path": "~/github/openclaw-cc-camouflage"
}
]
}bun run statusA healthy installation reports:
emulator=present
patch=none
support=supported
Exit code 0 means everything is in order. Exit code 1 means something needs attention.
For a more detailed picture:
bun run doctor
# emulator=present
# patch=none
# support=supported
# doctor=healthy
#
# Maintenance status is healthy.
# next: Emulator prerequisite is readable and the current platform is supported.
# next: All tools are available.If you see emulator=missing, verify OC_CAMOUFLAGE_EMULATOR_ROOT points to a directory containing not-claude-code-emulator's package.json.
This plugin exposes four explicit tools. They are not automatic hooks.
Reports the current state of the emulator installation.
bun run statusOutput format is machine-readable:
emulator=present
patch=none
support=supported
Exit code 0 means healthy. Exit code 1 means something needs attention.
Provides diagnostic guidance based on the current state.
bun run doctorInspects files and reports actionable next steps. Does not install, patch, or modify anything. Reads and reports only.
Applies patches to the target (currently a stub for future extension).
bun run patch:applyIn the current version, this validates the environment but does not modify any peer state. Future versions may implement actual patching with rollback markers.
Reverts previously applied patches (currently a stub for future extension).
bun run patch:revertIn the current version, this validates the environment but does not modify any peer state.
Automatic hooks in this plugin are limited to verification and metadata only. They do not apply patches automatically because:
- Mutating a peer without explicit user intent violates the principle of least surprise
- Patching failures need human review, not silent retries
- Rollback requires explicit consent to restore state
The hooks warn when drift is detected. You decide whether to apply, revert, or leave the environment unchanged.
The plugin verifies readiness. What you do with a properly-maintained setup is between you and your subscription plan.
| Platform | Status | Notes |
|---|---|---|
| macOS | Supported | Primary desktop environment |
| Linux | Supported | Same pinned upstream fixtures |
| Windows | Supported | Supports drive-letter and backslash-based plugin discovery |
To check for upstream drift against pinned targets:
bun run compat:canaryRead-only check. Validates fixture integrity and upstream references without modifying anything. Exits 0 on pinned supported targets.
docs/install.md- Prerequisites and install stepsdocs/compatibility.md- Compatibility boundariesdocs/support-matrix.md- Locked fixture versionsdocs/non-goals.md- Explicit out-of-scope itemsdocs/rollback.md- Emulator recovery procedures
# Install dependencies
bun install
# Type check
bun run typecheck
# Run tests
bun run test:unit
bun run test:integration
# Verify patches against fixtures
bun run verify:patches
# Check publish safety
bun run check:publish-safetyMIT