Ballmac UI home

Log Stream

A live log viewer with level filters and counts, search with highlighted matches, wrap, pause with a new-lines counter, follow-the-tail scrolling and copy.

Deployment logs

Waiting for output…

Installation

$ pnpm dlx shadcn@latest add @ballmac/log-stream

Usage

import { LogStream, clock } from "@/components/ballmac/log-stream"

The full example is in the Code tab above.

Examples

Filtered build output

Last hour

INFOGET /v1/projects 200 in 38 ms
INFOPOST /v1/customers 201 in 112 ms
WARNSlow query on customers.by_email took 1.4 s
ERRORJob invoice.send failed: connect ETIMEDOUT 10.0.4.12:587
DEBUGRetry scheduled for job invoice.send in 30 s (attempt 2 of 5)
INFOGET /v1/customers/cus_91 200 in 21 ms
ERRORPOST /v1/subscriptions 500: unique constraint violated
INFOJob invoice.send succeeded after 2 attempts

API reference

PropTypeDefault
lines*

All lines so far, oldest first. Append to this array as the stream delivers.

LogLine[]—
title

Heading in the toolbar.

string—
maxLines

Most lines kept on screen; older ones are dropped from view.

number1000
follow

Stick to the newest line while at the bottom.

booleantrue
height

Height of the log area.

string"20rem"
wrap

Wrap long messages instead of scrolling sideways.

boolean—
hideSource

Hide the source column.

booleanfalse
onClear

Adds a Clear button that calls this.

() => void—
emptyText

Shown when there are no lines yet.

string—

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
TabReaches filters, search, wrap, pause, copy, then the scrollable log (role=log)
Screen readersThe log is not announced line by line; pause state is announced; levels are words
ColorLevel is a word and a bar

Use with AI

lines is [{ id, time, level, message, source? }], oldest first; append as lines arrive. Follows the tail while you are at the bottom, shows 'N new lines' when paused or scrolled up. maxLines limits what is rendered. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI Log Stream (@ballmac/log-stream) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • Deploy, build and server logs
  • Streaming output from background jobs

Not for

  • A terminal with input (terminal)
  • Millions of lines (use a virtualized list)

Registry JSON: https://ui.ballmac.com/r/log-stream.json

Credits

Free to use in personal and commercial projects.