OpenCode: enable Mistral prompt caching (#27556)

SkillAI & models

OpenCode doesn't set prompt_cache_key for Mistral models, missing the documented 10% cached-token discount.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the OpenCode: enable Mistral prompt caching (#27556) skill

What this skill tells your AI

The instructions your AI receives, as published by onlyterp/prompt-cache-skills in skills/opencode-mistral-cache-key/SKILL.md and read by ahel’s review.

Target

packages/opencode/src/provider/transform.tsProviderTransform.options() in sst/opencode.

Open feature request: #27556.

Symptom

Mistral's API supports prompt caching with a 10% pricing on cached tokens (similar to OpenAI's Responses API). The mechanism is a prompt_cache_key field on the request that Mistral uses as a routing hint, plus prefix stability.

OpenCode does not set prompt_cache_key for Mistral models. Even though Mistral supports caching server-side, OpenCode-routed Mistral calls never hit the cache.

Fix

Add Mistral to the providers that get an auto-set prompt_cache_key:

--- a/packages/opencode/src/provider/transform.ts
+++ b/packages/opencode/src/provider/transform.ts
@@ ProviderTransform.options(input, model)
   // OpenAI Responses
   if (/* model uses OpenAI responses */) {
     result["promptCacheKey"] = stableHashFor(input);
   }
+
+  // Mistral
+  if (model.providerID === "mistral" ||
+      model.api.npm === "@ai-sdk/mistral") {
+    result["prompt_cache_key"] = stableHashFor(input);
+  }

Where stableHashFor(input) returns a stable per-session hash — typically the session ID, or a sha256 of the system prompt if no session ID is available. NEVER use a per-request UUID (see docs/gotchas.md #9b).

Verify

  1. Configure OpenCode with mistral-large-latest or similar.
  2. Send two identical prompts.
  3. Capture wire to Mistral.
  4. Before fix: request body has no prompt_cache_key field.
  5. After fix: prompt_cache_key field present and identical across both requests.
  6. Inspect response usage for cached-token indicators (Mistral reports these similarly to OpenAI).

Background

The Responses-API-style prompt_cache_key pattern is industry standard for explicit cache routing — Mistral, OpenAI, and several other providers all use the same field name. OpenCode wires it for OpenAI but missed Mistral.

See docs/concepts/openai.md "The prompt_cache_key trick" — same pattern applies to Mistral.

Full audit: audits/opencode.md.

Signals

GitHub stars
114
Forks
9
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
opencode-mistral-cache-key
Source
github.com/onlyterp/prompt-cache-skills