✴️

Claude Code WebUI

Introduce tu contraseña para acceder

Inicio

Conversaciones
Arrastra una conversación a un grupo para moverla · con Ctrl/⌘ la copia
✴️

Claude Code, en tu propio servidor

Crea una conversación para empezar. El agente trabaja dentro de este contenedor: puede leer y escribir archivos, ejecutar comandos y usar herramientas.

▸ Tareas
💻 De mi ordenador
🖥 De este servidor
☁️ De OneDrive / SharePoint / Google Drive

Terminal real del contenedor (bash como root).
Aquí también puedes usar el CLI claude directamente.

☁️ Claude Code web

Tus sesiones de claude.ai/code, con la misma cuenta que usa este servidor. Puedes engancharte en vivo (lo que escribas va a esa sesión y su respuesta vuelve aquí) o traértela para seguirla con el motor de este contenedor.

Grafos
Buzones
💬 Conversación
💬 Conversación
💬 Conversación
WhatsApp
💬 Conversación
Repositorios
🐙

Panel de GitHub

Selecciona un repositorio para ver su estado completo: cambios, ramas, commits y pull requests — con commit, push, pull, merge y merge de PRs desde aquí.

⚠ Merge en curso con conflictos. Resuélvelos (puedes pedírselo al agente) y commitea, o

Cambios

Pulsa un fichero para ver su diff.

Ramas

Commits recientes

Pulsa un commit para ver sus cambios.

Pull Requests

Issues

Actions

💠

Obsidian

Conecta tu vault. Recomendado: instala el plugin comunitario Git (obsidian-git) en tu Obsidian y sincroniza el vault con un repo de GitHub; este panel lo clona y hace pull/commit/push contra el mismo repo. Alternativa: una carpeta local del servidor (sin sincronización).

Vault en GitHub (recomendado)

Carpeta local

Notas

Vault

Ajustes del vault

🗒️

Elige una nota del árbol, crea una nueva (+) o abre la de hoy (📅).

⏰ Rutinas

Prompts programados que se ejecutan solos con el agente (Claude o Codex). Cada ejecución aparece como conversación en el grupo «Rutinas» del chat, en tiempo real.

Nueva rutina

Se clonan o actualizan antes de cada ejecución y quedan asociados a la conversación, igual que al abrir un chat desde un repo.

Rutina

Estado

Repositorios

Configuración

Instrucciones

Ejecuciones

💰 Consumo

OpenRouter

Consultando…

Gasto por modelo · últimos 30 días

Actividad por día

Lo que OpenRouter guarda es el desglose por día, modelo y proveedor de los últimos 30 días cerrados — no la lista petición a petición de su web.

Antigravity

Consultando…

Ajustes

Claude · Agente

Alternativa sin API key: usa tu suscripción de Claude (Pro/Max). Abre la pestaña Terminal, ejecuta claude e inicia sesión con el enlace que muestra (o usa claude setup-token). La sesión queda guardada en el volumen persistente.

Da acceso a todo el catálogo de OpenRouter (Kimi K3, Gemini, DeepSeek, Llama…) desde el mismo selector de modelos: aparecen agrupados por proveedor con el prefijo or:. Se usa su endpoint compatible con Anthropic, así que el agente funciona igual (herramientas, streaming y razonamiento incluidos). Tu clave de Anthropic no se envía en esos turnos.

Solo para 💰 Consumo. La clave de inferencia deja ver lo que gasta ella misma, pero el saldo de la cuenta y el histórico de actividad los guarda OpenRouter detrás de otra clave, a propósito, para que el historial no quede a la vista de cualquiera que tenga una clave normal. Se crea en openrouter.ai → Settings → Provisioning Keys. No se usa para los turnos.

Panel de deliberación — la herramienta consultar_panel: varios modelos responden a la vez a la misma consulta y un juez compara las respuestas (consenso, contradicciones, aportes únicos, puntos ciegos). Cada llamada son N+1 completions de pago y tarda un par de minutos, así que el agente solo debería usarla cuando equivocarse salga caro. Un miembro con prefijo agy: (p. ej. agy:gemini-3.1-pro) va por la suscripción de Antigravity y no cuesta por token.

Es el que más importa: la mayor parte de la mejora viene de la síntesis, no de la diversidad del panel.

OpenAI · Codex

Permite usar modelos de OpenAI en el chat (grupo «OpenAI (Codex)» del selector), con traspaso de contexto al cambiar de modelo. Para autenticarte con tu suscripción de ChatGPT: abre la Terminal y ejecuta codex login --device-auth (te dará un código para aprobar desde otro dispositivo). Con API key: codex login --with-api-key. La sesión queda en el volumen persistente.

