GitHub: versión v0.1.4 npm: versión v0.1.4 npm: descargas DSH plugin: listed en dsh-plugin.org

Uso de OpenCode Go para DSH Desktop es una extensión que pone el consumo de tu suscripción OpenCode Go dentro del composer de DeepSeek Harness. Los tres tramos —5 horas, semanal y mensual— viven en una píldora compacta en la fila del composer, dentro del grupo centrado de píldoras de los plugins de JaMoLpE88; al pulsarla se abre una ventana de detalles con el porcentaje, la cuenta atrás del reset y un botón de refresco.

La diferencia está en no tener que abrir otra pestaña para saber cuánto queda. No hay panel de ajustes, ni campo para pegar una clave, ni cookie que robar: si un modelo de OpenCode Go está seleccionado, el proveedor ya está configurado y su clave ya está en DSH. El plugin la usa desde el Host y no la deja llegar al navegador.

Qué es y para qué sirve

Es un plugin de DSH, no una aplicación independiente. Se instala en el perfil desktop y se apoya en tres piezas del propio DSH:

  • Una píldora en el composer con los anillos estilo medidor de contexto, separados por ·: 5H, WK y MO.
  • Una ventana de detalles con aspecto nativo: porcentaje, barra fina, reset en cuenta atrás, hora local, última actualización, origen del dato y Refresh.
  • Una lectura en el Host de la API oficial de uso de OpenCode Go, autenticada con la credencial OPENCODE_GO_API_KEY que DSH ya guarda.
  • Un grupo centrado compartido con los otros plugins de composer de JaMoLpE88: varias píldoras visibles se colocan una al lado de otra, centradas y con un pequeño margen, y se ocultan juntas si no caben.

Sirve cuando trabajas con un modelo de OpenCode Go y quieres ver el margen que te queda sin salir de la sesión: si el tramo de 5 horas está a punto de resetear, si la semana va cargada o si el mes no llega. No añade herramientas al agente, no cambia de proveedor y no toca la conversación.

Qué problema resuelve

  • Cambiar de pestaña para mirar el cupo. El porcentaje está donde escribes, al lado del modelo que lo consume.
  • No saber cuándo resetea. La ventana de detalles enseña el reset en cuenta atrás y en hora local, actualizada cada segundo.
  • Configurar otra vez lo que DSH ya sabe. No se pega la clave ni se pide sesión: se resuelve la credencial del proveedor en cada lectura.
  • Ver un cero sin explicación. Si la API falla, la píldora conserva los últimos porcentajes y los marca como stale en lugar de vaciarse; el detalle muestra el código de error.

Lo que no hay, no se finge: sin historial, sin gráficas, sin ajustes de umbrales. Es el dato de suscripción que el proveedor ya conoce, leído en el momento.

Instalación

El plugin se distribuye como paquete npm y también desde el repositorio. Necesita DSH Desktop >= 0.2.1-rc.3 y un proveedor OpenCode Go configurado en Settings → Models.

dsh plugin --profile desktop add @jamolpe88/dsh-opencodego-usage

Desde el repositorio:

dsh plugin --profile desktop add github:JaMoLpE88/dsh-opencodego-usage

Desde un checkout local, mientras desarrollas:

dsh plugin --profile desktop add C:\ruta\a\dsh-opencodego-usage

Refresca la ventana de DSH después de instalar. La píldora aparece en el composer de cualquier sesión cuyo modelo activo use el proveedor opencode-go. No hay instalador, binario ni node_modules que preparar a mano: el cliente es un client.js plano sin paso de build.

Cómo se usa

  1. Selecciona un modelo de OpenCode Go. La píldora aparece en la fila del composer, dentro del grupo centrado de píldoras; las demás píldoras de JaMoLpE88 se colocan a su lado con un pequeño margen.
  2. Púlsala para abrir la ventana de detalles con los tres tramos.
  3. Cambia de modelo cuando quieras. Con otro proveedor la píldora desaparece al instante; al volver, reaparece.
  4. Cierra con un clic fuera, con Escape o volviendo a pulsar la píldora.
Fila del composer de DSH con el selector Full access a la izquierda, la píldora de uso 5H 4 %, WK 24 % y MO 12 % en el grupo centrado y el modelo DeepSeek V4.1 Flash a la derecha
La píldora. Tres anillos de contexto iguales que los del medidor propio de DSH, con el logo de OpenCode delante y separadores `·`. El color del anillo cambia con la severidad; aquí los tres tramos van por debajo del 50 %.

La píldora se refresca cada 60 segundos y también cuando la ventana de la aplicación vuelve a estar visible. Los porcentajes son del usuario de la suscripción, no del modelo ni del espacio de trabajo.

