Routes your prompts to the right place: keep simple ones on your local model, send complex ones to the cloud, and block PII / jailbreaks before they reach a model. The routing decision comes from the hosted Compass API; the prompt is then dispatched to your own configured model with your own keys — which never leave your machine.
How it works
prompt --> POST https://api.mpcfintech.com/v1/route (with your pc_ext_ key)
--> { decision: LOCAL_SAFE | CLOUD_COMPLEX | BLOCK_PII | JAILBREAK }
--> LOCAL_SAFE -> dispatch to your local model (e.g. Ollama)
CLOUD_COMPLEX-> dispatch to your cloud model (e.g. OpenAI)
BLOCK_PII / JAILBREAK -> not sent to any model
The extension is a thin client — no model runs in your editor. Compass classifies the prompt on the server (the prompt is processed in memory and discarded, never stored). Dispatch happens locally, so your provider keys and the model's response stay on your machine.
Setup
- Get a free API key at compass.mpcfintech.com (100 requests/day free).
- Run Prompt Compass: Set API Key and paste your
pc_ext_…key. - Configure your own models in Settings (
promptCompass.*):local.*— e.g. Ollama athttp://127.0.0.1:11434/v1, modelllama3.2cloud.*— e.g. OpenAI/Anthropic/Gemini/Groq + your API key + model
Commands (Command Palette)
- Prompt Compass: Route & Run a Prompt — decide + dispatch (or block) and open the response.
- Prompt Compass: Classify a Prompt / Classify Selection — decision only.
- Prompt Compass: Set API Key — save your
pc_ext_key. - Prompt Compass: Show Usage & Estimated Savings — session counts + $ saved.
Licensing
The free tier is for personal, evaluation, and development use. Live commercial use in a product requires a Commercial license — see compass.mpcfintech.com/compass.
Files
src/hostedRouter.js thin client: calls the hosted /v1/route
src/connectors/ dispatch to any local/cloud model (OpenAI-compatible + native)
src/extension.js VS Code commands + status bar
(The on-device model runtime that used to live here now runs only on the server; it stays in the repo because the API server imports it.)