GitHub

Integración al estilo Claude Code web: clona repos, trabaja en ramas y crea PRs. Usa un Personal Access Token (fine-grained con Contents: Read/Write y Pull requests: Read/Write, o classic con scope repo). El agente también dispone del CLI gh ya autenticado.

Microsoft 365

Conecta Outlook, SharePoint/OneDrive y el calendario: buzón lateral, explorador de archivos con edición completa, correos y ficheros como contexto de una conversación, y herramientas para el agente. Hace falta un registro de aplicación en Entra ID (Azure). La URL de retorno que debes dar de alta en el registro es .

Desactivado, el agente solo deja el borrador en Outlook y lo envías tú desde el chat. Actívalo solo si sabes lo que haces: el modo de permisos por defecto del panel no pide confirmación para nada.
En modo delegado, los buzones compartidos a los que ya tengas acceso. En modo aplicación, los que el administrador haya abierto con una ApplicationAccessPolicy.

Google

Conecta Gmail, Google Drive y Google Calendar. Hace exactamente lo mismo que Microsoft 365 y por los mismos sitios: el buzón lateral, la agenda, el explorador de archivos y las herramientas del agente son los mismos — el panel mira de qué cuenta es cada cosa y pregunta a quien toca.

Hace falta un proyecto en Google Cloud con las APIs de Gmail, Drive, Calendar y People activadas, y un ID de cliente OAuth de tipo «Aplicación web». La URL de retorno autorizada que debes dar de alta es .

Desactivado, el agente solo deja el borrador en Gmail y lo envías tú desde el chat. Es un ajuste aparte del de Microsoft a propósito: son dos aplicaciones distintas y puedes querer una cosa en cada una.
Cada cuenta inicia sesión por su cuenta: pulsa «Conectar cuenta» otra vez para añadir una segunda y las dos quedan disponibles a la vez. La marcada como principal es la que se usa cuando no dices cuál.

WhatsApp

Vincula tu teléfono y trae tus chats al panel: lista lateral, chats como contexto de una conversación y herramientas de WhatsApp para el agente. Es el mismo papel que tiene Outlook, con tu número real.

⚠️ Léelo antes de vincular. Esto se conecta como WhatsApp Web usando tu número real. No es una API oficial de Meta y su uso va contra sus Términos de Servicio: existe riesgo de que el número sea bloqueado. Úsalo con un número que puedas permitirte perder.
Sin vincular.
Desactivado, el agente solo deja el borrador en el chat y lo envías tú. Actívalo solo si sabes lo que haces: en WhatsApp no hay «deshacer», y el modo de permisos por defecto del panel no pide confirmación para nada.
Se le pone a los números que escribas sin prefijo al empezar un chat nuevo: «600 11 12 22» sale como +34 600 11 12 22. Déjalo vacío para tener que escribir siempre el número completo.
Se configura una sola vez para todo el panel, en Voz, aquí abajo: el mismo proveedor sirve para las notas de voz de WhatsApp, para los audios que llegan por correo y para los del chat.

Voz

Audio a texto para todo el panel: las notas de voz de WhatsApp, los audios que llegan como adjunto de un correo, los ficheros que sueltas en el chat y lo que dictas con el 🎤 del compositor. Los audios largos se trocean solos y cada transcripción se cachea, así que el mismo audio no se paga dos veces.

Viene apagado, pero encenderlo es barato: la opción recomendada es en este servidor, que corre Whisper dentro del contenedor. No necesita clave de nadie, no cuesta por minuto y —lo que más importa con notas de voz de clientes— el audio no sale de la máquina. Solo la primera vez tarda, mientras se descarga el modelo.

Local gasta CPU del contenedor y va más lento; los otros dos van rápidos pero mandan el audio fuera y se pagan por minuto.
Vacío = se usa GEMINI_API_KEY / OPENAI_API_KEY del entorno.
Para fijar uno concreto sin esperar a que cambie el código.
Código ISO como es o en. Fijarlo ayuda cuando el audio es corto o tiene ruido.
Encendido, un audio que entra por el chat o por un correo llega ya como texto. Apagado, se transcribe solo cuando lo pides tú o el agente.
Tope de seguridad: por encima, el panel se niega en vez de mandar medio gigabyte a un proveedor de pago.

Skills automáticas

El agente puede destilar lo que aprende resolviendo una tarea en una skill reutilizable, y mejorarla cuando le corriges. Las revisas en Recursos → Skills.

