Roo Activity Logger

Registra automáticamente las actividades del asistente de codificación

Documentación

Roo Activity Logger

Versión en japonés | Versión en chino

TL;DR

  • ¿Qué es? — Es un servidor MCP que registra automáticamente las actividades de los asistentes de codificación con IA, como ejecuciones de comandos y generación de código (compatible con Roo Code, Cline, Claude Code, etc.).
  • ¿Qué hace? — Guarda el historial de actividades como archivos JSON, que puedes buscar y analizar más tarde.
  • ¿Cómo lo uso? — Añádelo a tu configuración de Claude Code, Cline o Roo-Code para habilitar el registro automático de actividades.

Descripción general

Roo Activity Logger es un servidor MCP (Model Context Protocol) que registra automáticamente las actividades de desarrollo de los asistentes de codificación con IA, incluyendo ejecuciones de comandos, generación de código, operaciones de archivos y más. Es compatible con Claude Code, Cline, Roo-Code y otros asistentes de IA compatibles con MCP. Todos los registros se guardan en formato JSON, lo que facilita la búsqueda, el análisis y la restauración del contexto en cualquier momento.

Cómo funciona el registro de actividades

flowchart TD
    A[Roo's Action] --> B[Select Activity Type]
    B --> C[Log via log_activity]
    C --> D[Provide Log Info<br>- Summary<br>- Details<br>- Intention<br>- Context]
    D --> E[Specify Save Directory]
    E --> F[Save as JSON file]

Cómo buscar registros y restaurar el contexto al reanudar una tarea

flowchart TD
    G[Resume Task] --> H[Search with search_logs]
    H --> I[Set Search Filters<br>- Type<br>- Date Range<br>- Text]
    I --> J[Retrieve Related Activities<br>- Parent/Child<br>- Sequence<br>- Related IDs]
    J --> K[Restore Context & Resume<br>- Review Past Intentions<br>- Understand Progress]

Ejemplo de entrada de registro

Aquí hay un ejemplo de una entrada de registro de tipo file_operation guardada como JSON:

{
  "id": "75add15d-8d5b-4e60-b327-fde785050c86",
  "timestamp": "2025-04-10T01:58:02.905Z",
  "type": "file_operation",
  "level": "info",
  "summary": "Inserted mermaid diagram into README.md",
  "details": {
    "file": "README.md",
    "operation": "insert_content",
    "insertedLines": "mermaid code block",
    "position": "after overview section"
  },
  "intention": "To visually explain the flow of saving and retrieving activities",
  "context": "Improving documentation for Roo Activity Logger",
  "parentId": "98280366-1de1-48e0-9914-b3a3409599b4"
}

Cada registro contiene:

  • Nivel de registro (debug, info, warn, error)
  • Resumen
  • Detalles (cualquier dato estructurado)
  • Intención / Propósito
  • Información de contexto
  • ID de actividad principal (para jerarquía)
  • Número de secuencia (para ordenar)
  • IDs de actividades relacionadas (para agrupar)

Los registros:

  • Se guardan como archivos JSON basados en fecha
  • Se pueden buscar por tipo, nivel, fecha, texto, etc.
  • Son personalizables — puedes especificar diferentes directorios de guardado por actividad

Características

  • Registra varios tipos de actividad:

    • Ejecuciones de comandos (command_execution)
    • Generación de código (code_generation)
    • Operaciones de archivos (file_operation)
    • Errores (error_encountered)
    • Decisiones (decision_made)
    • Conversaciones (conversation)
  • Cada registro de actividad incluye:

    • ID único
    • Marca de tiempo
    • Tipo de actividad
    • Resumen, detalles, intención, contexto y metadatos opcionales

Uso (Recomendado: mediante npx)

Puedes ejecutar Roo Activity Logger directamente sin clonar el repositorio usando npx.

Añade esto a tu configuración de Cline, Roo-Code o Claude Code:

{
  "mcpServers": {
    "roo-activity-logger": {
      "command": "npx",
      "args": ["-y", "github:annenpolka/roo-logger"],
      "env": {},
      "disabled": false
    }
  }
}

Luego, añade indicaciones a tus archivos de reglas (para Cline/Roo-Code) o CLAUDE.md (para Claude Code) para asegurar el registro, por ejemplo:

## Important

Always log activities using roo-activity-logger according to the logging rules.

## Preparation

Check the current context with `git status`.

Then, use roo-activity-logger's `search_logs` to review existing logs and identify current tasks.

Be sure to perform the logging steps.

## Logging

- Always use roo-activity-logger for all logs
- Include stack traces and execution context
- Record intention and context

Para desarrolladores: Configuración local

Para desarrollar o personalizar localmente, clona el repositorio y compila:

# Clone the repo
git clone https://github.com/annenpolka/roo-logger.git
cd roo-logger

# Install dependencies
npm install

# Build
npm run build

Ejemplo de configuración para usar tu compilación local:

{
  "mcpServers": {
    "roo-activity-logger": {
      "command": "node",
      "args": ["/path/to/your/local/roo-logger/dist/index.js"], // adjust path accordingly
      "env": {},
      "disabled": false
    }
  }
}

Notas

  • El directorio especificado se creará automáticamente si no existe.

Herramientas MCP

log_activity — Registrar una actividad

Una herramienta para registrar una actividad.

Ejemplo básico

{
  "type": "command_execution",
  "summary": "Run npm command",
  "intention": "Update project dependencies",
  "context": "Preparing for new feature development",
  "logsDir": "/absolute/path/to/logs/activity"
}

Parámetros

NombreRequeridoTipoDescripción
typeSístringTipo de actividad (command_execution, code_generation, file_operation, error_encountered, decision_made, conversation)
summarySístringResumen breve de la actividad
intentionSístringPropósito o intención
contextSístringInformación de contexto
logsDirSístringDirectorio de guardado (solo ruta absoluta)
levelNostringNivel de registro (debug, info, warn, error). Predeterminado: info
detailsNoobjectDetalles adicionales (cualquier JSON)
parentIdNostringID de actividad principal
sequenceNonumberNúmero de secuencia
relatedIdsNostring[]IDs de actividades relacionadas

Ejemplo detallado

{
  "type": "file_operation",
  "summary": "Update README file",
  "intention": "Clarify documentation and improve usability",
  "context": "Improvements based on user feedback",
  "level": "info",
  "details": {
    "file": "README.md",
    "operation": "update",
    "changedLines": 15
  },
  "logsDir": "/absolute/path/to/logs/activity",
  "sequence": 3,
  "relatedIds": ["11223344-5566-7788-99aa-bbccddeeff00"]
}

get_log_files — Listar archivos de registro guardados

Lista los archivos de registro guardados de forma recursiva. Puedes especificar la profundidad máxima de búsqueda.

Ejemplo básico

{
  "logsDir": "/absolute/path/to/logs"
}

Parámetros

NombreRequeridoTipoDescripción
logsDirSístringDirectorio a buscar (solo ruta absoluta)
limitNonumberMáximo de archivos a recuperar (predeterminado: 10)
offsetNonumberNúmero de archivos a omitir (predeterminado: 0)
logFilePrefixNostringPrefijo del archivo de registro (predeterminado: "roo-activity-")
logFileExtensionNostringExtensión del archivo de registro (predeterminado: ".json")
maxDepthNonumberProfundidad máxima de directorio (predeterminado: 3)

search_logs — Buscar registros guardados

Busca registros guardados con varios filtros.

Ejemplo básico

{
  "logsDir": "/absolute/path/to/logs"
}
{
  "logsDir": "/absolute/path/to/logs",
  "type": "command_execution"
}

Parámetros

NombreRequeridoTipoDescripción
logsDirSístringDirectorio de registros (solo ruta absoluta)
logFilePrefixNostringPrefijo del archivo de registro (predeterminado: "roo-activity-")
logFileExtensionNostringExtensión del archivo de registro (predeterminado: ".json")
typeNostringFiltrar por tipo de actividad (command_execution, code_generation, file_operation, error_encountered, decision_made, conversation)
levelNostringFiltrar por nivel de registro (debug, info, warn, error)
startDateNostringFecha de inicio (AAAA-MM-DD)
endDateNostringFecha de fin (AAAA-MM-DD)
searchTextNostringBuscar texto en resumen o detalles
limitNonumberMáximo de registros a recuperar (predeterminado: 50)
offsetNonumberNúmero de registros a omitir (predeterminado: 0)
parentIdNostringFiltrar por ID de actividad principal
sequenceFromNonumberLímite inferior del número de secuencia
sequenceToNonumberLímite superior del número de secuencia
relatedIdNostringFiltrar por ID de actividad relacionada
relatedIdsNostring[]Filtrar por cualquiera de los IDs de actividades relacionadas

Licencia

MIT