Ventana OpenCode Go usage con los tramos 5-hour window al 4 %, Weekly window al 24 % y Monthly window al 12 %, sus barras menta, la cuenta atrás del reset, la última actualización, el auto refresco cada 60 s y el botón Refresh sobre el composer difuminado
El detalle. Cada tramo con su porcentaje, barra, cuenta atrás y hora local del reset. Abajo, última actualización, cadencia de auto-refresco, origen del dato y el botón Refresh. El fondo del chat está difuminado por privacidad.

Si la píldora no aparece

Comprueba primero el modelo activo. El plugin no renderiza nada para otros proveedores, así que un modelo de OpenCode Go no seleccionado —o un proveedor sin configurar— explica el silencio sin necesidad de mirar la consola.

Qué muestra y de dónde sale

La API devuelve tres ventanas. El plugin no las interpreta más de lo necesario: las normaliza, las ordena y las pinta.

Tramo Ventana Qué mide
5 horas (rolling) Móvil El consumo reciente dentro del tramo de 5 horas
Semanal (weekly) Semana en curso El acumulado de la semana
Mensual (monthly) Ciclo mensual El acumulado del mes de suscripción

Los topes no son independientes: OpenCode Go reparte el cupo mensual en un 20 % para la ventana de 5 horas, un 50 % para la semana y el 100 % para el mes. Está explicado con cifras en el artículo sobre DeepSeek API vs OpenCode Go.

El color resume la severidad sin abrir nada:

Consumo Anillo y barra
Menos del 50 % Menta
Del 50 % al 74 % Ámbar
Del 75 % al 100 % Coral
Tramo limitado Coral, siempre

Es la misma paleta que el reloj de tarifas DeepSeek: menta #3EE6A8, ámbar #F6C453 y coral #FF7A59.

Cómo funciona

La mitad Host consulta el endpoint oficial con la clave del proveedor:

GET https://opencode.ai/zen/go/v1/usage
Authorization: Bearer <OPENCODE_GO_API_KEY>

La respuesta trae los tres tramos con su porcentaje y su fecha de reset:

{
  "usage": {
    "rolling": { "status": "ok", "percent": 4,  "resetsAt": "2026-10-25T13:31:58.000Z" },
    "weekly":  { "status": "ok", "percent": 24, "resetsAt": "2026-10-26T00:00:00.000Z" },
    "monthly": { "status": "ok", "percent": 12, "resetsAt": "2026-11-07T14:35:16.000Z" }
  }
}
  • La clave se resuelve desde el servicio de credenciales de DSH (OPENCODE_GO_API_KEY) en cada lectura; OPENCODE_GO_API_KEY del entorno del proceso es el fallback.
  • El resultado se cachea 55 segundos y las lecturas concurrentes comparten una sola petición, de modo que el poll de 60 segundos y varias ventanas no multiplican las llamadas.
  • Si la API falla, se conservan los últimos porcentajes y se marcan como stale durante un minuto; el código de error queda en error.
  • La mitad navegador lee dos rutas same-origin: /api/opencodego-usage y /api/opencodego-usage/refresh. La clave nunca llega al navegador.
  • La visibilidad usa la proyección viva modelSelection. Al cambiar de proveedor, la píldora se oculta sin recargar la sesión.
  • El Client formatea las horas con el idioma y la zona horaria del navegador, repinta la cuenta atrás cada segundo mientras la ventana está abierta y pide una lectura nueva cuando un reset llega a cero. Una guarda evita que ese reset provoque un bucle de refrescos.

Diagnóstico

Con DSH abierto, pide la vista cacheada desde la misma URL de la interfaz (el puerto cambia en cada arranque):

curl http://127.0.0.1:59863/api/opencodego-usage

La respuesta contiene porcentajes, fechas y códigos, nunca la clave:

{
  "updatedAt": 1793016001120,
  "windows": {
    "rolling": { "percent": 4, "resetsAt": 1793025060000, "status": "ok" },
    "weekly": { "percent": 24, "resetsAt": 1793059200000, "status": "ok" },
    "monthly": { "percent": 12, "resetsAt": 1794062116000, "status": "ok" }
  },
  "error": null,
  "stale": false
}

Para saltarte la caché y forzar una lectura, usa /api/opencodego-usage/refresh. Si error no es null, stale indica si los porcentajes que acompañan son los últimos buenos o directamente no hay datos.

Privacidad

  • Sin cookies ni scraping. No se lee la consola de OpenCode ni se descarga HTML de la sesión.
  • La clave se queda en el Host. El navegador recibe porcentajes, fechas, un código de error y un booleano de frescura.
  • Sin almacenamiento propio. No hay archivo de configuración, ni localStorage, ni historial de uso.
  • Sin telemetría. La única petición saliente es el endpoint oficial de uso.
  • Errores sin secretos. El Host no registra la clave ni la incluye en los mensajes de error.

