Skip to content
    ↑↓ select↵ openesc close
    English中文
    commitgeist

    Cost Guard

    v0.1.2Observability
    @viniciuspoa2/opencode-cost-guard

    Warns OpenCode users when session context and model choice may increase cost.

    GitHub stars

    0

    Monthly installs

    411

    9 in 7 days

    Composite scoreSCORE

    35.3

    Multi-signal model

    Last commit

    20 days ago

    2026-07-31

    Install and configure

    opencode.json

    Writes to this project's opencode.json — applies to this repository only.

    opencode.json

    {
      "$schema": "https://opencode.ai/config.json",
      "plugin": ["@viniciuspoa2/opencode-cost-guard@0.1.2"]
    }

    opencode loads npm dependencies through its embedded runtime on startup and caches them locally — no manual global install needed.

    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.