Studio
Pinorama Studio is a web-based UI and CLI tool for viewing, filtering, and analyzing Pino logs. It runs as a standalone viewer connected to an existing Pinorama Server, or starts an embedded server to receive piped logs directly.
Installation
Install globally:
npm i -g pinorama-studiopnpm i -g pinorama-studioyarn global add pinorama-studioUsage
Pipe logs from any Node.js application
node app.js | pinorama --openThis starts an embedded Pinorama Server, ingests the piped logs, and opens the Studio UI in your browser.
Connect to an existing server
If you already have a Pinorama Server running, launch Pinorama Studio as a standalone viewer and point it at the server with --server-url:
pinorama --open --server-url http://localhost:3000/pinoramaNo embedded server is started. If logs are piped in, they are sent to the existing server instead.
TIP
Pinorama Studio runs in the browser on its own origin, so the existing server must allow cross-origin requests, for example by registering @fastify/cors on the Fastify instance that hosts Pinorama Server.
With a Fastify application
node server.js | pinorama --open --preset fastifyUse the fastify preset to get Fastify-specific columns like request method, URL, and status code.
Server Mode
Server mode is automatically enabled when stdin is piped (i.e. !process.stdin.isTTY). You can also enable it explicitly with the --server flag. It is never enabled when --server-url is set.
When server mode is active:
- An embedded Pinorama Server starts on the configured
--hostand--port - The selected preset provides the database schema and introspection config
- Piped stdin is streamed through Pinorama Transport into the embedded server
- Pinorama Studio connects to the embedded server automatically
When server mode is not active, Pinorama Studio runs as a static web app that you can point at any remote Pinorama Server.
CLI Options
pinorama [options]| Flag | Alias | Type | Default | Description |
|---|---|---|---|---|
--help | -h | Display help message | ||
--version | -v | Show version | ||
--host | -H | string | "localhost" | Web server host |
--port | -P | number | 6200 | Web server port |
--open | -o | boolean | false | Open Pinorama Studio in browser |
--logger | -l | boolean | false | Enable Fastify request logging |
--server | -s | boolean | false | Start embedded Pinorama Server |
--server-prefix | -e | string | "/pinorama" | Server endpoint prefix |
--server-db-path | -f | string | Save the embedded server database to this file on exit and restore it on start | |
--admin-secret | -k | string | Server admin secret key | |
--server-url | -u | string | URL of an existing Pinorama Server to connect to | |
--preset | -p | string | "pino" | Preset name (pino or fastify) |
--batch-size | -b | number | 10 | Transport batch size |
--flush-interval | -f | number | 100 | Transport flush interval (ms) |
TIP
The -f alias is shared between --server-db-path and --flush-interval. Use the long form to avoid ambiguity.
Keyboard Shortcuts
Pinorama Studio provides keyboard shortcuts for fast navigation:
| Key | Action |
|---|---|
/ | Focus search bar |
f | Toggle filters panel |
o | Toggle details panel |
m | Maximize details panel |
l | Toggle Live Mode |
r | Refresh |
x | Clear all filters |
j / ↓ | Select next row |
k / ↑ | Select previous row |
y / c | Copy selected row to clipboard |
Shift+F | Increase filters panel size |
Shift+D | Decrease filters panel size |
Shift+J | Increase details panel size |
Shift+K | Decrease details panel size |
Esc | Clear selection |
Live Mode
Live Mode automatically refreshes the log viewer at a regular interval. When enabled, new logs appear at the top of the table as they are ingested.
Toggle Live Mode with the l keyboard shortcut or the Live Mode button in the toolbar.
Details Panel
Select a row to open the details panel on the right side. The panel shows the full JSON document in a tree view. Use o to toggle the panel and m to maximize it.
Copy the selected row as JSON with y or c.
Status Bar
The status bar at the bottom of the screen shows:
- Connection status (connected/disconnected)
- Total number of documents matching the current query
- Current server URL
MCP Integration
Pinorama Studio includes a built-in MCP panel for enabling and configuring AI assistant access. Open it from the toolbar to:
- Enable or disable the embedded MCP server
- Copy connection instructions for Claude Code, VS Code, Cursor, or other clients
See MCP for full documentation.
Internationalization
Pinorama Studio supports multiple languages:
| Language | Code |
|---|---|
| English | en |
| Italian | it |
The language is picked from the browser settings (navigator.languages); unsupported languages fall back to English. To force one, set localStorage.locale to a code from the table.
Examples
Start with default settings:
node app.js | pinoramaOpen browser automatically with Fastify preset:
node app.js | pinorama --open --preset fastifyUse a custom port and persist database:
node app.js | pinorama --port 8080 --server-db-path ./logs.mspEnable Fastify logging for the Pinorama Studio server itself:
node app.js | pinorama --open --logger