0
411
近 7 天 9
35.3
生态多维模型
20 天前
2026-07-31
快速安装与配置
opencode.json写入当前项目的 opencode.json,只对这个仓库生效。
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@viniciuspoa2/opencode-cost-guard@0.1.2"]
}写入 ~/.config/opencode/opencode.json,对所有项目生效。
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@viniciuspoa2/opencode-cost-guard@0.1.2"]
}若你要在本地改造这个插件,先装到项目里再从本地路径引用。
shell
pnpm add -D @viniciuspoa2/opencode-cost-guardopencode 启动时会通过内嵌运行时自动加载 npm 依赖并缓存至本地目录,无需手动在全局环境执行安装。
Plugin para OpenCode. Avisa quando contexto da sessão cresce ou modelo caro recebe volume sustentado de requests. Apenas alerta: sem telemetria, chamadas extras de LLM ou bloqueio de requests.
Criado e mantido por Commitgeist.
Instalação
Adicione pacote na configuração do OpenCode:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-cost-guard"]
}
OpenCode instala plugins npm na inicialização. Feche e reinicie OpenCode após mudar configuração.
Para desenvolvimento local:
{
"plugin": ["file:///absolute/path/to/opencode-cost-guard/dist/index.js"]
}
Execute bun run build antes de carregar saída compilada local.
Configuração
Configuração global opcional: ~/.config/opencode/cost-guard.jsonc.
{
"warnTokens": 50000,
"alertTokens": 100000,
"expensiveModels": ["glm-5.2", "claude-opus", "gpt-5", "kimi-k2"],
"cheapSuggestion": "opencode/deepseek-v4-flash-free",
"maxRequestsBeforeSuggest": 15,
"enabled": true
}
Entradas em expensiveModels correspondem ao ID do modelo sem diferenciar maiúsculas e minúsculas. Defina enabled como false para desabilitar monitoramento.
Saída
Avisos aparecem nos logs estruturados do OpenCode:
Contexto em ~50k tokens - considere /compact.
Contexto em ~100k tokens - /compact ou nova sessao recomendado.
Modelo caro (glm-5.2) apos 15 requests. Para execucao, considere opencode/deepseek-v4-flash-free.
Cada limiar e sugestão de modelo é emitido uma vez por sessão. Estado usa ID da sessão como chave e é removido quando sessão é excluída.
Estimativa de Tokens
Antes de cada request ao LLM, plugin lê mensagens atuais da sessão via SDK do OpenCode. Serializa metadados e partes das mensagens, depois estima contexto como caracteres / 4. Estimativa é aproximada e não exige chamada ao provedor. Saída de ferramentas, anexos e tokenização específica do provedor podem causar diferença entre estimativa e tokens de entrada faturados.
Testes
bun install
bun test
bun run typecheck
bun run build
npm pack --dry-run
Teste manual: defina warnTokens como 100 e alertTokens como 200, reinicie OpenCode e troque mensagens suficientes para ultrapassar ambas estimativas. Use modelo caro configurado e envie mais requests que maxRequestsBeforeSuggest para validar alerta de modelo.