← All posts

Open Interpreter + custom provider: cheap inference for a code-running agent

5/27/2026 · 4 min · jusCode · Read as Markdown

Share
open-interpreterlitellmopenai-compatiblecustom-base-urlcost-optimization
INTEGRATIONjusCode

TL;DR

Run `interpreter --api_base https://api.juscode.co/v1 --api_key <jcg_token> --model jusCode-auto`. OI's litellm layer passes the OpenAI-compatible request through; jusCode picks the cheapest capable model per turn. Local code execution, tool approvals, and conversation memory are unaffected.

Open Interpreter + custom provider: keep the agent, drop the bill

Open Interpreter (OI) lets a model run code on your machine to actually accomplish a task: read files, install packages, query databases, plot data. The agent loop is short and tight: model emits code → OI runs it → OI feeds stdout/stderr back → model decides next step. That tight loop means a lot of model calls per task, which means a lot of money on a frontier model. Pointing OI at jusCode drops the per-call cost without changing the code-execution behavior at all.

Why it works

OI's model layer is litellm, which speaks OpenAI-compatible by default. Anything that accepts a base URL and bearer token works.

Setup

1. Mint a jusCode API key

Sign in at juscode.co/login. Open juscode.co/developerKeys tab → Mint key. Copy the jcg_… token.

2. Launch OI against jusCode

CLI flags (one-off):

interpreter \
  --api_base https://api.juscode.co/v1 \
  --api_key jcg_your_token_here \
  --model jusCode-auto

Or set them once in ~/.openinterpreter/config.yaml:

llm:
  api_base: https://api.juscode.co/v1
  api_key: jcg_your_token_here
  model: jusCode-auto

3. Verify

Run interpreter with no further args, then ask it what python version is installed. You'll see OI emit a one-liner, ask permission to run, execute, and report: same flow as before. The model behind it is now jusCode-auto.

What changes vs default

Aspect Default OI (frontier model) OI + jusCode
First-token latency 400-800ms 200-500ms (smaller models warm up faster)
Cost per "read file → decide" loop step $0.01-0.05 $0.002-0.01
Cost per "write 200-line script" step $0.04-0.10 $0.02-0.05
Code-execution behavior unchanged unchanged
Conversation memory unchanged unchanged
Tool approval flow unchanged unchanged
Local file access unchanged unchanged

What about safety mode / --safe_mode?

OI's safe mode (interactive approval before each code execution) is a CLIENT-side feature. The model behind it doesn't know whether you'll approve, deny, or modify the code. Switching to jusCode doesn't weaken safe mode: your approvals still gate every execution.

What about offline / --local?

--local runs an Ollama or LM Studio model on your machine. Don't combine --local with --api_base; they're mutually exclusive. Use --local when you want privacy + zero per-call cost; use jusCode when you want frontier quality at routed-down cost.

Multi-step tasks: where the savings compound

OI tasks tend to be long. "Clean this dataset and produce three charts" might be 30-50 model calls: read CSV, inspect schema, write cleaning script, run it, check output, write plotting script, run it, check output, iterate. Per-call cost matters more than per-token cost.

Sample task, "load sales.csv, find the top 5 products by revenue in 2025, write each to a separate JSON file":

Model Total calls Total cost Wall time
Claude Sonnet (direct) 12 ~$0.18 38s
GPT-4.1 (direct) 11 ~$0.14 41s
jusCode-auto 12 ~$0.03 35s

The wall time barely moves because the bottleneck is local code execution, not the model. The cost moves a lot because every "tell me what the columns are" step now lands on a small fast model.

When you'd stay on the direct provider

  • Custom system prompts that depend on provider-specific tool calling. OI uses litellm's normalized tool-use, so this is rare.
  • Your org has an inference contract you need to bill against. jusCode is a passthrough; underlying providers see jusCode's account.

Switching back

Drop the --api_base / --api_key flags or comment them out in config.yaml. OI falls back to whatever was set in environment variables (OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.).

Further reading

Test yourself

  1. 1. What model id do you use with Open Interpreter on jusCode?

  2. 2. What base URL does jusCode use?

  3. 3. Typical savings from per-call routing?

Share

FAQ

How do I point Open Interpreter at a cheaper endpoint?
Use --api_base and --api_key flags: base_url https://api.juscode.co/v1, a jcg_ token, and model jusCode-auto. Behavior is unchanged.
Does Open Interpreter lose any features on a custom endpoint?
No. Tool use, edits, and memory keep working; only the model selection moves behind the gateway.
How much does per-call routing save?
Typically 60-80% on real coding-agent workloads, because most steps do not need a frontier model.