Prompt Compass — VS Code Extension
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 at http://127.0.0.1:11434/v1, model llama3.2
cloud.* — 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.)