Claude Ecosystem

offline

Arranca claude en modo interactivo. Mismo comportamiento que en CLI: slash commands, plan mode, permission prompts. En movil usa la barra de teclas inferior para ESC / Tab / Ctrl+C / flechas.

terminal
Cargando actividad...
online offline
-
Nodos online
-
Entidades en el grafo
-
Relaciones en el grafo
-
Líneas de código (censo)
Grafo del ecosistema (BD en vivo — es lo que se inyecta a cada tarea en cualquier nodo)
Cargando grafo…
Censo de código (snapshot diario por nodo — líneas de código, sin deps ni binarios de modelos)
Evolución de líneas por nodo
Líneas por lenguaje
SCADA Health (via monitorSalud en pa-ot)
Sin datos. Activa CEREBRO_PUSH_ENABLED=true en monitorSalud/.env de pa-ot.
Topologia
movil / browser localStorage token cerebro (DROPLET DO) cerebro-ecosystem.duckdns.org fra1 caddy(https) + uvicorn + postgres-16 pg_dump diario 03:00 UTC personal NITRO15SFP 7 Flask + 10 repos git claude-ecosystem agente droplet acceptEdits pa-ot CLISCADA02 (OT) 11 repos git + snapshot 03:30 pa-laptop PaW corporate no conectado
Detalle por nodo

personal NITRO15SFP

