jaro(1)
Name
jaro - command line interface for Jaromail workflows
Synopsis
jaro [options] [command] [command-options]
Description
jaro is the operational CLI for Jaromail. It orchestrates account configuration, local maildir operations, addressbooks, filtering, indexing and SMTP/IMAP actions.
Options
-a ACCOUNT use a specific account instead of default.
-l LIST use a specific addressbook/list (default: whitelist).
-n dry-run mode where supported.
-q quiet mode.
-D debug mode.
-h show help.
-v or --version prints the assigned release version and exits. The startup banner and help use the same installed metadata. Source builds derive it from release tags, with the v6.0.0 development baseline when no v6 tag exists.
-f force mode for selected operations.
Filter engine selection
JARO_FILTER_ENGINE=legacy|native selects compilation and filter/fetch dispatch; unset selects native. Explicit JARO_FILTER_ENGINE=legacy selects rollback. Empty/unknown values fail. Native update/sieve invoke the installed compiler with explicit mail/account roots and return its failures without fallback. No profile file is required: built-in defaults enable fileinto, automatic mailbox creation and the qualified legacy ERE subset. Regex is declared only when used; partial addresses keep matching without wildcard suffixes. Unsupported ERE exports fail with a source-line diagnostic. Explicit legacy rejects typed/domain records. Sieve generation writes the local export only, without remote deployment.
Native filter [MAILDIR] compiles/verifies once and applies one pinned batch. The default Maildir is $JAROMAILDIR/incoming. Native fetch uses the same batch after transport and refreshes the index once, even after partial failure; batch errors remain nonzero. Filter itself does not index. Native Sieve import accepts the bounded Jaromail-generated grammar described below.
Fresh init under unset/explicit native installs a comment-only typed-example policy with builtins active. Explicit legacy keeps the original 14 ERE defaults. Existing policies are never replaced or translated. Supported legacy EREs need no profile configuration; patterns outside the qualified subset need a deliberate rewrite. save and move are aliases. Invalid selectors or missing required templates fail before bootstrap configuration writes.
Native filter --explain [MAILDIR] and -n filter [MAILDIR] classify only, checking the selected generation against current policy without publishing. Missing/stale generations return 5 and request an explicit jaro update. Native -n fetch explains local incoming mail without transport or indexing.
Native filter --compare FILE [MAILDIR] compares retained actual final legacy observations against native classification. It never applies either engine. FILE uses complete fingerprint-bound JLC1 NUL framing described in filter-interfaces.md. Its producer must retain unchanged-corpus hashes and actual legacy provenance. Ambiguous dry-run proposals and unsupported files fail; this command does not infer a legacy winner from proposal text.
Commands
Core mail flow
wizard interactive account setup.
fetch fetch unread messages for an account.
send send queued messages from outbox/.
queue read a full message from stdin and queue it.
smtp read a full message from stdin and send via SMTP.
peek open remote IMAP mailbox view.
open open a local maildir folder.
Recipient groups
Local recipient lists live in $JAROMAILDIR/Groups/ (for example Mail/Groups/team) and are addressed as team@jaromail.group. The first line may set #mode individual, #mode cc/#mode carboncopy, or #mode bcc; when no #mode is set, groups use #mode individual.
Account and secrets
passwd set or update account password in the configured keyring.
askpass print account password resolved from keyring/prompt.
isonline check network reachability.
Search and indexing
index update the search index.
search run search queries over local mail archives.
header, headers print mail headers.
Addressbook and contacts
abook edit addressbook.
addr, list list addresses from addressbook.
extract, parse extract addresses from supported inputs.
import import addresses from stdin.
export export addresses to another format.
learn, isknown, complete contact learning/query/completion helpers.
Filtering and Sieve
update rebuild local filtering cache and regenerate Sieve.
filter apply filters to a maildir.
sieve regenerate Filters.sieve only.
sieve-import FILE import a Jaromail-generated Sieve file into local filter/addressbook files. With JARO_FILTER_ENGINE=native, the bounded token parser validates and stages the complete import before publication. -n validates without writes; --legacy-generated explicitly recovers older generated header-contains scripts with a migration diagnostic. Arbitrary provider scripts are unsupported. See the import contract for supported grammar, profile/mapping requirements and recovery behavior.
Maildir and utility commands
backup move search results between maildirs.
merge merge one maildir into another.
deliver deliver a message from stdin into a maildir.
rmdupes remove duplicate messages.
remember, replay, preview, edit, vim, imap, alot, alot-config, notmuch, notmuch-config, isml, ismd.
Files
$JAROMAILDIR mail root (default usually $HOME/Mail).
$JAROMAILDIR/Accounts/ account configuration files.
$JAROMAILDIR/Groups/ local recipient group files.
$JAROMAILDIR/Filters.txt filtering rules.
$JAROMAILDIR/Filters.sieve generated Sieve rules.
See Also
jaromail(1)