opencode-anthropic-cache
v1.0.0
Published
OpenCode plugin that enables prompt caching for multiple Anthropic providers by injecting metadata.user_id
Maintainers
Readme
opencode-anthropic-cache
让 OpenCode 在使用多个 Anthropic 渠道时启用 Prompt 缓存。
为什么需要
Foxcode 等中转服务的 AWS 渠道要求请求中必须包含 metadata.user_id 字段才能启用 Prompt 缓存。
没有此插件:每次请求都按全价计费
使用此插件:自动注入 user_id,启用缓存,节省费用
安装
npm install -g opencode-anthropic-cache配置
内置支持的 Provider
插件内置了两个常用 provider 的支持,只需添加一次插件,OpenCode 会自动加载所有导出:
{
"plugin": ["opencode-anthropic-cache"]
}这会同时启用:
foxcode-awsprovider 的缓存支持anthropic-ultraprovider 的缓存支持
自定义 provider 名称
如果你的 provider 名称不在预置列表中,可以使用工厂函数创建自定义插件。
在项目根目录创建 opencode-cache-plugin.mjs:
import { createAnthropicCachePlugin } from "opencode-anthropic-cache";
// 为你的自定义 provider 创建缓存插件
export default createAnthropicCachePlugin("your-custom-provider-name");然后在 opencode.json 中引用:
{
"plugin": [
"./opencode-cache-plugin.mjs"
]
}Provider 配置示例
{
"provider": {
"foxcode-aws": {
"npm": "@ai-sdk/anthropic",
"options": {
"baseURL": "https://code.newcli.com/claude/aws/v1",
"litellmProxy": true
},
"models": {
"claude-opus-4-5": { "name": "claude-opus-4-5" },
"claude-sonnet-4-5": { "name": "claude-sonnet-4-5" }
}
},
"anthropic-ultra": {
"npm": "@ai-sdk/anthropic",
"options": {
"baseURL": "https://code.newcli.com/claude/ultra/v1",
"apiKey": "your-api-key"
},
"models": {
"claude-opus-4-5": { "name": "claude-opus-4-5" },
"claude-sonnet-4-5": { "name": "claude-sonnet-4-5" }
}
}
}
}工作原理
插件通过自定义 fetch 拦截 Anthropic API 请求,自动注入 metadata.user_id:
{
"model": "claude-...",
"messages": [...],
"metadata": {
"user_id": "user_{projectId}_account__session_{sessionId}"
}
}调试
设置环境变量启用调试日志:
OPENCODE_ANTHROPIC_CACHE_DEBUG=1 opencode许可证
MIT