workdir: C:\PythonApps\claude-workspace · bypassPermissions
8001OutlookReaderrunning
8002GmailReaderrunning
8003JiraReadertoken 2026-12-31
8004OutlookCOMReaderrunning
8005PlaudManagerdisabled
8006PlaudSchedulerrunning
8007WebMonitor (_infra)running
WSclaude-agent → cerebrorunning
Task Scheduler 9 tareas Repos git 10 en fraidey/* Integraciones Jira, Gmail, Outlook x2, Plaud, Anthropic, DO, MSAL, Telegram

claude-ecosystem droplet DO

cerebro-ecosystem.duckdns.org (165.232.66.22) · s-1vcpu-2gb · ufw 22+443
8000cerebro.service (uvicorn)active
WSclaude-agent.serviceactive
5432postgres-16 (localhost)db: ecosystem
croncerebro-backup (03:00 UTC)7d rotacion
22sshdrunning
BD nodes, tasks, memory, events Disco 3.6GB / 48GB (8%) Repo fraidey/claude-ecosystem Deploy scp (sin git pull)

pa-ot CLISCADA02

red OT · acceptEdits · sandbox 8 dirs · workspace OneDrive corporativo
WSclaude-agent → cerebroonline
CLIclaude-code v2.1.150opus-4-7
MQTTMQTTserver (amqtt + NSSM)prod
OPCOpcUaBridge → SRVSCADA01:4990key en OneDrive
8090MonitorSalud (svc Windows)prod
cronETL_EnergiasExogenos (180min)prod
13 proyectos DT energias-paw, MQTTserver, OpcUaBridge, monitorSalud, newLlums, BDD, PowerBI, etc. Stack OT Allen-Bradley + Rockwell + HiveMQ Cloud + AWS Athena/S3 git 11/13 en fraidey/* + auto-snapshot daily 03:30 ✓

pa-laptop PaW corporativo

no conectado · Fase 4 pendiente
-agente sin desplegar (toml con token placeholder)offline
Rol futuro stack de retrieval V2+ (unico con acceso al corpus DT 200k)
Inventario de proyectos
pa-ot · DT Projects — 17 proyectos (OneDrive corporativo + apps Heroku) + features en prod
OT / SCADA — producción crítica
MQTTserverBroker amqtt :1883/9001 + receptor QTs (HiveMQ Cloud + paho + asyncio-mqtt), NSSM serviceprodgit
OpcUaBridgeCapa OPC UA 64-bit → SRVSCADA01:4990 (asyncua 1.1.8, Python 3.13, ~1400 tags/s)prodgitkey OneDrive
monitorSaludDashboard salud SCADA — Flask :8090 como servicio Windows (push a /api/health/scada)prodgit
appPLCremotoControl remoto PLCs Allen-Bradley/Rockwell (Python + OPC + MQTT + VBA)prodgit
ETL / datos / energías
energias-pawETL medallion bronze→silver→gold (Postgres/Supabase + AWS Athena/S3 + Nedgia + Agbar + AEMET/NASA + Jira + SharePoint). El proyecto más grande del workspace.activogitgrande
BDDRepositorio SQLite central: BDD_energias, PeticionesQTs, QT_Estados, Llums_Master, TipusDia, Replica_SQLServeractivogit
↳ feat ANP Reparto CostesReparto Agua No Potable por site, reactivo+mensual (devengo ÷N meses) vía flujo Power Automate + factores. Cuadre exacto, validado en prod.prod
Aplicaciones web (Heroku) + escritorio
newLlums / Webapp LlumsWebapp Flask en Heroku (portaventura-llums) + motor de reglas IFTTT sobre Postgres (schema iftht, RulesEngine cada 15 min → OPC UA) + réplica SQL Server. Pestañas Horarios/Recintos/Climas.prodHeroku
↳ feat Climas + IoT296 QTs de climatización con estado/programación/IFTTT + temperatura IoT LoRaWAN (sparkline 6h). Heroku v136.prod
↳ feat Importador telemandosPágina /importar: subida xlsx, dry-run/aplicar, backup + auditoría. Heroku v144, validado E2E.prod
capex-dtWeb CAPEX/Proyectos Técnicos del Dpto. Técnico — Heroku (capex-dt-pa) + Supabase. Máquina de 7 estados de Necesidad (stepper UI).prodHeroku
appOnlinePeticionQTsWebApp Flask para peticiones de Quadres Tèrmics (MQTT/HiveMQ Cloud)activogit
ProgramaLlumsDesktop QTs (FiltroCeco) — port C# WinForms → PySide6activogit
BI / informes (Power BI Service)
PowerBIDashboards PBIP (BI Electricidad, BI IoT PAW) + GUIA_EXOGENAS_PBIP.mdactivogit
BI Control Operativo RT v2Informe del Service (DT Rides): Gantt Deneb de dispatches. Editado 100% por API (getDefinition/updateDefinition PBIR+TMDL).prod
Informe PBI AssignmentsInforme Mobaro (asignaciones)activo
Transversal / utilidades / contenedores
GenericNotifiers compartidos: email_notifier, graph_mail, telegram_notifier, mini_webhook.py — índice del workspaceactivogit
GeneralContenedor (solo Python/), sin README — propósito poco clarovacío
iot_managerPlaceholder OneDrive sin sync (carpeta vacía en pa-ot)sin sync
personal · fraidey/* — 13 repos privados en GitHub (C:\Users\SergioFrailePérez\PythonApps + C:\PythonApps)
Lectores de email / mensajería
OutlookReader:8001 — MSAL multi-cuenta (leannovo + portaventura + outlook personal)running
GmailReader:8002 — OAuth Google + Telegram botrunning
OutlookCOMReader:8004 — COM (requiere Outlook desktop abierto)running
correo-paw-webWeb móvil + "segundo cerebro" del correo PAW: FastAPI droplet :8010 (correo.cerebro-ecosystem.duckdns.org) + connector WS al portátil → OutlookCOMReader + claude headless (skill correo-paw) + corpus vectorialrunningweb
Productividad / asistente personal
JiraReader:8003 — REST API Jira PortAventuratoken 2026-12-31
PlaudSummarizer:8006 — Pipeline modular fetch/identify/process/dispatch (4 tests + /status)running
PlaudLectorAppPlaud reader con cifrado local (no corre como servicio)local
PlaudManager:8005 — Legacy desde 2026-05-10, kept for historydisabled
Generación local con GPU (RTX 4060, air-gap offline)
imagegenCLI texto→imagen con diffusers (SDXL / RealVisXL, DPM++ Karras) + img2img. Offload secuencial, 100% offline.localgit
videogenCLI texto→vídeo (CogVideoX-2b / LTX / Wan) e imagen→vídeo (SVD). HF_HUB_OFFLINE, cero red en generación.localgit
Infraestructura / plataforma
pythonapps-infra:8007 WebMonitor + setup_tasks.ps1 + master_monitor + start_services.ps1running
claude-ecosystemRepo canónico del cerebro + agente + docs/ (este mapa) — sync de vuelta desde el dropletrepo
openplawdRepointed desde nicolasglg → fraidey (único commit 034f8fb)archive
claude-ecosystem · droplet DO — componentes en cerebro-ecosystem.duckdns.org / 165.232.66.22 (fra1)
Servicios runtime
cerebro.serviceuvicorn :8000 (solo localhost) — API REST + WS hub (agentes/dashboard/terminal) + UIprod
claude-agent.serviceAgente worker del propio droplet (workdir /opt/claude-workspace)prod
claude-voz.serviceCanal de voz Telegram ⇄ cerebro (telegram-voz): Whisper + Piper 100% localprod
postgres-16DB "ecosystem" (localhost:5432) — 9 tablas: nodes, tasks, events, memory, graph_entities/edges, code_census, devices, pages9 tablas
cron backup + censopg_dump 03:00 UTC (rot 7d) + censo de código 03:05activo
Webapp del cerebro + features
cerebro dashboardstatic/index.html — pestañas Terminal (móvil/cuadrícula), Actividad, Mapa (este mapa). Badge de uso de Claude.prod
Censo de códigoSnapshot diario por nodo (líneas/ficheros/lenguajes) → tabla code_census → panel Chart.js del Mapaprod
Subida de ficheros (móvil)Botón 📎 en cada terminal web: sube imagen/fichero por chunks sobre /ws/terminal → <cwd>/.uploads/prod
Páginas HTML efímeras/api/pages + /p/{code}: publica HTML cifrado E2E (skill publicar-html)prod
pa-laptop · PaW corporativo — Fase 4 pendiente
Estado
agenteSin desplegar (config toml con token placeholder). Rol futuro: stack de retrieval V2+ con acceso al corpus DT 200koffline
Integraciones externas
Cloud / infra
DigitalOceandroplet fra1 s-1vcpu-2gb (cerebro) + doctl en personal
AWS S3LoRaWAN bucket (telemetria IoT)pa-ot
AWS Athenaqueries sobre S3 (energias-paw scripts)pa-ot
SupabasePostgres gestionado (silver/gold energias-paw)pa-ot
HiveMQ Cloudbroker MQTT externo (espejo del propio)pa-ot
SCADA / OT industrial
SRVSCADA01FactoryTalk Linx Gateway · trust store en \\PKI\trusted\key OneDrive
OPC UAopc.tcp://SRVSCADA01:4990 Basic256+SignEncrypt (asyncua)
OPC DAlegacy 32-bit subprocess (bloqueado DCOM 2026-03-20)legacy
Allen-BradleyPLCs accesibles via appPLCremoto
Rockwellstack PLC + FactoryTalk
MQTT propioamqtt :1883/9001 + receptor QTs (NSSM)
Energias / utilities (RPA + APIs)
Nedgiagas — RPA + extraccion (10 ventanas JSON commit)datos en git
Agbaragua — web scraping playwright → Supabase
AEMETmeteo Espana (API)
NASA POWERmeteo global (API)
Open-Meteometeo backup
TarsisDB legacy electricidad (lectura directa)
Productividad / colaboracion
Jira PAREST API (JiraReader :8003)token 2026-12-31
GmailOAuth Google (GmailReader :8002)
Outlook 365MSAL multi-cuenta — leannovo + portaventura + personal
Outlook COMdesktop COM (requiere Outlook abierto)
SharePointMSGraph (sharepoint_client.py en energias-paw)
Telegrambot API (GmailReader + Generic notifier)
Plaud Cloudbearer token (PlaudLectorApp + Summarizer)
Anthropic / Claude
claude CLImotor de los agentes: headless (--print/--resume) + interactivo, en los 3 nodos · caching automático
Modelo por tareaOpus 4.8 (razonar) · Haiku/Sonnet (clasificador y tareas de 1 turno)
MCP serversclaude.ai web: Atlassian, Gmail, Drive, Notion, Linear, Supabase, etc.web
API + BD del cerebro
Endpoints · https://cerebro-ecosystem.duckdns.org (Caddy→uvicorn :8000 solo local)
GET /dashboard movil (HTML + JS, este frontend)no auth
POST /api/taskslanza tarea one-shot a un nodo + históricoBearer
GET /api/nodeslista nodos + inventory (online en vivo)Bearer
GET/POST /api/graph[/map]grafo global (entities/edges) + mapa inyectado a tareasBearer
GET/POST /api/censuscenso de código por nodo (Chart.js del Mapa)Bearer
GET/POST /api/memorymemoria/facts compartidos (tags)Bearer
/api/health/scadasalud SCADA (push desde monitorSalud)Bearer
/api/notify · /api/devicespush notifications a móviles registradosBearer
/api/pages · GET /p/{code}páginas HTML efímeras cifradas (E2E)Bearer
/api/claude-usagebadge de uso de Claude (pestaña Terminal)Bearer
WS /ws/{agent,dashboard,terminal}agente↔cerebro · eventos al navegador · PTY (xterm.js)Bearer
Postgres 16 · DB "ecosystem" (localhost:5432 · 9 tablas)
nodesid, hostname, online, last_seen, inventory(JSONB)
tasks · eventshistórico tareas one-shot + bus de eventos
graph_entities · graph_edgesgrafo global (61 entidades / 34 relaciones)vivo
memorymemoria compartida k/v + facts (JSONB)
code_censussnapshot diario ficheros/líneas/lenguajes por nodo
devices · pagestokens push móvil · páginas HTML efímeras cifradas
backuppg_dump → /var/backups/cerebro/*.sql.gz · 03:00 UTC · 7d rot
Servicios systemd + seguridad · droplet
cerebro.serviceuvicorn server:app :8000 (solo localhost)
claude-agent.serviceagente WS local del droplet (workdir /opt/claude-workspace)
claude-voz.servicebot Telegram voz ⇄ cerebro (Whisper + Piper local)
CaddyTLS · duckdns.org→:8000 · correo.duckdns.org→:8010443
postgresql@16-mainDB ecosystem · localhost only
cronbackup BD 03:00 · censo código 03:05
ufwdeny incoming · open 22/80/443/8010 (8000 NO expuesto)endurecido
Stack tecnologico (versiones clave)
Cerebro (droplet)
Python3.12 · venv en /opt/claude-ecosystem/cerebro/venv
FastAPI+ uvicorn[standard]
asyncpgcon jsonb codec custom
Postgres16 (apt)
OSUbuntu (systemd)
Agentes (Windows + Linux)
Python (win)3.9 + pywinpty (ConPTY)
Python (linux)misma version + pty stdlib
websockets13.1 (usa extra_headers, NO additional_headers)
watchdogpara file_change events
Claude CodeCLI headless (--print/--resume) · caching automático
Modelo por tareaOpus 4.8 (razonar) · Haiku/Sonnet (clasificador y 1-turno)
OT stack (pa-ot)
OpcUaBridgePython 3.13 + asyncua 1.1.8 + cryptography 42+ · venv aislado
MQTTserveramqtt 0.11.0b1 + paho 2.0+ + asyncio-mqtt 0.16+
PySide6ProgramaLlums (port C# WinForms)
NSSMwrapping Python como servicio Windows (MQTT + monitorSalud)
Workspace3 venvs: .venv (64) · .venv32 (OPC DA legacy) · env
Frontend (este dashboard)
xterm.js+ FitAddon + WebLinksAddon
Vanilla JSsin framework · localStorage para token + term session
Mobile-firstvisualViewport + safe-area · keybar + teclado HTML · topbar scrollable
Flujo de datos · energias-paw (medallion)
   FUENTES                         BRONZE            SILVER             GOLD              CONSUMO
   ───────                         ──────            ──────             ────              ───────
   AEMET / NASA / Open-Meteo  ──┐
   Nedgia (gas RPA)           ──┤
   Agbar (agua scraping)      ──┼──>  Postgres   ──>  Postgres     ──>  Postgres      ──>  PowerBI (BI Elec, BI IoT)
   Tarsis (electricidad DB)   ──┤    raw / land        cleaned            balance &          Jira (epicas)
   AWS S3 / Athena (LoRaWAN)  ──┤                                         repartos           SharePoint (reports)
   SharePoint (MSGraph)       ──┘                                                            scripts utils/ (50+)

   ORQUESTACION: scripts/orquestador_etl_exogenos.py  (Task Scheduler \PortAventura\ETL_EnergiasExogenos · cada 180 min)
   VENV:        OneDrive workspace (.venv compartido)            ENV:  .env declara solo Jira → falta postgres/sharepoint/aemet/nedgia/agbar (deuda)
   DEUDA TOP:   requirements.txt no declara psycopg2/pandas/openpyxl/playwright/pdfplumber/office365 (existen pero no listados)
      
Riesgos top (revisado 2026-07-04)
🚨 Clave privada OPC UA en OneDrive
pa-ot · OpcUaBridge/pki/opcua_prod_key.pem permite firmar contra SRVSCADA01 (16728+ tags). Gitignored, pero la key sigue en OneDrive sync. Palanca J, sigue abierta.
Cerebro desplegado sin sync a git
Cambios del cerebro/agente en vivo en el droplet SIN sincronizar a fraidey/claude-ecosystem (nodo personal suele estar offline). El droplet es hoy la única copia de varios cambios. Palanca urgente.
Tokens en plaintext
monitorSalud/.env y configs varias en OneDrive sincronizado. Sin cifrado más allá de permisos NTFS. Token Graph de mtobi.gestor caduca ~15 días (Conditional Access) → renovación manual recurrente.
energias-paw requirements obsoleto
Declara pocas deps pero usa 20+ (psycopg2, pandas, playwright, pdfplumber, msal...). Runtime depende del venv compartido de OneDrive.
Fortinet bloquea *.herokuapp.com desde pa-ot
Se puede hacer git push a Heroku (deploy), pero NO GET a las apps propias (Llums, capex-dt) desde la red OT. Verificación E2E depende de otro nodo/red.
✓ Git en los 3 nodos + backups
13 repos fraidey/* (personal) + 11 repos PAW OT + snapshot daily 03:30 (pa-ot). pg_dump BD diario 03:00 (rot 7d).
✓ Cerebro + grafo global + voz
Hub FastAPI con grafo vivo (61 entidades) inyectado a cada tarea, censo de código diario, canal de voz Telegram (STT/TTS local) y push a móvil.
Siguientes palancas
🚨 J: mover key OPC UA (urgente)
Sacar pki/ del sync OneDrive, rotar cert, redeploy en SRVSCADA01 trust store. El gitignore lo bloquea del repo, pero la key sigue en disco sincronizado.
Sync del cerebro a fraidey/claude-ecosystem
Empujar los cambios en vivo del droplet (dashboard, censo, subida ficheros, badge, voz) al repo canónico en cuanto el nodo personal vuelva online.
Desplegar censo a pa-ot y personal
tools/code_census.py ya corre en el droplet (03:05). Falta el cron en pa-ot (03:30) y personal para censo completo del ecosistema.
Derivar tarjetas del Mapa del grafo
Las tarjetas curadas por nodo aún son HTML manual (derivan). El grafo en vivo ya es la fuente; renderizarlas desde /api/graph eliminaría la deriva.
E: cifrar credenciales + rotación token Graph
DPAPI/keyring en personal + monitorSalud .env en pa-ot. Automatizar o alargar la renovación del device-code de Graph.
H: desplegar pa-laptop (Fase 4)
Único nodo con corpus DT 200k. Desbloquea el stack de retrieval V2+ del Cerebro DT.
Grafo global en vivo en la BD del cerebro (inyectado a cada tarea) · repo canónico fraidey/claude-ecosystemdocs/.
Auditoría inicial 2026-05-23 → git multi-repo + backups BD → git PAW OT + snapshot daily → grafo global, censo de código, canal de voz y este Mapa. Nodos online y contadores en vivo desde el cerebro. Última revisión del Mapa: 2026-07-04.

Escribir / dictar / pegar

Para dictar: pulsa el micro 🎤 del teclado y habla. "Enviar" deja el texto en la terminal (tu das Enter); "Enviar + ⏎" lo ejecuta.
Selecciona y copia con el dedo
Manten pulsado sobre el texto para seleccionar y copiar

sesion

Nueva conversacion