DEV.co
Open-Source Observability · pamburus

hl

hl is a fast command-line tool written in Rust that transforms JSON and logfmt logs into readable human-friendly output. It handles large log files efficiently with filtering, sorting, and live-follow capabilities while maintaining minimal performance overhead.

Source: GitHub — github.com/pamburus/hl
3.2k
GitHub stars
64
Forks
Rust
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositorypamburus/hl
Ownerpamburus
Primary languageRust
LicenseMIT — OSI-approved
Stars3.2k
Forks64
Open issues11
Latest releasev0.36.3 (2026-06-12)
Last updated2026-07-06
Sourcehttps://github.com/pamburus/hl

What hl is

A high-performance Rust-based log processor supporting JSON and logfmt input formats with features including field-based filtering, timestamp-range queries, automatic log-level filtering, multi-file sorting at ~2 GiB/s scan speed, and live follow mode. Integrates with external pagers (less) and offers comprehensive CLI customization via config files and environment variables.

Quickstart

Get the hl source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/pamburus/hl.gitcd hl# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

DevOps log analysis at scale

Process hundreds of gigabyte-sized log files across multiple sources with fast indexing and timestamp-sorted output, enabling rapid incident investigation without re-scanning.

Real-time log streaming and monitoring

Use live follow mode (-F flag) with timestamp sorting across multiple log sources to track application behavior as it happens with pre-loaded context via --tail.

Local development debugging

Quickly parse JSON-structured application logs during development with automatic pager integration, field visibility controls, and complex filtering queries to isolate issues.

Implementation considerations

  • Requires external pager (less recommended) for interactive use; Windows users should install via Scoop to auto-include compatible less.
  • Configuration via files and environment variables; review theme and field-visibility defaults for your log schema before production deployment.
  • Timezone handling defaults to UTC; use -Z or -L flags or configure defaults to match your operational logs for consistent timestamp interpretation.
  • Live follow mode (-F) and indexing (-s) perform best on local or high-bandwidth-accessible filesystems; network latency may degrade performance.
  • Performance claims (~2 GiB/s) are stated for initial scan and re-indexing; actual performance depends on log complexity, CPU, and I/O bandwidth.

When to avoid it — and what to weigh

  • Logs not in JSON or logfmt format — hl targets structured log formats. While --allow-prefix handles non-JSON prefixes, unstructured plain-text logs require preprocessing or a different tool.
  • Binary log format requirements — This tool is text-stream oriented. Binary or proprietary log formats (e.g., Windows Event Log, syslog binary) are not supported natively.
  • Need for log aggregation/centralization — hl is a local CLI viewer/processor, not a centralized logging platform. For enterprise log aggregation, use dedicated services like ELK, Splunk, or Datadog.
  • Windows pager integration reliability — README explicitly notes pager compatibility issues on Windows (WinGet less build breaks ANSI sequences), requiring manual workaround with Scoop or Chocolatey.

License & commercial use

MIT License. Permissive OSI-approved license allowing commercial use, modification, and distribution with minimal restrictions (retain license notice).

MIT is a permissive license that explicitly permits commercial use. No license review blocking commercial deployment as a CLI tool. However, verify any Rust dependencies (transitive Cargo dependencies) for conflicting licenses in your compliance process.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityLow
DEV.co fitGood
Assessment confidenceHigh
Security considerations

hl processes local log files as a CLI tool; no network exposure or authentication by design. Input is unstructured JSON/logfmt from files or stdin—no injection vectors evident. Rust memory safety mitigates buffer overflows. No audit trail or logging of tool operations. Review: ensure log files themselves are not world-readable if containing secrets, and use OS-level permissions for access control.

Alternatives to consider

humanlog (Go)

Similar purpose (JSON to human-readable), but hl demonstrates faster performance per README benchmarks; humanlog may suit environments without Rust ecosystem preference.

jq (JSON processor)

General-purpose JSON CLI tool with more flexibility but steeper learning curve; hl is specialized for log viewing with built-in filters and pager integration, making it simpler for log-specific tasks.

ELK Stack / Splunk (centralized logging)

If you need log aggregation, search, alerting, and dashboard capabilities across distributed systems, centralized platforms are required; hl is local-only.

Software development agency

Build on hl with DEV.co software developers

hl offers fast, local log processing with powerful filtering. If you're scaling log infrastructure across teams or evaluating centralized logging, talk to Devco about DevOps strategy and tooling.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

hl FAQ

Can hl process logs from stdin in a pipeline?
Yes, hl reads from stdin and supports Unix piping (e.g., `cat logs.json | hl`). Use `-P` flag to disable pager for streaming mode.
Does hl support regex or complex field filtering?
Field filtering via `-f` key/value pairs is supported. README mentions 'complex query support' with AND/OR logic, but detailed syntax is not provided in the excerpt—requires checking full documentation.
What is the performance on Windows?
hl runs on Windows but with a caveat: the default pager (WinGet's less) has ANSI sequence issues. Install via Scoop or Chocolatey for a compatible less, or use `-P` (streaming mode) to bypass the pager.
Can hl replace our log aggregation platform?
No. hl is a local CLI viewer for development and ops troubleshooting, not a centralized logging service. For multi-machine log collection, use ELK, Splunk, Datadog, etc.

Software development & web development with DEV.co

DEV.co helps companies turn open-source tools like hl into production software. Our software development services cover the full lifecycle — architecture, web development, integration, and maintenance — delivered by software developers and web developers who ship. Engage our software development agency to implement or customize it for your open-source observability stack.

Need a log analysis tool optimized for your DevOps workflow?

hl offers fast, local log processing with powerful filtering. If you're scaling log infrastructure across teams or evaluating centralized logging, talk to Devco about DevOps strategy and tooling.