En «Proponer», las propuestas se guardan fuera de .claude/skills, así que el motor no las carga hasta que las apruebas.

Memoria persistente

Lo que el agente sabe entre conversaciones. Se inyecta en todas ellas, así que conviene que sea corto y curado; el propio agente la actualiza con la herramienta recordar.

Heartbeat (vigilancia proactiva)

Cada N minutos el agente repasa esta checklist y solo habla si encuentra algo («mira si hay correo urgente de X», «comprueba que el job nocturno dejó el CSV»). Con la checklist vacía no cuesta nada: ni sesión ni tokens. Se aplaza solo mientras haya turnos en marcha.

Tipos de uso

Lo que se ofrece al crear una conversación. Cada tipo fija un modelo y un esfuerzo de razonamiento; después puedes cambiar el modelo en la barra del chat sin restricción.

Paneles remotos

Otros despliegues de este panel cuyas conversaciones puedes ver y llevar desde aquí. La relación es de un solo sentido: desde el panel remoto no se ven las de este. Sus conversaciones aparecen en la lista bajo 🛰 nombre.

En el panel remoto hay que definir la variable de entorno PANEL_FED_TOKEN con el mismo token. Sin ella su puerta de servicio no existe (responde 404).

Perfiles (entornos)

Perfiles con workspace, modelo, esfuerzo, permisos, variables, personalidad y skills propias. Asigna un perfil a cada conversación desde la barra del chat.

Se antepone a las instrucciones de sistema en cada turno de las conversaciones con este perfil.
Marca las que este perfil debe ver. Las no marcadas quedan ocultas para el agente.

Servidores MCP

JSON con los servidores MCP disponibles para el agente. Ejemplo: {"github": {"command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": {"GITHUB_TOKEN": "…"}}}

Variables de entorno

Se inyectan al agente y a las terminales. Formato NOMBRE=valor, una por línea.

CLAUDE.md del workspace

Memoria/instrucciones del proyecto que Claude Code lee automáticamente.

Gateways

Habla con este mismo agente desde otros canales. Cada chat externo se convierte en una conversación aquí, visible en tiempo real.

Telegram

Funciona por long-polling: no necesita webhook. Escribe al bot y te dirá tu chat ID si aún no estás autorizado.

WhatsApp (Meta Cloud API)

Configura el webhook en Meta: · campo messages.

Esto es el gateway Cloud API: recibe mensajes y el agente contesta solo. Es un transporte distinto del de la vista 📱 WhatsApp (Baileys), que vincula tu número real y trae tus chats al panel. No tiene sentido tener los dos activos sobre el mismo número.

Webhook HTTP (para n8n, Make, scripts…)

Uso: con JSON {"message": "…", "sessionKey": "opcional"}

Seguridad

Al cambiarla se cierra la sesión en el resto de dispositivos.

Verificación en dos pasos (2FA)

Cargando…

Escanea el QR con Google Authenticator, 1Password, Authy… o introduce la clave a mano:

Códigos de recuperación — guárdalos ahora; no se volverán a mostrar. Cada uno vale para un solo acceso si pierdes la app:


              
            

Sesiones activas

Cargando…

Últimos accesos

Conversaciones de Claude Code ⇄

Trae aquí una conversación que tengas en Claude Code y sigue con todo su contexto, o llévate una de este panel a tu Claude Code. Se intercambia el propio transcript del motor, no un resumen.

Para exportar: menú ⋯ de cada conversación → ⤴ Exportar a Claude Code.

Python persistente 🐍

Los paquetes se instalan en un entorno virtual dentro del volumen (/data/venv), así no se pierden al reiniciar. Instala con pip install … desde el chat o el terminal; para apt no hay persistencia.

Ver paquetes instalados

Sistema

💾 Consejo: añade un volumen en Railway montado en /data para que configuración, conversaciones y workspace sobrevivan a los redeploys.

⤓ Traer una conversación de Claude Code

Se importa el transcript de la conversación, así que al escribir aquí el agente continúa con todo su contexto, no solo con el texto.

Conversaciones de Claude Code que ya están en este contenedor: las de la terminal (claude) y las de este panel. Útil para pasar al panel algo que empezaste en la terminal.

En tu ordenador (Claude Code de terminal)
Cada conversación es un fichero en ~/.claude/projects/<carpeta-del-proyecto>/<id>.jsonl. Para localizar la que quieres:

