CascadeGateway
# CascadeGateway โก
### Hardware-Adaptive Local LLM & Cloud Cascading Architecture
[](https://opensource.org/licenses/MIT)
[](https://python.org)
[](https://ollama.com)
[](https://platform.openai.com)
[](https://modelcontextprotocol.io)
**CascadeGateway** is an intelligent, hardware-adaptive cascading proxy that routes AI queries between local GPUs (via Ollama at **$0 token cost**) and frontier cloud models (Google Gemini, OpenAI, etc.).
It automatically detects your GPU hardware and physical VRAM on startupโwhether running a flagship **RTX 5090 (32GB)**, **RTX 4090 (24GB)**, mainstream **RTX 3080 (10GB)**, or Apple Siliconโand dynamically selects and sizes the optimal models without requiring manual reconfiguration.
```mermaid
flowchart TD
Client["AI Client: Cursor / Continue / Antigravity"] --> Gateway["CascadeGateway :8000/v1"]
Gateway --> Phase1{"Phase 1: Structural Guard"}
Phase1 -->|"Context > 32k or Tools"| CloudFallback["Cloud Fallback: Gemini"]
Phase1 -->|"Passed"| Phase2{"Phase 2: Lexical Automaton <1ms"}
Phase2 -->|"Architecture / Reasoning"| LocalArchitect["Local Architect: DeepSeek-R1 / Gemma 4 (RTX 5090)"]
Phase2 -->|"Coding / Tests / Routine"| LocalBuilder["Local Builder: Qwen 2.5 Coder 32B (RTX 5090)"]
LocalArchitect --> Phase3{"Phase 3: 3-Token Lookahead"}
LocalBuilder --> Phase3
Phase3 -->|"Stalled / Timeout"| CloudFallback
Phase3 -->|"Healthy Stream"| LoopBreaker["Sliding-Window Loop Breaker"]
LoopBreaker --> ClientStream["SSE Stream to Client"]
CloudFallback --> ClientStream
VerifyRoute["Asymmetric Verification: /verify"] --> LocalDraft["Local Generator: RTX 5090"]
LocalDraft --> CloudCritic["Cloud Critic: Gemini Flash"]
CloudCritic --> ClientStream
Gateway -. Telemetry .-> HUD["๐ฅ๏ธ Always-On-Top Desktop HUD"]
```
---
## ๐ Key Features
* **๐ฅ๏ธ Always-On-Top Desktop HUD**: Sleek, frameless, draggable obsidian overlay (`#0b0f19`) that sits above your IDEs next to the clock or anywhere on screen. Displays live routing decisions (๐ข Local Builder, ๐ฃ Local Architect, ๐ต Asymmetric Verify, ๐ Gemini Cloud), real-time VRAM gauge (GB, %, ยฐC, W), decision latency (sub-5ms), prompt snippet, dollar savings counter, pin toggle, compact mini-mode, and 1-click mode switcher buttons.
* **๐ง Local GPU Architectural Reasoning**: True multi-model orchestration on local silicon. System design, race condition, thread safety, and algorithmic queries are dispatched directly to the local reasoning model (`deepseek-r1:14b` or `gemma4:26b`) on the RTX 5090 rather than escaping to cloud tokens. Routine code generation is routed to `qwen2.5-coder:32b`.
* **Hardware-Adaptive VRAM Sizing**: Automatically profiles your GPU (`nvidia-smi` / Metal / CPU) and assigns the optimal model tier.
* **Autonomous $0 Offload**: Resolves 85โ95% of routine coding, unit tests, refactoring, and QA directly on local VRAM.
* **Dynamic Token Biasing Engine**:
* **Adaptive Mode**: Automatically increases local GPU bias as cloud token budgets get consumed.
* **Manual Slider**: Fine-tune local preference from 0% (Quality First) to 100% (Maximum Local Offload).
* **Strict Local**: 100% execution on local VRAM with automatic cloud overflow only if context exceeds physical limit.
* **๐ง Multi-Task Workflow Modes & Interactive Review Gate**:
* **๐ง Architect & Builder**: Reasoning model drafts architecture, data contracts, and edge cases โ Pauses at a **Human Review Gate** โ You approve or refine โ Builder synthesizes production code.
* **๐ Solo Sprint**: Instant local coding via `qwen2.5-coder:32b` for quick functions, tests, and scripts.
* **๐ Deep Context**: Gemini 2.5 Flash ingests massive repository files (1M context) โ modular execution on local 5090.
* **๐ฌ Math & Algo Proof**: Deep Chain-of-Thought formal verification for cryptography and concurrency algorithms.
* **๐ก๏ธ Asymmetric Verification (`/verify`)**: High-speed local draft synthesis on RTX 5090 ($0) combined with an anonymous strict cloud auditor (Gemini) providing production-grade critique and code enhancement without leaking full history.
* **๐ก๏ธ Sub-5ms Intelligent Routing & 3-Token Lookahead Failover**: Three-phase classification pipeline: Phase 1 Structural & VRAM Budget Validation (<1ms, prevents swapping to system RAM), Phase 2 Single-Pass Lexical Scan (<1ms), and Phase 3 Resilient Streaming with an in-memory 3-token lookahead buffer that transparently replays stalled local requests to Gemini Cloud without dropping client connections or throwing IDE error popups.
* **๐ Anti-Hallucination Sliding-Window Loop Breaker**: In-flight ring buffer tracking token emission sequences (lengths 2, 3, 4 repeated โฅ 4ร), terminating runaway generative loops immediately.
* **โก 1-Click IDE Auto-Configuration**: Automated zero-friction setup endpoint (`/api/ide/auto-config`) and UI button for VSCode Continue (`~/.continue/config.json`) and Cursor.
* **๐ฐ Zero-Surprise Dollar Savings Telemetry**: Hardware-native token accounting (`eval_count`) calculating real-time dollar savings based on commercial frontier rates ($3.00/1M tokens).
* **โก Persistent GPU VRAM Residency & Zero-Cold-Start**: Models remain permanently resident in GPU VRAM (`keep_alive: -1`) across idle periods and tasks, ensuring instant zero-delay responses. Includes manual 1-Click **"Pause GPU"** (instant VRAM purge for AAA gaming) and **"Warm GPU"** (preloads weights into VRAM).
* **Native Model Context Protocol (MCP)**: Exposes a high-performance Streamable HTTP and Stdio MCP endpoint for **Google Antigravity** and **Claude Desktop**.
* **๐๏ธ Dynamic Model Selection**: Select any installed local model for both the **Architect** role (`deepseek-r1:14b`, `gemma4:26b`, etc.) and the **Builder** role (`qwen2.5-coder:32b`, etc.) directly from the Web UI toolbar or Windows Tray submenus. Automatically detects newly pulled models from Ollama without restarting the gateway.
* **Zero-Window Background Tray App**: Runs silently in the system tray, boots with Windows/Linux, and includes single-instance mutex protection.
* **๐ฎ 1-Click Pause & Free GPU (Instant VRAM Purge)**: Evicts loaded models from VRAM in <1s via a dedicated button on the Web UI, Windows Tray, or `POST /api/models/unload`. Frees 20โ30+ GB of VRAM immediately for AAA gaming, Blender, or video editing without terminating the server. Models reload automatically on demand when coding.
* **Live Hardware Telemetry**: In-browser control center showing real-time VRAM allocation, GPU power draw (W), temperature (ยฐC), lifetime token savings, and an interactive prompt runner.
* **Standard OpenAI-Compatible API**: Seamless drop-in replacement (`/v1/chat/completions`) for Cursor, VSCode (Continue.dev), Aider, Claude Dev, and custom scripts.
---
## ๐ง The Interactive Review Gate
```mermaid
sequenceDiagram
autonumber
actor Dev as You (Developer)
participant Arch as ๐ง Architect - DeepSeek-R1 / Gemma 4
participant Gate as ๐ Review Gate - You in the Loop
participant Build as โก Builder - Qwen 2.5 Coder 32B
Dev->>Arch: "Add rate-limiting and burst protection to API routes"
Note over Arch: Deep CoT: Identifies race conditions,<br/>evaluates Redis vs in-memory,<br/>drafts interface contracts.
Arch->>Gate: Presents Architectural Blueprint + Edge Cases
Note over Gate: PAUSE: No code written yet.<br/>You review the proposed interfaces & strategy.
alt If you want adjustments
Dev->>Gate: "Use Redis, and add IPv6 CIDR subnet matching"
Gate->>Arch: Quick amendment - 100 tokens
Arch->>Gate: Updated spec
end
Dev->>Gate: "Approve & Build"
Gate->>Build: Sends final structured specification
Note over Build: Zero ambiguity.<br/>High-speed code synthesis - 70 t/s.
Build-->>Dev: Delivers complete implementation + unit tests - $0 Cost
```
---
## ๐ VRAM Hardware Sizing Matrix
| Hardware Tier | Supported GPUs | VRAM | Recommended Coding Model | General / Reasoning | Expected Speed |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **Tier 1 (Flagship)** | RTX 5090, 4090, 3090, A6000 | **24 GB โ 32 GB** | `qwen2.5-coder:32b` | `gemma4:26b` / `deepseek-r1:32b` | **60 โ 75+ tokens/sec** |
| **Tier 2 (Enthusiast)** | RTX 4080, 4070 Ti, 4070, 3080 12GB | **12 GB โ 16 GB** | `qwen2.5-coder:14b` | `mistral-small:22b-q4` | **45 โ 55+ tokens/sec** |
| **Tier 3 (Mainstream)** | RTX 3080 10GB, 3070, 4060 Ti, 2080 Ti | **8 GB โ 10 GB** | `qwen2.5-coder:7b` | `llama3.1:8b` | **85 โ 100+ tokens/sec** |
| **Tier 4 (Entry / CPU)** | RTX 3050, 4060 laptop, Apple Silicon, CPU | **< 8 GB** | `qwen2.5-coder:1.5b` / `3b` | `llama3.2:3b` | **40 โ 70 tokens/sec** |
---
## โก Quick Start
### Prerequisites
1. **[Ollama](https://ollama.com/)** installed and running on your machine.
2. **Python 3.10+** installed.
3. (Optional) A free API key from [Google AI Studio](https://aistudio.google.com/app/apikey) for cloud fallback.
### Windows (One-Click)
```cmd
git clone https://github.com/jadberro/CascadeGateway.git
cd CascadeGateway
scripts\setup.bat
```
*Creates `.venv`, installs dependencies, auto-generates your desktop shortcut, and places an auto-start shortcut in your Windows Startup menu.*
### Linux / macOS
```bash
git clone https://github.com/jadberro/CascadeGateway.git
cd CascadeGateway
chmod +x scripts/setup.sh
./scripts/setup.sh
```
---
## ๐ ๏ธ Connecting Your IDEs & Tools
Once running, the control center is available at **`http://127.0.0.1:8000/`**.
### 1. Google Antigravity
Add to `~/.gemini/config/mcp_config.json`:
```json
{
"mcpServers": {
"rtx5090-cascade": {
"serverUrl": "http://127.0.0.1:8000/mcp"
}
}
}
```
*Antigravity automatically detects the toolset (`query_local_5090`, `cascade_llm`, `get_cascade_metrics`) and dynamically dispatches code generation directly to your GPU.*
### 2. Cursor
* Navigate to **Settings > Models > OpenAI API Key**.
* Set **Base URL**: `http://127.0.0.1:8000/v1`
* Set **API Key**: `cascading-local` (any string)
* Model: `cascade-auto`
### 3. Continue.dev (`config.json`)
```json
{
"models": [
{
"title": "Cascade Gateway (Local + Cloud)",
"provider": "openai",
"model": "cascade-auto",
"apiBase": "http://127.0.0.1:8000/v1",
"apiKey": "cascading-local"
}
],
"tabAutocompleteModel": {
"title": "Local Autocomplete",
"provider": "openai",
"model": "cascade-auto",
"apiBase": "http://127.0.0.1:8000/v1",
"apiKey": "cascading-local"
}
}
```
### 4. Claude Desktop (`claude_desktop_config.json`)
```json
{
"mcpServers": {
"local-cascade": {
"serverUrl": "http://127.0.0.1:8000/mcp"
}
}
}
```
### 5. Python OpenAI SDK
```python
from openai import OpenAI
client = OpenAI(
base_url="http://127.0.0.1:8000/v1",
api_key="cascading-local"
)
response = client.chat.completions.create(
model="cascade-auto",
messages=[
{"role": "user", "content": "Write an optimized LRU cache in Python."}
]
)
print(response.choices[0].message.content)
```
---
## ๐ Repository Architecture
CascadeGateway is structured as a modern, modular Python package:
```text
CascadeGateway/
โโโ src/
โ โโโ cascadegateway/
โ โโโ core/ # Hardware profiler, model sizing & routing engine
โ โ โโโ config.py # YAML config & environment loader
โ โ โโโ hardware.py # GPU VRAM auto-profiling (5090/4090/etc.)
โ โ โโโ classifier.py # Phase 1 structural validation & Phase 2 regex automaton (<1ms)
โ โ โโโ streaming.py # Phase 3 lookahead failover, loop breaker & asymmetric audit
โ โ โโโ router.py # Biasing engine, metrics & model resolution
โ โโโ api/ # Modular FastAPI endpoints
โ โ โโโ server.py # App initialization, SSE streaming & /v1/chat/completions
โ โ โโโ pipeline.py # Architect, Review Gate & Builder endpoints
โ โ โโโ models.py # Pause & Free GPU (VRAM purge) & 1-click IDE auto-config
โ โโโ web/ # Clean decoupled web assets & responsive UI
โ โ โโโ templates/
โ โ โ โโโ dashboard.html # Responsive HTML5 dashboard & real-time telemetry
โ โ โโโ static/
โ โ โโโ css/dashboard.css
โ โ โโโ js/dashboard.js
โ โโโ hud/ # Always-On-Top Desktop HUD & Telemetry Overlay
โ โ โโโ __init__.py
โ โ โโโ overlay.py # Tkinter floating dark obsidian window
โ โโโ tray/ # Windows system tray controller
โ โ โโโ app.py # Pystray background service & menus
โ โโโ mcp/ # Model Context Protocol endpoints
โ โ โโโ __init__.py
โ โ โโโ server.py # Antigravity & Claude Desktop integration
โโโ scripts/ # Platform launchers & utilities
โ โโโ start_cascade.bat # Windows batch launcher
โ โโโ start_tray.vbs # Silent windowless tray runner
โ โโโ start_hud.bat # Desktop HUD launcher
โ โโโ start_hud.vbs # Silent windowless HUD launcher
โ โโโ setup.bat / setup.sh # One-click installers
โ โโโ create_shortcuts.ps1 # Desktop & startup shortcut generator
โโโ tests/ # Comprehensive automated test suites
โ โโโ test_gateway.py # End-to-end API integration tests
โ โโโ test_resilience.py # Sub-5ms SLA, structural validation & lookahead tests
โ โโโ test_new_features.py # Loop breaker, IDE auto-config, dollar savings & /verify tests
โโโ assets/ # Icons & diagrams
โโโ config.yaml # Gateway configuration
โโโ pyproject.toml # Modern pip/uv packaging metadata
โโโ requirements.txt
```
---
## ๐ก API Reference
| Endpoint | Method | Description |
| :--- | :--- | :--- |
| `/v1/chat/completions` | `POST` | OpenAI-compatible chat completion endpoint supporting resilient SSE streaming, lookahead failover, loop breaking, and diagnostic headers (`X-Cascade-*`). |
| `/v1/models` | `GET` | Returns available virtual model aliases (`cascade-auto`, `local-5090`) and physical Ollama models. |
| `/api/hud/state` | `GET` | **Desktop HUD Telemetry**: Real-time status, active route, model, VRAM used/total, temp (ยฐC), power (W), latency, and dollar savings. |
| `/api/hardware` | `GET` | Real-time GPU telemetry: VRAM allocation, temperature, power draw (W), and detected hardware tier. |
| `/api/models/unload` | `POST` | **Instant VRAM Purge ("Pause GPU")**: Evicts loaded models to 0 MB VRAM in <1s for AAA gaming or rendering. |
| `/api/models/preload` | `POST` | **Warm GPU**: Preloads and pins model into VRAM with indefinite residency (`keep_alive: -1`). |
| `/api/ide/auto-config` | `POST` | **1-Click IDE Setup**: Injects CascadeGateway configuration into `~/.continue/config.json` and detects Cursor environments. |
| `/api/workflow/mode` | `POST` | Sets active workflow mode (`architect`, `builder`, `solo`, `verify`, `deep_context`, `math`). |
| `/metrics` | `GET` | Telemetry: exact hardware token accounting (`eval_count`), local offload percentage, and real-time dollar savings. |
| `/mcp` | `POST` | Model Context Protocol streamable HTTP endpoint for Google Antigravity and Claude Desktop. |
| `/` | `GET` | Interactive browser control center, real-time hardware gauges, and prompt workbench. |
---
## โ๏ธ Configuration (`config.yaml`)
```yaml
server:
host: "127.0.0.1"
port: 8000
local:
provider: "ollama"
base_url: "http://127.0.0.1:11434"
# Set empty to let the hardware profiler auto-select the best model for your GPU
primary_model: ""
max_context_tokens: 32768
timeout_seconds: 120
cloud:
provider: "gemini"
default_model: "gemini-2.5-flash"
pro_model: "gemini-2.5-pro"
max_context_tokens: 1048576
biasing:
mode: "adaptive" # "adaptive", "manual", or "local_only"
bias_factor: 0.35 # Baseline local bias (0.0 to 1.0)
cloud_token_budget: 500000
allow_context_overflow_to_cloud: true
```
---
## ๐ License
This project is licensed under the [MIT License](LICENSE).
TDQS
Scored across 3 tools
query_local_5090 and cascade_llm both execute queries, but the descriptions clearly distinguish local-only vs cascading backends. get_cascade_metrics is clearly a metrics tool. Minor overlap remains in the query execution purpose, but an agent can tell them apart.
All names are snake_case, but the patterns are mixed: query_local_5090 starts with a verb, cascade_llm is a noun phrase, and get_cascade_metrics is verb_noun. Readable but not a predictable convention.
Three tools are well-scoped for a cascading LLM gateway: local query, cascaded query, and metrics. Each tool has a clear role and the count avoids redundancy.
The core operationsโrun a local query, run a cascaded query, and monitor metricsโare covered. However, there is no tool to configure or set dynamic biasing, which is a minor gap for controlling gateway behavior.