Monitoriza tu consumo de Claude Code en GNOME con Python y AppIndicator

Si trabajas a diario con Claude Code, seguramente te haya pasado: estás a mitad de una tarea larga y de pronto te quedas sin cuota. Existe el comando /usage dentro de Claude Code, pero hay que pararse a escribirlo. Lo cómodo sería tener el dato siempre delante, en la barra superior de Ubuntu.

En este artículo montamos justo eso: un indicador que muestra de forma permanente el porcentaje consumido de la sesión de 5 horas y el de la cuota semanal, con el tiempo que falta para cada reset. Se refresca solo cada minuto y arranca automáticamente al iniciar sesión.

De dónde salen los datos

Claude Code guarda sus credenciales OAuth en ~/.claude/.credentials.json. Dentro hay un accessToken que sirve para consultar el mismo endpoint que usa internamente el comando /usage:

TOKEN=$(python3 -c "import json;print(json.load(open('$HOME/.claude/.credentials.json'))['claudeAiOauth']['accessToken'])")

curl -s https://api.anthropic.com/api/oauth/usage \
  -H "Authorization: Bearer $TOKEN" \
  -H "anthropic-beta: oauth-2025-04-20"

La respuesta trae bastantes campos, pero los dos que nos interesan son estos:

{
  "five_hour": {
    "utilization": 56.0,
    "resets_at": "2026-08-08T11:30:00+00:00"
  },
  "seven_day": {
    "utilization": 14.0,
    "resets_at": "2026-08-13T20:00:00+00:00"
  }
}

utilization es el porcentaje consumido y resets_at la marca temporal en UTC en la que ese contador vuelve a cero. Con eso ya tenemos todo lo necesario.

Un aviso antes de seguir: ese token da acceso a tu cuenta. Úsalo solo en local y no lo pegues en ningún sitio público, ni en capturas de pantalla ni en pastebins.

Por qué una app de bandeja y no una extensión de GNOME

El primer impulso es escribir una extensión de GNOME Shell, que es lo que pinta texto nativo en la barra. Y funciona, pero tiene un inconveniente serio en Ubuntu moderno: bajo Wayland, una extensión recién instalada no se carga hasta que reinicias GNOME Shell, y eso significa cerrar sesión. El clásico Alt+F2 seguido de r solo funciona en X11.

La alternativa que evita el cierre de sesión es una aplicación de bandeja con AyatanaAppIndicator3. Se apoya en la extensión ubuntu-appindicators, que Ubuntu trae activada de serie, y se registra en caliente: la lanzas y aparece al instante.

El script del indicador

Guarda esto en ~/.local/bin/claude-usage-indicator.py:

#!/usr/bin/env python3 import fcntl import json import sys import urllib.request from datetime import datetime, timezone from pathlib import Path import gi gi.require_version("Gtk", "3.0") gi.require_version("AyatanaAppIndicator3", "0.1") from gi.repository import AyatanaAppIndicator3 as AppIndicator from gi.repository import GLib, Gtk CRED = Path.home() / ".claude" / ".credentials.json" URL = "https://api.anthropic.com/api/oauth/usage" REFRESH_SECONDS = 60 def eta(iso): if not iso: return "" try: t = datetime.fromisoformat(iso) except ValueError: return "" secs = (t - datetime.now(timezone.utc)).total_seconds() if secs <= 0: return "0m" d, rem = divmod(int(secs), 86400) h, m = divmod(rem // 60, 60) if d: return f"{d}d{h}h" if h: return f"{h}h{m:02d}m" return f"{m}m" def reset_clock(iso): if not iso: return "" try: t = datetime.fromisoformat(iso).astimezone() except ValueError: return "" return t.strftime("%a %d %H:%M") def fetch(): token = json.loads(CRED.read_text())["claudeAiOauth"]["accessToken"] req = urllib.request.Request( URL, headers={ "Authorization": f"Bearer {token}", "anthropic-beta": "oauth-2025-04-20", }, ) with urllib.request.urlopen(req, timeout=8) as r: return json.load(r) class Indicator: def __init__(self): self.ind = AppIndicator.Indicator.new( "claude-usage", "utilities-system-monitor-symbolic", AppIndicator.IndicatorCategory.SYSTEM_SERVICES, ) self.ind.set_status(AppIndicator.IndicatorStatus.ACTIVE) self.menu = Gtk.Menu() self.detail = Gtk.MenuItem(label="Cargando...") self.detail.set_sensitive(False) self.menu.append(self.detail) self.menu.append(Gtk.SeparatorMenuItem()) refresh = Gtk.MenuItem(label="Actualizar ahora") refresh.connect("activate", lambda _w: self.refresh()) self.menu.append(refresh) quit_item = Gtk.MenuItem(label="Salir") quit_item.connect("activate", lambda _w: Gtk.main_quit()) self.menu.append(quit_item) self.menu.show_all() self.ind.set_menu(self.menu) self.refresh() GLib.timeout_add_seconds(REFRESH_SECONDS, self.refresh) def refresh(self): try: d = fetch() s, w = d["five_hour"], d["seven_day"] sp, wp = int(round(s["utilization"])), int(round(w["utilization"])) label = f"S {sp}% ({eta(s['resets_at'])}) · W {wp}% ({eta(w['resets_at'])})" detail = ( f"Sesion 5h: {sp}% -> resetea {reset_clock(s['resets_at'])}\n" f"Semanal: {wp}% -> resetea {reset_clock(w['resets_at'])}" ) except Exception as e: label = "Claude: --" detail = f"Sin datos: {e}" self.ind.set_label(label, "S 100% (0h00m) · W 100% (0d0h)") self.detail.set_label(detail) return GLib.SOURCE_CONTINUE if __name__ == "__main__": _lock = open("/tmp/claude-usage-indicator.lock", "w") try: fcntl.flock(_lock, fcntl.LOCK_EX | fcntl.LOCK_NB) except BlockingIOError: print("Ya hay una instancia en ejecucion.", file=sys.stderr) sys.exit(0) Indicator() Gtk.main() read more

