Skip to content
/ bone Public

bzg/bone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

49 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

bone β€” BARK’s Own Nifty Explorer

https://img.shields.io/badge/versioning-intver.org-blue.svg?style=for-the-badge

bone (what you get when you stop barking) is a standalone Babashka script for browsing BARK reports. When fzf is available, bone lets you browse BARK reports interactively.

bone.png

Install

Assuming bbin is installed:

bbin install io.github.bzg/bone

Configure

Create ~/.config/bone/config.edn:

{:my-addresses ["you@example.com" "alias@example.com"]
 :text-browser "w3m"          ;; "w3m", "lynx" or "links"
 :diff-pager   "delta"        ;; "delta", "bat" or "diff-so-fancy"
 :sources      [{:url  "https://example.com/reports.json"
                 :repo "https://example.com/repo"}
                {:url  "/path/to/reports.json"
                 :repo "/path/to/repo"}]}
  • :my-addresses β€” your email address(es), used by -m to filter reports involving you. Can be a single string or a vector of strings.
  • :text-browser β€” terminal browser for viewing reports on RET. When unset, bone probes for w3m, lynx, links, then falls back to xdg-open.
  • :diff-pager β€” pager for viewing patches on C-v. When unset, bone probes for delta, bat, then falls back to $PAGER or less.
  • :sources β€” vector of report sources. Each source is a map with:
    • :url β€” URL or local path to the BARK reports.json.
    • :repo β€” (optional) public URL or local path of the associated code repository.
  • :skip-columns β€” vector of column names to hide by default (e.g. ["priority" "score"]).
  • :report β€” configuration for bone report (see Triage report).

Usage

bone [options]
bone report [options]
bone clear
bone update

Options

OptionDescription
-f, --file FILERead reports from a JSON file
-u, --url URLFetch reports from a URL
-U, --urls-file FILEFetch and merge from URLs listed in FILE
-M, --my-addresses EMAILSYour email(s), comma-separated (overrides config)
-n, --source NAMEFilter by source name
-p, --min-priority NOnly show reports with priority >= N (1, 2 or 3)
-s, --min-score NOnly show reports with score >= N (0–7)
-S, --skip-columns COLSColumns to hide, comma-separated
-m, --mineShow only reports involving your address(es)
-c, --closedInclude closed reports
-Read JSON from stdin

Triage report

bone report prints a text triage report to stdout. It accepts the same filtering options as interactive mode (-f, -u, -m, -c, etc.).

The report includes the following sections: overview, stale patches, stale bugs, active threads, recent reports, and owned reports.

The report can be configured in config.edn under the :report key:

{:report {:sections    ["overview" "stale-patches" "stale-bugs"
                        "active-threads" "recent" "owned"]
          :stale-days  14   ;; threshold for "stale" (default: 14)
          :recent-days 7    ;; threshold for "recent" (default: 7)
          :top-n       10}} ;; max items per section (default: 10)
  • :sections β€” list of sections to include in the report.
  • :stale-days β€” number of days after which a report is considered stale.
  • :recent-days β€” number of days to look back for recent reports.
  • :top-n β€” maximum number of items shown in stale and active-threads sections (recent and owned are not capped).

Source management

CommandDescription
-a, --add-source URL_OR_PATHAdd a reports.json source
-r, --remove-source URL_OR_PATHRemove a source
-l, --list-sourcesList configured sources

Sources are stored in ~/.config/bone/config.edn under the :sources key.

Cache management

CommandDescription
clearEmpty the cache
updateFetch/update reports from all sources

By default, bone reads cached reports if available. If no cache exists, it fetches from sources once and caches the result. Use bone update to refresh.

Interactive keys (fzf)

KeyAction
C-nMove to the next line
C-pMove to the previous line
RETView report in terminal browser
C-oOpen report in system browser
C-vView patch (fetched to cache)
C-sChange sort order
C-rFilter by report type
C-bFilter by source
C-tFilter by topic
C-uUpdate cache and reload
C-hShow help
C-xRemove current filters

Examples

Browse your reports from a local file:

bone -f reports.json -m

Browse all reports from a remote URL:

bone -u https://example.com/reports.json

Merge reports from multiple BARK instances:

bone -U my-urls.txt

The URLs file (-U) lists one URL per line; blank lines and # comments are ignored.

Add a source and browse:

bone -a https://example.com/reports.json
bone

Update cached reports and browse only yours:

bone update
bone -m

Files

PathPurpose
~/.config/bone/config.ednUser configuration and sources
~/.config/bone/cache/patches/Cached patches
~/.config/bone/cache/reports/Cached reports.json files

Contributing

You can also send me an email and support my work on liberapay.

Intentional Versioning

This project uses Intentional Versioning, here are the three audiences:

  • Users : end users who browse BARK reports with bone
  • Integrators : external packagers
  • Maintainers : maintainers of the codebase

Support the Clojure(script) ecosystem

If you like Clojure(script), please consider supporting maintainers by donating to clojuriststogether.org.

License

Copyright Β© 2026 Bastien Guerry

Distributed under the Eclipse Public License 2.0.

About

🦴 BONE β€” Bark's Own Nifty Explorer

Resources

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors