DEV.co
Open-Source Observability · rs

jplot

jplot is a lightweight CLI tool that visualizes JSON metrics (like Go's expvar) as real-time charts directly in your terminal. It integrates with iTerm2, Kitty, and other DRCS Sixel-capable terminals to display memory stats, performance counters, and custom metrics with minimal setup.

Source: GitHub — github.com/rs/jplot
1.2k
GitHub stars
41
Forks
Go
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
Repositoryrs/jplot
Ownerrs
Primary languageGo
LicenseMIT — OSI-approved
Stars1.2k
Forks41
Open issues10
Latest releasev2.2.2 (2025-09-13)
Last updated2025-10-20
Sourcehttps://github.com/rs/jplot

What jplot is

Written in Go, jplot polls HTTP endpoints for JSON responses, parses them using gojq syntax, and renders stacked line/area graphs using Sixel graphics. It supports counter differencing, markers for events, and multi-graph layouts via command-line spec syntax.

Quickstart

Get the jplot source

Clone the repository and explore it locally.

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

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

Best use cases

Go Service Memory & Runtime Monitoring

Monitor expvar endpoints from Go applications to visualize heap allocation, GC cycles, goroutine counts, and stack usage in real-time without external dashboards.

Load Testing Analysis

Integrate with vegeta load testing output (via jaggr) to plot RPS, latency percentiles, HTTP response codes, and bytes transferred during sustained load tests.

Local Development Profiling

Quick terminal-based inspection of custom JSON metrics exposed by development services, eliminating context-switching to browser-based monitoring during debugging.

Implementation considerations

  • Verify your terminal supports DRCS Sixel Graphics (iTerm2, Kitty, Warp); fallback rendering behavior is not documented.
  • Ensure the target JSON endpoint is accessible and stable; jplot has no retry or fault-tolerance logic noted.
  • Design JSON endpoints to be cheap to poll; jplot hits the URL at intervals, so expensive computations should be cached upstream.
  • Use gojq syntax carefully for nested paths; malformed specs will fail silently or with unclear error messages.
  • Terminal size impacts chart readability; very large or very small windows may truncate or distort graphs.

When to avoid it — and what to weigh

  • Persistent Metric History Required — jplot displays live trends in the terminal only; it does not persist metrics to storage. For long-term analysis or compliance audits, use a metrics database (Prometheus, InfluxDB).
  • Multi-Host or Distributed Monitoring — jplot is a single-endpoint CLI tool. If you need to correlate metrics across multiple services or datacenters, a centralized monitoring stack is required.
  • Non-JSON or Non-HTTP Sources — jplot expects JSON over HTTP(S). If your metrics come from syslog, SNMP, or binary protocols, pre-processing or a different tool is needed.
  • Terminal-Agnostic Deployment — Sixel graphics support is not universal. Older terminals, SSH-only environments, or CI/CD logs may not render charts correctly or at all.

License & commercial use

MIT License: permissive, allows commercial use, modification, and distribution with attribution and liability waiver.

MIT is a permissive OSI license suitable for commercial use. No proprietary restrictions noted. Review your organization's open-source policy for any internal or resale scenarios, but nothing in the license prevents commercial deployment.

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

Exposure to untrusted JSON endpoints may pose parsing or DoS risk; jplot is a simple CLI consumer with no documented input sanitization. HTTPS support not explicitly confirmed. Runs locally with user permissions; no privilege escalation noted. Endpoint credentials (basic auth, tokens) handling is not documented.

Alternatives to consider

Prometheus + Grafana

Full-stack, persistent, multi-host metrics with rich dashboards and alerting; overkill for local dev but gold standard for production.

Datadog / New Relic

SaaS monitoring with real-time dashboards, but introduces vendor lock-in and cost; suitable for teams without ops infrastructure.

go tool pprof

Native Go profiling for CPU and memory; CPU-focused, not real-time charting. Better for deep profiling, not ongoing metrics visualization.

Software development agency

Build on jplot with DEV.co software developers

jplot makes it easy to visualize expvar and custom JSON metrics in your terminal without external dashboards. Start with `brew install rs/tap/jplot` or `go install github.com/rs/jplot@latest` and point it at your metrics endpoint.

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.

jplot FAQ

Does jplot store or export metrics?
No. jplot is purely a terminal visualization tool. Metrics are displayed in real-time and discarded after the session ends. To persist metrics, use an external database or metrics pipeline.
Can I use jplot over SSH?
Only if your SSH client and remote terminal support Sixel graphics. Most remote environments do not. mintty over SSH is noted as supported, but most standard SSH sessions will fail to render.
How do I graph custom application metrics?
Expose a JSON HTTP endpoint in your application (similar to Go's expvar) and point jplot to it with `--url`. Use the `+` and `:` syntax to select and transform fields.
What is the polling interval?
Not documented in the README. Default or configurable intervals are not mentioned; requires review of the source code or man page.

Custom software development services

Need help beyond evaluating jplot? DEV.co is a software development agency offering software development services and web development for teams of every size. Our software developers and web developers build custom software, web applications, APIs, and open-source observability integrations — and maintain them long-term.

Ready to Monitor Your Go Services Locally?

jplot makes it easy to visualize expvar and custom JSON metrics in your terminal without external dashboards. Start with `brew install rs/tap/jplot` or `go install github.com/rs/jplot@latest` and point it at your metrics endpoint.