Leer más » Comentar

Jornada de iniciación a la informática libre en Oviedo – Mayo 2026

Nos informan desde PicaHack que el próximo sábado 30 de mayo de 2026 en El Olivar (Calle Oscura, número 1/3 – Oviedo – Asturias)Pica Pica HackLab (PicaHack) organiza una jornada de iniciación a la informática libre, destinada a personas con pocos conocimientos sobre el tema pero interesadas en las implicaciones éticas, sociales y ambientales de las tecnologías de la información.

El movimiento de la informática libre defiende que el software (los programas o aplicaciones de ordenador o computadora) y el hardware (los componentes físicos o materiales de los ordenadores o computadoras) deben poder ser usados, modificados y compartidos por cualquier persona, sin imposición de restricciones técnicas, legales o económicas, como derechos y libertades de todas las personas. Asimismo, también la información debe estar disponible de igual forma. Esto es fundamental no solo para el bien de la persona a título individual sino también de la población en general. Estos derechos y libertades son aún más importantes mientras nuestras actividades cotidianas se vuelven más y más ligadas a la informática: en un mundo de palabras, sonidos e imágenes digitales, la informática libre en concreto y el libre acceso a la información y al conocimiento en conjunto viene a representar una parte fundamental del ejercicio de los derechos y las libertades en general. read more

Leer más » Comentar

ONLYOFFICE Docs 9.4: actualización de licencia, versión Community optimizada, mejor cumplimentación de formularios y más

ONLYOFFICE Docs 9.4, la versión más reciente de nuestra suite ofimática de código abierto y autoalojada para documentos, hojas de cálculo, presentaciones, formularios rellenables, PDF y diagramas, ya está disponible.

La versión 9.4 incorpora términos de licencia AGPLv3 actualizados con directrices más claras sobre atribución, derechos de autor y marcas comerciales, y presenta una arquitectura más ligera y optimizada, con un rendimiento mejorado y sin el límite de 20 conexiones simultáneas en la versión Community. read more

Leer más » Comentar

ONLYOFFICE Docs 9.3 ya disponible

