Roo Activity Logger

Registra automaticamente as atividades do assistente de codificação de IA, como execuções de comandos e geração de código, em arquivos JSON pesquisáveis.

Documentação

Roo Activity Logger

日本語版はこちら | 中文版

TL;DR

  • O que é? — Este é um servidor MCP que registra automaticamente atividades de assistentes de codificação com IA, como execuções de comandos e geração de código (suporta Roo Code, Cline, Claude Code, etc.).
  • O que ele faz? — Salva o histórico de atividades como arquivos JSON, que você pode pesquisar e analisar posteriormente.
  • Como eu uso? — Adicione-o às configurações do seu Claude Code, Cline ou Roo-Code para habilitar o registro automático de atividades.

Visão Geral

Roo Activity Logger é um servidor MCP (Model Context Protocol) que registra automaticamente atividades de desenvolvimento de assistentes de codificação com IA — incluindo execuções de comandos, geração de código, operações de arquivo e muito mais. Ele suporta Claude Code, Cline, Roo-Code e outros assistentes de IA compatíveis com MCP. Todos os logs são salvos em formato JSON, facilitando a pesquisa, análise e restauração de contexto a qualquer momento.

Como o registro de atividades funciona

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]

Como pesquisar logs e restaurar contexto ao retomar uma tarefa

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]

Exemplo de Entrada de Log

Aqui está um exemplo de uma entrada de log file_operation salva 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 log contém:

  • Nível de log (debug, info, warn, error)
  • Resumo
  • Detalhes (quaisquer dados estruturados)
  • Intenção / Propósito
  • Informações de contexto
  • ID da atividade pai (para hierarquia)
  • Número de sequência (para ordenação)
  • IDs de atividades relacionadas (para agrupamento)

Os logs são:

  • Salvos como arquivos JSON baseados em data
  • Pesquisáveis por tipo, nível, data, texto, etc.
  • Personalizáveis — você pode especificar diferentes diretórios de salvamento por atividade

Recursos

  • Registra vários tipos de atividade:

    • Execuções de comandos (command_execution)
    • Geração de código (code_generation)
    • Operações de arquivo (file_operation)
    • Erros (error_encountered)
    • Decisões (decision_made)
    • Conversas (conversation)
  • Cada log de atividade inclui:

    • ID único
    • Carimbo de data/hora
    • Tipo de atividade
    • Resumo, detalhes, intenção, contexto e metadados opcionais

Uso (Recomendado: via npx)

Você pode executar o Roo Activity Logger diretamente sem clonar o repositório usando npx.

Adicione isto à sua configuração do Cline, Roo-Code ou Claude Code:

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

Em seguida, adicione prompts aos seus arquivos de regras (para Cline/Roo-Code) ou CLAUDE.md (para Claude Code) para garantir o registro, por exemplo:

## 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 Desenvolvedores: Configuração Local

Para desenvolver ou personalizar localmente, clone o repositório e compile:

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

# Install dependencies
npm install

# Build
npm run build

Exemplo de configuração para usar sua compilação local:

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

Notas

  • O diretório especificado será criado automaticamente se não existir.

Ferramentas MCP

log_activity — Registrar uma atividade

Uma ferramenta para registrar uma atividade.

Exemplo 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

NomeObrigatórioTipoDescrição
typeSimstringTipo de atividade (command_execution, code_generation, file_operation, error_encountered, decision_made, conversation)
summarySimstringResumo curto da atividade
intentionSimstringPropósito ou intenção
contextSimstringInformações de contexto
logsDirSimstringDiretório de salvamento (somente caminho absoluto)
levelNãostringNível de log (debug, info, warn, error). Padrão: info
detailsNãoobjectDetalhes adicionais (qualquer JSON)
parentIdNãostringID da atividade pai
sequenceNãonumberNúmero de sequência
relatedIdsNãostring[]IDs de atividades relacionadas

Exemplo detalhado

{
  "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 arquivos de log salvos

Lista arquivos de log salvos recursivamente. Você pode especificar a profundidade máxima de busca.

Exemplo básico

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

Parâmetros

NomeObrigatórioTipoDescrição
logsDirSimstringDiretório para pesquisar (somente caminho absoluto)
limitNãonumberMáximo de arquivos a recuperar (padrão: 10)
offsetNãonumberNúmero de arquivos a pular (padrão: 0)
logFilePrefixNãostringPrefixo do arquivo de log (padrão: "roo-activity-")
logFileExtensionNãostringExtensão do arquivo de log (padrão: ".json")
maxDepthNãonumberProfundidade máxima do diretório (padrão: 3)

search_logs — Pesquisar logs salvos

Pesquisa logs salvos com vários filtros.

Exemplo básico

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

Parâmetros

NomeObrigatórioTipoDescrição
logsDirSimstringDiretório de logs (somente caminho absoluto)
logFilePrefixNãostringPrefixo do arquivo de log (padrão: "roo-activity-")
logFileExtensionNãostringExtensão do arquivo de log (padrão: ".json")
typeNãostringFiltrar por tipo de atividade (command_execution, code_generation, file_operation, error_encountered, decision_made, conversation)
levelNãostringFiltrar por nível de log (debug, info, warn, error)
startDateNãostringData de início (AAAA-MM-DD)
endDateNãostringData de término (AAAA-MM-DD)
searchTextNãostringPesquisar texto no resumo ou nos detalhes
limitNãonumberMáximo de logs a recuperar (padrão: 50)
offsetNãonumberNúmero de logs a pular (padrão: 0)
parentIdNãostringFiltrar por ID da atividade pai
sequenceFromNãonumberLimite inferior do número de sequência
sequenceToNãonumberLimite superior do número de sequência
relatedIdNãostringFiltrar por ID de atividade relacionada
relatedIdsNãostring[]Filtrar por qualquer um dos IDs de atividades relacionadas

Licença

MIT