llm-scope 🔭
A local-first LLM Proxy that visualizes exactly where your calls are slow. No Node.js. No Docker. No account.
Like RelayPlane... but for Python devs. Zero data leaves your machine.
Are your API calls feeling sluggish, but you don't know if it's the DNS, TTFT, or just the generation? llm-scope intercepts your API requests and gives you a sub-millisecond accurate waterfall breakdown right in your browser.
Why llm-scope?
- Python Native & Zero Config:
pip install llm-scope-cli, change one line (base_url), and you're done. - Prompt Cache Analytics: Wondering if you should use
deepseek-v4-flashordeepseek-v4-pro?llm-scopevisualizes the TTFT difference and accurately calculates your Prompt Cache Hit Savings 💰. No more guesswork on your API bill. - Microsecond Precision Waterfall: Pinpoint precisely if latency is caused by TCP Handshake (
connect), Prompt Processing (TTFT), or Decoding (generation). - Physical Isolation: We never upload your prompts to a cloud service. Unlike cloud tools (Helicone is now in maintenance mode post-acquisition), all your data is stored in a plain SQLite file locally at
~/.local/share/llm-scope/calls.db.
Installation
pip install llm-scope-cli
Quick Start
- Start the proxy and local dashboard:
llm-scope start
The dashboard will automatically open at http://localhost:7070. Press Ctrl+C to stop.
- Route your Python code through the scope:
export OPENAI_BASE_URL=http://localhost:7070/v1
export DEEPSEEK_API_KEY=sk-...
python your_script.py
Popular Target Workflows
🏎️ DeepSeek V4 Prompt Cache Savings Tracking
DeepSeek V4 introduces massive price cuts for cached contexts, but it's hard to know exactly how much you're saving. llm-scope automatically parses the prompt_cache_hit_tokens from DeepSeek's payload and shows you exactly how much your System Prompt cache is saving you, in dollars.
The dashboard header displays your cumulative cache savings in real time — 💰 saved: $2.45 — the kind of number worth screenshotting.
💻 Track your Background Cursor Spend
Cursor is incredibly fast, but it sends huge background contexts you might not be aware of. Track exactly what tokens are being consumed and distinctly tag them to separate them from your main project codebase:
- Open Cursor Settings.
- Go to Models / Advanced.
- Set your OpenAI Base URL to
http://localhost:7070/tag/cursor/v1.
That's it! Watch the dashboard light up with every autocomplete and Chat request, all neatly labeled with the "cursor" badge.
🐍 OpenAI SDK Drop-in Replacement
Since llm-scope explicitly mirrors the OpenAI /v1/chat/completions specs, your existing code requires exactly zero changes other than injecting the base_url:
from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="http://localhost:7070/v1" # Or add /tag/project-name/v1
)
# Call as usual – your request will be tracked locally in the dashboard!
response = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[{"role": "user", "content": "Benchmark my latency."}],
stream=True
)
License
MIT License
Metadata
Release files for llm-scope-cli 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| llm_scope_cli-0.1.4.tar.gz | 254.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| llm_scope_cli-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 287.4 kB
Release files / llm_scope_cli-0.1.4.tar.gz
| Download URL | llm_scope_cli-0.1.4.tar.gz |
|---|---|
| Size | 254.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0b326c8096474c73d0b1bfd024ec4af9f7ff09098d04e640ef60dd01f8291a4d
|
|
BLAKE2b-256 checksum How to use checksums |
65006354ed18a42ed2ce67515f3416a60744746e672983181c8d90db701147a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / llm_scope_cli-0.1.4-py3-none-any.whl
| Download URL | llm_scope_cli-0.1.4-py3-none-any.whl |
|---|---|
| Size | 32.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0dafb8e31f9d0f639e8b0504006e2c1ba83a20ee93c0746aa9c1fdf63caef3d8
|
|
BLAKE2b-256 checksum How to use checksums |
40c02c661f4edd7fdbb1eb16ef72ec0bc1e888d0fcdcf17af68387c28f46247c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|