borgbackup/borg

analyze: add --json output

Closed

#9,992 opened on Aug 1, 2026

 (2 comments) (0 reactions) (1 assignee)Python (732 forks)batch import
easygood first issue

Repository metrics

Stars
 (10,086 stars)
PR merge metrics
 (Avg merge 5d 12h) (91 merged PRs in 30d)

Description

borg analyze currently only produces human-readable text output:

  • the set-dedup stats (set / exclusive / rest sizes, see #5741),
  • the hot-spot report (directory path -> churn),
  • the --by-name repository decomposition table (per-name archives / source / stored / compression, shared, unreferenced).

All other status-type commands (info, repo-info, repo-list, list, diff, prune) already offer --json or --json-lines, so tooling can consume their output without scraping text. analyze is the odd one out, and its output is exactly the kind of data monitoring/agent tooling wants (e.g. a read-only MCP status server, see #9955).

Proposal: add --json to borg analyze, emitting the same numbers the text report is rendered from (raw byte values, not pre-formatted sizes), for both the default mode and --by-name.

Contributor guide