ONLYOFFICE Docs 9.3 es la nueva versión de nuestra suite ofimática de código abierto y autohospedada. Esta actualización incorpora mejoras y nuevas funciones para trabajar con:

  • Documentos de texto
  • Hojas de cálculo
  • Presentaciones
  • Formularios rellenables
  • Archivos PDF
  • Diagramas
  • read more

    Leer más » Comentar

    Disponible ONLYOFFICE Desktop Editors 9.2

    ONLYOFFICE ha lanzado oficialmente Desktop Editors 9.2, la nueva actualización de su completa suite ofimática de código abierto. Esta versión ya puede descargarse para Linux, Windows y macOS e incluye herramientas para trabajar con documentos de texto, hojas de cálculo, presentaciones, formularios rellenables, archivos PDF y diagramas.

    La edición 9.2 llega con un conjunto de mejoras destinadas a optimizar el flujo de trabajo y ofrecer una experiencia más fluida. Entre las novedades más destacadas se encuentran un agente de inteligencia artificial integrado para acelerar tareas cotidianas, nuevas funciones de corrección ortográfica y gramatical basadas en IA, así como la posibilidad de personalizar los atajos de teclado para adaptarlos a las preferencias de cada usuario. También se han mejorado las opciones de edición de PDF, se ha añadido la grabación de macros, se han perfeccionado las herramientas de creación de formularios y se incorpora compatibilidad nativa con dispositivos ARM64 en Windows 11. read more

    Leer más » Comentar

    Disponible ONLYOFFICE Docs 9.1

    Esta nueva versión que acaba de ser liberada, viene con un editor de PDF más potente con la función Redactar y nuevas anotaciones, fórmulas más rápidas en hojas de cálculo y más. Y es que ONLYOFFICE Docs 9.1, es la versión más nueva de esta famosa suite ofimática de código abierto y autoalojada para documentos, hojas de cálculo, presentaciones, formularios rellenables, PDFs y diagramas, ya está disponible.

    Las principales características de la versión 9.1 son:

    • Función Redactar, nuevas herramientas de anotación, gráficos y SmartArt en PDF
    • Fórmulas LOOKUP más rápidas en hojas de cálculo;
    • Pestaña Patrón de diapositivas en presentaciones;
    • Compatibilidad con imágenes HEIF y documentos HWPML;
    • Editor de gráficos completo en documentos y presentaciones;
    • Conversión directa PDF -> TXT y PPTX -> TXT y mucho más.

    Tenéis más información sobre la versión 9.1 en el siguiente enlace: https://www.onlyoffice.com/blog/es/2025/10/disponible-onlyoffice-docs-9-1 read more

    Leer más » Comentar

    Disponible ONLYOFFICE DocSpace v3.0: salas de datos virtuales y mucho más

    ONLYOFFICE DocSpace es una plataforma de código abierto basada en salas para la gestión de documentos y la colaboración, se ha actualizado a la versión 3.0 ofreciendo las siguientes mejoras:

  • Todos los usuarios e invitados son ahora gratuitos
  • Salas de datos virtuales
  • Nuevos roles de usuario
  • Compatibilidad con OAuth2.0
  • Gestión mejorada de salas y archivos
  • Nueva edición especial para desarrolladores – ONLYOFFICE DocSpace Developer
  • read more

    Leer más » Comentar

    Liberado ONLYOFFICE Docs v8.2

    OnlyOffice es una suite ofimática abierta, que podéis usar como alternativa a otras más populares como LibreOffice u OpenOffice; para tareas como documentos, hojas de cálculo, presentaciones, formularios rellenables y gestión de archivos PDF.

    La última versión de la suite está preparada para impulsar la colaboración en línea con la coautoría de PDF, que permite a varios usuarios editar simultáneamente el mismo archivo PDF en modo de tiempo real o en modo de bloqueo de párrafos.

    Otras mejoras importantes son: read more

    Leer más » Comentar

    Cómo usar mysql_result en PHP 7 o PHP 8

    Esta mañana un cliente me avisó de un error cuando intentaba descargar unas facturas. Esas facturas están guardas en un BLOB en una base de datos a las que se accede para luego mostrarlas al usuario.

    ¿Qué ha pasado? Pues que hace tiempo actualizaron en su servidor PHP de 5.6 a 7.x o diría que ya a 8.x y claro, mirando el código se usaba la función mysql_result que básicamente lo que hace es leer el dato de una celda en concreto de una consulta SQL. read more

    Leer más » Comentar

    Error en MySQL: Cannot load from mysql.proc

    El error al completo es: “Cannot load from mysql.proc. The table is probably corrupted” y la verdad que no es un error menor porque básicamente no puedes hacer ni consultas de cierto tipo con MySQL/MariaDB.

    ¿Cuándo sucede?

    Por lo general, en un servidor que tengas instalado este sistema gestor de base de datos, MySQL o su alternativa libre MariaDB, en ciertas actualizaciones de versión de este software, luego tienes que reconfigurar ciertos datos internos de gestión de la base de datos. read more

    Leer más » Comentar