La política completa está en SECURITY.md.

Problemas frecuentes

El plugin no tiene ajustes propios: los problemas del proveedor se resuelven en los ajustes de modelos de DSH. Cuando algo falla, la píldora muestra un punto rojo y la ventana de detalles da el código:

Código Significado
missing-key DSH no tiene OPENCODE_GO_API_KEY para este perfil. Configura el proveedor en Settings → Models.
invalid-key La clave fue rechazada (401). Revísala o sustitúyela.
no-subscription La clave no tiene una suscripción OpenCode Go activa (403).
rate-limited La propia API de uso está limitando peticiones; espera un poco.
timeout / network El Host no pudo llegar a opencode.ai; reintenta con Refresh.
parse La respuesta no traía ventanas reconocibles.

Límites conocidos

  • Windows 11 es lo único probado. macOS y Linux no se han validado; el README lo indica y no se presenta como soporte.
  • Solo aparece con OpenCode Go. Es intencionado: sin ese proveedor no hay dato útil que enseñar.
  • Sin ajustes. No hay editor de umbrales, ni intervalo de refresco configurable, ni botón para ocultar la píldora.
  • Sin historial ni gráficas. Solo el estado actual y su reset.
  • Depende del endpoint de OpenCode. Si cambia el formato, el parser descarta las ventanas que no reconoce y la píldora muestra un error de parse.
  • El perfil web no está validado. El plugin se publica y se prueba en DSH Desktop.
  • No toca el agente. No añade herramientas, comandos ni proveedores.

Ficha técnica

Campo Valor
Versión 0.1.4 · 27 de octubre de 2026
Autor JaMoLpE88
Licencia MIT
Tipo Extensión de DeepSeek Harness (Host + Client)
DSH >= 0.2.1-rc.3, perfil desktop
Node >= 22
Plataformas Windows 11 (probado) · macOS y Linux (sin probar)
Requisito Proveedor OpenCode Go configurado
Instalación dsh plugin --profile desktop add @jamolpe88/dsh-opencodego-usage
Paquete npm @jamolpe88/dsh-opencodego-usage
Repositorio github.com/JaMoLpE88/dsh-opencodego-usage
Ficha pública dsh-plugin.org (publicada y verificada)
Web jmolo.es

Preguntas frecuentes

¿Tengo que pegar mi clave o iniciar sesión?

No. El plugin usa la clave que DSH ya guarda para el proveedor opencode-go. Si está configurado y puedes seleccionar sus modelos, la credencial está disponible.

¿Por qué no veo la píldora?

Porque el modelo activo no pertenece a OpenCode Go. Es el comportamiento previsto, no un fallo: el plugin no tiene nada que mostrar con otros proveedores.

¿Se guarda mi clave o mi historial?

La clave no se copia a ningún sitio del plugin: se resuelve en el Host en cada lectura y no se serializa al navegador. Tampoco hay historial ni caché en disco; el único almacenamiento es la caché en memoria de 55 segundos.

¿Qué pasa si la API falla?

La píldora mantiene los últimos porcentajes conocidos y los marca como stale; el detalle muestra el código de error y el botón Refresh fuerza otro intento. Los fallos upstream tienen un minuto de espera para no machacar la API.

¿Cuántas peticiones hace?

Como máximo una por minuto en el uso normal: la caché del Host dura 55 segundos, las lecturas concurrentes se agrupan y el poll del navegador es de 60 segundos. El refresco manual salta esa caché, pero no crea peticiones duplicadas si ya hay una en curso.

¿Funciona en macOS o Linux?

Está publicado como extensión de DSH y se ha probado en Windows 11. En macOS y Linux no hay validación del autor; si lo pruebas, la ventana de detalles es el primer sitio donde mirar.

¿Puedo usarlo sin suscripción de OpenCode Go?

Puedes instalarlo, pero no verás la píldora. Sin un modelo de OpenCode Go seleccionado no hay ventana que consultar y el plugin no renderiza nada.

Licencia y autoría

Uso de OpenCode Go para DSH Desktop es un proyecto de JaMoLpE88 publicado con licencia MIT. El código, las releases y la documentación viven en github.com/JaMoLpE88/dsh-opencodego-usage; la web del estudio es jmolo.es.

No está afiliado a OpenCode ni a DeepSeek. OpenCode y su logo son marcas de sus respectivos propietarios: el logo del icono se usa solo para identificar el servicio OpenCode Go y no está cubierto por la licencia MIT, como se detalla en NOTICE. El README principal está en inglés; la versión española se mantiene en README.es.md.

Copyright (c) 2026 JaMoLpE88. El software se ofrece sin garantías. Consulta LICENSE para el texto completo.