Generated Tue Jun 09 17:45:57 UTC 2026

BONE - Backlog Of Notable Emails

BONE monitors a mailbox and turns incoming emails into reports. Replies in the same thread update each report through a small fixed vocabulary of commands. Maintainers can also write to the inbox directly to manage roles and receive periodic digests.

To browse BONE reports from the terminal, use gnaw. In GNU Emacs, use gnaw.el.

For maintainers, see the full BONE manual.

Subject labels

A subject label creates a report, optionally carrying a topic and/or version:

TypeSubject labels
bug[BUG <topic>]
patch[PATCH <topic> <version> <n/m>]
request[FR <topic>] [FP <topic>] [RFC <topic>] [POLL <topic>] [TASK <topic>]
announcement[ANNOUNCEMENT <topic>] [ANN <topic>] [BLOG <topic>] [TIP <topic>]
release[REL <topic> <version>] [RELEASE <topic> <version>]
change[CHG <topic> <version>] [CHANGE <topic> <version>]

All <…> parts are optional and positional.

Also accepted: [ANNOUNCEMENT], [RELEASE], [CHANGE] (long forms, equivalent to their 3-letter counterparts).

For release and change, a single value is read as <version>: [REL 2.0] sets version to "2.0". Use both for topic and version: [REL parser 2.0].

The topic can also be set with a colon prefix after the label: [BUG] parser: crash on empty input sets the topic to "parser".

Status & priority commands

Replies to a report update it with command keywords such as Fixed. or Applied..

A command keyword goes at the beginning of a line, followed by punctuation (. , ; : ? !), whitespace, or end of line.

Recommended keyword per action, with the matching retract form:

Effect on reportCommand keywordType
Mark as ackedAcked Confirmed ApprovedStatus
Mark as ownedOwnedStatus
Mark as closed (canceled)Canceled CancelledStatus
Mark as closed (expired)ExpiredStatus
Mark as closed (resolved)Closed Resolved Applied Completed FixedStatus
Mark as urgentUrgent.Priority
Mark as importantImportant.Priority

Announcements, releases and changes cannot be acked or owned but can still be marked closed, urgent or important.

Also accepted for ack: Acked, Confirmed, Approved. Also accepted for close: Resolved, Closed, Applied, Fixed, Completed.

Priority is not set directly: it is the sum of important (+1) and urgent (+2).

Urgent. and Important. require a punctuation mark or end of line -- a bare space is rejected (these words appear too often in ordinary prose).

You can combine several commands in one email:

Confirmed.
Owned.
Urgent.
Important.

Searching via the web page

Long formShortExplanation
from:me@example.orgf:Reports from me@example.org
acked:me@example.orga:Reports acked by me@example.org
owned:me@example.orgo:Reports owned by me@example.org
closed:me@example.orgc:Reports closed by me@example.org
closed:truec:trueInclude closed reports (bypass Open filter, transient)
urgent:me@example.orgu:Reports marked urgent by me@example.org
important:me@example.orgi:Reports marked important by me@example.org
subject:matchs:Reports matching subject
topic:matcht:Reports matching topic
priority:[0-4]p:Reports matching priority level 0 to 4
mid:<...>m:Report with message-id <...>
date:3d..d:Reports from the last 3 days
date:2023-01-01..2023-12-31d:Reports between 2023-01-01 and 2023-12-31
deadline:2026-09-01D:Reports due on 2026-09-01
deadline:2026-01-01..2026-06-30D:Reports due in that range
deadline:2mD:Reports due between now and 2 months from now
expired:10de:Reports expiring within 10 days
expired:2026-01-01..2026-03-31e:Reports expiring in that range
match1 | match2Reports matching "match1" or "match2"
from:* acked:* …f:* a:*Wildcard for from/acked/owned/closed/urgent/important

Durations: Nd (days), Nw (weeks), Nm (months).

date: looks backward from today; deadline: and expired: look forward.

Combine filters freely: D:2m o:user@email.com finds reports due within 2 months and owned by user@email.com.

Maintainers

Configuration

To reproduce this dashboard on your own copy of the mail, run BONE with this config.edn (download). Replace :mailboxes with your own local source -- the operator's mailbox is private and not needed -- then run bb export.

;; Minimal config.edn to reproduce this dashboard on your own copy of
;; the mail.  Replace :mailboxes with YOUR local source -- a Maildir of
;; your subscription, or your own IMAP account; the operator's mailbox
;; is private and not needed here.  See "Deploying BONE" in the manual,
;; then validate with: bb test-config
{:mailboxes
 [{:name "local",
   :type :maildir,
   :path "/path/to/your/Maildir",
   :folder ""}],
 :sources
 [{:name "Org mode ML",
   :list "emacs-orgmode.gnu.org",
   :archive-format-string "https://list.orgmode.org/%s",
   :maintainers
   ["yantar92@posteo.net"
    "bzg@bzg.fr"
    "bzg@gnu.org"
    "mail@christianmoe.com"],
   :labels
   {:request ["FR" "FP" "RFC" "POLL" "TASK"],
    :announcement ["ANNOUNCEMENT" "ANN" "BLOG" "TIP"]},
   :expiry {:announcement {:inactive-after "100d"}},
   :periods
   [{:start "2020-01-01",
     :end "2026-04-19",
     :commands
     {:owned {:words ["Owned" "Handled"]},
      :closed
      {:words
       ["Canceled"
        "Cancelled"
        "Closed"
        "Expired"
        "Resolved"
        "Applied"
        "Completed"
        "Fixed"
        "Done"]}}}]}]}