Overview
Pinorama is a suite of tools for storing, exploring, and analyzing logs from Node.js applications using Pino Logger.
Understanding the Suite
Pinorama consists of 5 key components, each with a specific role:
1. Pinorama Studio
A web app and CLI for viewing, filtering, and analyzing logs with minimal setup. Pipe logs from any Node.js process and get a full-featured log explorer in your browser. Pinorama Studio can also function as a server when launched with the --server option, making it ideal for live log streaming during development.
2. Pinorama Client
An isomorphic HTTP client that works in both Node.js and the browser. It provides methods for inserting, searching, and querying logs from Pinorama Server. Pinorama Client is used internally by Pinorama Studio and Pinorama Transport, but you can use it directly for custom integrations.
3. Pinorama Server
A Fastify plugin that exposes a REST API for storing and retrieving logs via Orama. It supports custom schemas, authentication, persistence to disk, and auto-save. Pinorama Server can run standalone or integrate into an existing Fastify application.
4. Pinorama Transport
A Pino transport layer that streams logs to Pinorama Server. It buffers logs in batches with configurable flush intervals and retries failed inserts with exponential backoff. Available as a programmatic API or a pino-pinorama CLI.
5. Pinorama MCP
An MCP integration that exposes the log database to AI assistants. Ask questions in natural language — the AI reads the schema, picks the right tools, and queries your logs. Runs standalone (stdio) or embedded inside Pinorama Server (HTTP/SSE).
How It Works
Here is how the different components fit together:
Generate Logs — Pino Logger creates structured JSON logs as your Node.js application runs.
Stream Logs — Pinorama Transport buffers these logs and sends them in batches to Pinorama Server via Pinorama Client.
Store and Index — Pinorama Server stores the logs in-memory using Orama, making them searchable via its REST API.
Explore Logs — Pinorama Studio connects to Pinorama Server and displays logs in a filterable, searchable table with keyboard navigation and live refresh.
AI Analysis (optional) — Pinorama MCP connects AI assistants to the log database for natural-language queries, error investigation, and performance analysis.
When to Use
TIP
Development and debugging — Pinorama is ideal for local development, offering tools for live log streaming, post-mortem analysis, and AI-powered log investigation.
WARNING
Production considerations — Pinorama Server stores logs in-memory, which limits capacity to available RAM. For production use, consider enabling persistence (dbPath) and auto-save (autoSaveInterval) to protect against data loss. The MCP integration provides additional value for production log analysis through AI assistants.
app.register(pinoramaServer, {
introspection: preset.introspection,
adminSecret: "my-secret",
dbPath: "./data/logs.msp",
autoSaveInterval: 60_000
})