ls -lt ~/.claude/projects/*/ | head
# o busca por su contenido:
grep -rl "una frase de la conversación" ~/.claude/projects | head

Sube ese .jsonl aquí. También vale desde el móvil si te lo envías.

En Claude Code web (claude.ai/code)
Esa sesión vive en un contenedor de Anthropic; no hay API pública para descargarla desde fuera. Pídeselo a la propia sesión: que copie su ~/.claude/projects/…/<id>.jsonl al repositorio (o te lo entregue como fichero) y súbelo aquí.

Para devolverla a Claude Code
En el menú ⋯ de cualquier conversación tienes ⤴ Exportar a Claude Code: te descarga un zip con el transcript, un script que lo deja donde Claude Code lo busca y las instrucciones.

⤴ Llevar esta conversación a Claude Code

Se descarga el transcript en el formato de Claude Code, con un script que lo instala en tu máquina. Después la sigues con claude --resume.

Si la indicas, el transcript ya viene apuntando ahí. Si no, el script la ajusta a la carpeta donde lo ejecutes.

🔍 Buscar en Outlook

Busca en tus buzones y adjunta los hilos que necesites a esta conversación: quedan volcados como markdown y el agente los lee con el resto del material.

📱 Buscar en WhatsApp

Busca entre tus chats y adjunta los que necesites a esta conversación: quedan volcados como markdown y el agente los lee con el resto del material. Busca por nombre de contacto y también dentro de los mensajes.

➕ Añadir a una conversación

…o crear una conversación nueva

✍️ Redactar

✍️ Firmas de correo

Varias firmas con nombre y, por cada buzón, cuál va en los mensajes nuevos y cuál en las respuestas y reenvíos — el mismo modelo que Outlook. Se insertan en los correos que salen de este panel.

No se sincronizan con Outlook. Microsoft Graph no expone las firmas del buzón por ninguna vía pública (ni mailboxSettings ni beta), y la única que hubo —EWS— se retira en octubre de 2026. Así que estas firmas viven en el panel: lo que escribas aquí no aparece en Outlook web ni en el de escritorio, ni al revés.

Tus firmas

Firma predeterminada de cada buzón

📅 Nueva reunión

🔁 Es una reunión periódica

¿El cambio se aplica solo a esta cita o a toda la serie?

📎 Elegir archivo

📁 Mover a la carpeta…

📧 Correos de esta conversación

✨ Skill

♻️ Reiniciar contexto

El agente deja de recordar lo hablado y empieza de cero. Los mensajes que ves en pantalla son otra cosa: puedes conservarlos como registro o borrarlos también. Compactar es el término medio: el motor arranca de cero pero con un resumen de lo esencial.

Detalle

🕸 Grafos de conocimiento

Un grafo es un mapa del código extraído del AST: qué llama a qué, quién importa a quién. Se construye en local y sin coste en tokens. Al adjuntarlo a una conversación, el agente recibe el informe y puede consultar el grafo citando fichero y línea.

graphify no está instalado en el entorno Python del panel.

Los documentos (.md, .sql, configs…) se indexan por su estructura, en local y sin coste. La lectura semántica profunda de PDFs e imágenes necesitaría una clave de LLM y no está activada.

Grafos ya construidos en el despliegue

Si un repo ya trae su grafo hecho (una carpeta graphify-out/, o un graph.json versionado), se importa tal cual: sin reconstruirlo, al instante y sin necesitar graphify. A partir de ahí es un grafo más — se adjunta, se ve y se rehace igual.

Grafos existentes

✴️ ¿Para qué es esta conversación?

Fija el modelo y el esfuerzo de razonamiento. Puedes cambiarlos después desde la barra del chat.

🏛 Someter al panel de deliberación

Varios modelos responden a la vez y un juez compara: consenso, contradicciones, aportes únicos y puntos ciegos. El agente recopilará antes el contexto del repositorio que haga falta. Elige con qué panel.

Diff


      

📦 Nueva conversación desde un repo

El agente quiere usar una herramienta


      

🤔 El agente necesita tu respuesta

Responde para que pueda continuar (o planificar) mejor.

📱 Vincular WhatsApp

En el teléfono: WhatsApp → Ajustes → Dispositivos vinculados → Vincular un dispositivo, y escanea este código.

Más cómodo desde el móvil. Escribe tu número con prefijo de país (sin «+» ni espacios) y luego, en el teléfono: Dispositivos vinculados → Vincular con el número de teléfono.

⚙️ Tareas y trabajos en segundo plano

Todo lo que está corriendo en el panel, de todas las conversaciones. Marca lo que quieras para detenerlo o quitarlo del listado.

📋 Plan propuesto