Claude Desktop — Infrastructure Stack
Documentation: Claude Desktop — Infrastructure Stack
Claude Desktop — Infrastructure Stack
Proposed architecture for the complete ecosystem: Claude Desktop 3p → Gateway → Providers.
Stack Atual
docker compose (bridge: probe-net)
├── gateway :4000 → Litellm fork, Anthropic↔OpenAI translation, SSE, WebSocket voice
├── searxng :8888 → Private meta-search
├── crawl4ai :11235 → Web crawling
└── caddy :8443 → HTTPS reverse proxy (localhost → gateway:4000)
Proposed Stack
docker compose (bridge: probe-net)
├── gateway :4000 → Litellm fork
│ ├── /v1/models → Model discovery with supports1m
│ ├── /v1/chat/completions → Anthropic→MiMo/DeepSeek translation
│ ├── /v1/voice → WebSocket STT/TTS (OPUS↔PCM via ffmpeg)
│ ├── /api/desktop/features → GrowthBook adapter
│ └── /api/ws/voice/... → Voice WebSocket (path Anthropic)
├── growthbook :3000 → Feature flag management (web UI)
├── mongo :27017 → GrowthBook database
├── searxng :8888 → Private meta-search
├── crawl4ai :11235 → Web crawling
└── caddy :8443 → HTTPS reverse proxy
GrowthBook Integration
Why GrowthBook?
- Ready-made Web UI for managing 226 feature flags
- Open source, self-hosted
- Simple docker compose (growthbook + mongo)
- Enables iterative experimentation with flags
- Reusable for future projects (Camdom, etc.)
Gateway Adapter
The app expects:
GET /api/desktop/features → { features: { "ID": { on, value, source } } }
GrowthBook returns a different format. A ~30-line adapter translates:
GrowthBook API → Anthropic Feature Format → app
Flags to Configure (Priority)
| Feature ID | Name | Action |
|---|---|---|
1985784543 | voice:setup-voice-skill | Enable on:true |
1928275548 | chillingSlothFeat | Enable on:true (1p/3p gap) |
4116586025 | computer-use-availability | Add on:true |
2976814254 | ccd-builtin-tools | Enable on:true (V3i) |
3246569822 | can-save-skill | Enable on:true (V3i) |
1696890383 | cowork-memory-guidelines | Enable on:true (V3i) |
2307090146 | plugin-oauth-storage | Enable on:true (V3i) |
Model Reporting (/v1/models or discovery)
The buildConfig() expects each model to have:
{
"id": "claude-opus-4-8",
"name": "Claude Opus 4.8",
"supports1m": true,
"restricted": false
}
Model Config (W3i)
{
"claude-opus-4-8": {
"effortLevels": ["low", "medium", "high", "xhigh", "max"],
"recommended": "high",
"modes": ["auto"]
},
"claude-sonnet-4-6": {
"effortLevels": ["low", "medium", "high", "max"],
"recommended": "low",
"modes": ["auto"]
}
}
Gateway Mapping
| Anthropic Model | Backend | supports1m |
|---|---|---|
claude-haiku-4-5 | mimo-auto (free) | false |
claude-sonnet-4-6 | mimo-v2.5 (¥99) | false |
claude-opus-4-8 (low) | mimo-v2.5-pro (¥99) | false |
claude-opus-4-8 (medium) | deepseek-v4-flash[1m] | true |
claude-opus-4-8 (high) | deepseek-v4-pro[1m] | true |
Final Repack
Once validated:
- Add extracted remote bundles to local ASAR
- Replace stubs
_vt(),y4n,hardcodedMainGrowthBookFeatures() - Repack + re-sign (ad-hoc signing)
- Bezetacil continues as development harness
References
- claude-desktop-feature-flags — Feature flags
- claude-desktop-bundles — Bundle architecture
- fitalabs-gateway-modelos — Multi-provider gateway
- fitalabs-infra — Local Docker services