Generated Thu Apr 09 13:25:41 CEST 2026

BARK! Another Report Keeper

BARK monitors a mailbox and converts incoming emails into reports. Subsequent emails in the same thread can update the status of that report using predefined commands. Admins and maintainers can update reports by writing directly to the monitored inbox, manage roles, and receive periodic digest emails.

For admin and maintainers, see the full BARK manual.

To explore BARK reports from your terminal, use bone.

You can also highlight BARK with gnus-bone.el and notmuch-bone.el.

Subject labels

Subject labels create reports, optionally with a topic/version:

Type Subject labels
bug [BUG <topic>]
patch [PATCH <topic> <version> <n/m>]
request [FR <topic>] [FP <topic>] [RFC <topic>] [RFE <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.

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

Topics can also be set using a colon-delimited prefix in the subject after the label: [BUG] parser: crash on empty input sets the topic to "parser".

Status & priority commands

Replies to reports can update them by using command keywords such as Resolved., etc.

Command keywords should be placed at the beginning of the line and followed by a punctuation mark (. , ; : ? !).

All status/priority command keywords work on all report types:

Effect on report Command keyword Type
Mark as acked Acked Confirmed Reviewed Approved Status
Mark as owned Owned Handled Assigned Status
Mark as closed (canceled) Canceled Cancelled Status
Mark as closed (expired) Expired Status
Mark as closed (resolved) Resolved Applied Done Fixed Closed Status
Mark as urgent Urgent. Priority
Mark as important Important. Priority

Users don't set the priority directly: it is computed as the sum of important (+1) and urgent (+2).

Please also note that Urgent. and Important. both require a full stop at the end.

You can combine several status/priority commands in a single email:

Confirmed.
Handled.
Urgent.
Important.

Searching via the web page

Long form Short Explanation
from:me@example.org f: Reports from me@example.org
acked:me@example.org a: Reports acked by me@example.org
owned:me@example.org o: Reports owned by me@example.org
closed:me@example.org c: Reports closed by me@example.org
urgent:me@example.org u: Reports marked urgent by me@example.org
important:me@example.org i: Reports marked important by me@example.org
subject:match s: Reports matching subject
priority:[0-4] p: Reports matching priority level 0 to 4
mid:<...> m: Report open with message-id <...>
date:3d.. d: Reports from 3 days ago
date:2023-01-01..2023-12-31 d: Reports from 2023-01-01 to 2023-12-31
deadline:2026-09-01 D: Reports with due date 2026-09-01
deadline:2026-01-01..2026-06-30 D: Reports with due date in that range
deadline:2m D: Reports due between now and 2 months from now
expired:10d e: Reports expired between now and 10 days from now
expired:2026-01-01..2026-03-31 e: Reports expired in that date range
match1 | match2 Reports matching "match1" or "match2"
from:* acked:* … f:* a:* Wildcard for from/acked/owned/closed/urgent/important

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

For date: they look backward from today; for deadline: and expired: they look forward.

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

Maintainers

If you run BARK, add this to your config.edn to declare maintainers correctly:

{:maintainers
 [{:email "yantar92@posteo.net"}
  {:email "bzg@bzg.fr"}
  {:email "bzg@gnu.org"}
  {:email "mail@christianmoe.com"}]}