Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ If applicable, add screenshots to help explain your problem.
- **OS**: [e.g., macOS 14.0, Ubuntu 22.04, Windows 11]
- **Node.js version**: [e.g., 20.10.0]
- **cc-mirror version**: [e.g., 1.0.0]
- **Provider**: [e.g., zai, minimax, openrouter, ccrouter]
- **Provider**: [e.g., zai, minimax, openrouter, ccrouter, mirror, vercel-ai-gateway]

## Additional Context

Expand Down
12 changes: 6 additions & 6 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,12 +102,12 @@ Location: `~/.local/bin/<variant>`

### Provider Auth Modes

| Provider | Auth Mode | Key Variable |
| -------------------- | ---------- | --------------------------- |
| zai, minimax, custom | API Key | `ANTHROPIC_API_KEY` |
| openrouter | Auth Token | `ANTHROPIC_AUTH_TOKEN` |
| ccrouter | Optional | placeholder token |
| mirror | None | user authenticates normally |
| Provider | Auth Mode | Key Variable |
| ----------------------------- | ---------- | --------------------------- |
| zai, minimax, custom | API Key | `ANTHROPIC_API_KEY` |
| openrouter, vercel-ai-gateway | Auth Token | `ANTHROPIC_AUTH_TOKEN` |
| ccrouter | Optional | placeholder token |
| mirror | None | user authenticates normally |

### Model Mapping (env vars)

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -287,14 +287,14 @@ minimax # Run MiniMax variant
## CLI Options

```
--provider <name> mirror | zai | minimax | openrouter | ccrouter | custom
--provider <name> mirror | zai | minimax | openrouter | ccrouter | vercel-ai-gateway | custom
--name <name> Variant name (becomes the CLI command)
--api-key <key> Provider API key
--base-url <url> Custom API endpoint
--model-sonnet <name> Map to sonnet model
--model-opus <name> Map to opus model
--model-haiku <name> Map to haiku model
--brand <preset> Theme: auto | zai | minimax | openrouter | ccrouter | mirror
--brand <preset> Theme: auto | zai | minimax | openrouter | ccrouter | mirror | vercel-ai-gateway
--no-team-mode Disable team mode (not recommended)
--no-tweak Skip tweakcc theme
--no-prompt-pack Skip provider prompt pack
Expand Down
5 changes: 3 additions & 2 deletions docs/architecture/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,16 @@ src/
│ └── prompt-pack/ # System prompt overlays
├── providers/ # Provider templates
│ └── index.ts # zai, minimax, openrouter, ccrouter, mirror
│ └── index.ts # zai, minimax, openrouter, ccrouter, mirror, vercel-ai-gateway
└── brands/ # Theme presets
├── index.ts # Brand registry
├── zai.ts # Gold theme
├── minimax.ts # Coral theme
├── openrouter.ts # Teal theme
├── ccrouter.ts # Sky theme
└── mirror.ts # Silver/chrome theme
├── mirror.ts # Silver/chrome theme
└── vercel.ts # Vercel dark theme
```

---
Expand Down
30 changes: 15 additions & 15 deletions docs/features/mirror-claude.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,20 +70,20 @@ No API key required at setup. When you run `mclaude`, authenticate via:
## 📊 Provider Comparison

```
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ Feature │ zai │ minimax │ openrouter │ mirror │
│ ─────────────────────┼──────────┼──────────┼────────────┼─────────────────│
│ Model │ GLM-4.7 │ M2.1 │ You choose │ Claude (native) │
│ Auth Mode │ API Key │ API Key │ Auth Token │ OAuth or Key │
│ ANTHROPIC_BASE_URL │ ✓ Set │ ✓ Set │ ✓ Set │ ✗ Not set │
│ ANTHROPIC_API_KEY │ ✓ Set │ ✓ Set │ ✗ │ ✗ Not set │
│ Model Mappings │ ✓ Auto │ ✓ Auto │ ✓ Required │ ✗ Not set │
│ Prompt Pack │ ✓ Full │ ✓ Full │ ✗ │ ✗ Pure │
│ Team Mode │ Optional │ Optional │ Optional │ ✓ Default │
│ Config Isolation │ ✓ │ ✓ │ ✓ │ ✓ │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────────────────────
│ Feature │ zai │ minimax │ openrouter │ vercel-ai-gw │ mirror │
│ ─────────────────────┼──────────┼──────────┼────────────┼──────────────┼─────────────────│
│ Model │ GLM-4.7 │ M2.1 │ You choose │ You choose │ Claude (native) │
│ Auth Mode │ API Key │ API Key │ Auth Token │ Auth Token │ OAuth or Key │
│ ANTHROPIC_BASE_URL │ ✓ Set │ ✓ Set │ ✓ Set │ ✓ Set │ ✗ Not set │
│ ANTHROPIC_API_KEY │ ✓ Set │ ✓ Set │ ✗ │ ✗ │ ✗ Not set │
│ Model Mappings │ ✓ Auto │ ✓ Auto │ ✓ Required │ ✓ Required │ ✗ Not set │
│ Prompt Pack │ ✓ Full │ ✓ Full │ ✗ │ ✗ │ ✗ Pure │
│ Team Mode │ Optional │ Optional │ Optional │ Optional │ ✓ Default │
│ Config Isolation │ ✓ │ ✓ │ ✓ │ ✓ │ ✓
└─────────────────────────────────────────────────────────────────────────────────────────────
```

---
Expand All @@ -99,7 +99,7 @@ No API key required at setup. When you run `mclaude`, authenticate via:

### Not For

- **Different models** - use OpenRouter or CCRouter for alternative LLMs
- **Different models** - use OpenRouter, Vercel AI Gateway, or CCRouter for alternative LLMs
- **Cost savings** - Z.ai and MiniMax offer Coding Plan subscriptions
- **Offline use** - Mirror requires Anthropic API access

Expand Down
15 changes: 2 additions & 13 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions src/brands/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { buildMinimaxTweakccConfig } from './minimax.js';
import { buildOpenRouterTweakccConfig } from './openrouter.js';
import { buildCCRouterTweakccConfig } from './ccrouter.js';
import { buildMirrorTweakccConfig } from './mirror.js';
import { buildVercelTweakccConfig } from './vercel.js';

export interface BrandPreset {
key: string;
Expand Down Expand Up @@ -43,6 +44,12 @@ const BRAND_PRESETS: Record<string, BrandPreset> = {
description: 'Reflective silver/chrome theme for pure Claude Code experience.',
buildTweakccConfig: buildMirrorTweakccConfig,
},
'vercel-ai-gateway': {
key: 'vercel-ai-gateway',
label: 'Vercel AI Gateway',
description: 'Minimal dark theme with Vercel AI Gateway brand colors (black, white, cyan).',
buildTweakccConfig: buildVercelTweakccConfig,
},
};

export const listBrandPresets = (): BrandPreset[] => Object.values(BRAND_PRESETS);
Expand Down
Loading