| Index | index by Group | index by Distribution | index by Vendor | index by creation date | index by Name | Mirrors | Help | Search |
| Name: himalaya | Distribution: openSUSE Tumbleweed |
| Version: 2.1.0 | Vendor: openSUSE |
| Release: 1.1 | Build date: Mon Aug 17 08:03:47 2026 |
| Group: Unspecified | Build host: reproducible |
| Size: 14492759 | Source RPM: himalaya-2.1.0-1.1.src.rpm |
| Packager: https://bugs.opensuse.org | |
| Url: https://github.com/pimalaya/himalaya | |
| Summary: Command-line interface for email management | |
Command-line interface for email management.
AGPL-3.0-only AND AGPL-3.0-or-later AND GPL-2.0-or-later AND MIT AND bzip2-1.0.6 AND MPL-2.0 AND CC-BY-3.0 AND BSD-4-Clause AND OpenSSL AND OFL-1.1
* Mon Aug 17 2026 Michael Vetter <mvetter@suse.com>
- Update to 2.1.0:
* Added the pimdir storage backend, Himalaya over the local store the sync engine populates.
Reads build envelopes from the stored meta and report a body that is not
local as "body not fetched"; writes are staged as replica mutations
attributed to pimdir.source, auto-detected when the store has a single
source.
* Added back the email and display-name config fields, at the global and the account level (#721).
They fill the From header of messages compose, reply and forward when
- -from is not passed, and are also read as from and from-name, the
spellings himalaya-tui writes.
* Added back the signature and signature-delim config fields, at the global and the account level.
The composers append the signature when neither --signature nor
- -signature-file is passed, signature-delim defaulting to the RFC 3676 §4.3
"-- \n" and written verbatim.
* Added in_reply_to to the shared envelope (#734).
A list of ids stripped of their angle brackets like message_id, riding the
JSON output only, left empty by Microsoft Graph.
* Added the shared message delete <ids> command (alias del).
Trash-first: messages are moved to the trash mailbox, resolved from the
backend role then from mailbox.alias.trash, or permanently removed when
already in it.
* Added the maildir.keywords.dovecot and maildir.keywords.header config fields.
Surface custom Maildir keywords as flags, read from each mailbox's
dovecot-keywords file or from X-Keywords / X-Label; reading only, both off
by default.
* Added the imap.sasl-ir config field, forcing the RFC 4959 initial response on or off (#729).
Unset follows the advertised SASL-IR capability; false is needed by
Coremail (126.com, 163.com), which advertises it then rejects the inline
form.
* Added a --seen flag to message read, marking the message as seen while reading it.
* Added the configure command (alias wizard), running the account wizard by name.
The first-run offer is now a hook rather than a gate: the command carries
on afterwards, and nothing prompts when stdin is not a terminal or --json
is set.
* Added back the HIMALAYA_CONFIG environment variable, read like -c and taking the same :-delimited list.
* Added the shared Pimalaya --help footer, naming the bug tracker and the sponsoring page.
Changed:
* Made the configuration wizard discovery-only, removing the hand-entry flow.
An email, a domain, a scheme:// URL or a local folder path all run
discovery, and the wizard stops when nothing is found rather than guessing
an SMTP host.
* Reworked message read's plain-text output into a concise reading view.
A header block (Date, From, To, Cc, Subject), then one summary line per
MIME part with plain-text parts inlined; --raw and --json are unchanged.
* Aligned the ID of message read, attachments list and attachments download
on the MIME part's 1-based position, making attachment ids a sparse subset
of it.
* Right-aligned the SIZE column of the envelope listing table (#723).
* Made the wizard write the account to the configuration file rather than only print it.
The file is where -c or HIMALAYA_CONFIG pointed, or the XDG default; an
existing one gets a plain text append, so comments and formatting survive.
* Made the first-run offer open with a welcome banner on stderr, naming the
configuration file it looked for; himalaya configure skips it.
Changed bare himalaya --account <NAME> to show the help instead of running the account wizard.
* Made the wizard offer only the IMAP authentication mechanisms an
unauthenticated CAPABILITY advertises, falling back to the full list on any
probe failure.
* Time-bounded the wizard's service discovery, so one unreachable endpoint no
longer stalls it for the operating-system connect timeout.
* Made the wizard offer to reuse the IMAP credentials for SMTP, prompting
only the SMTP endpoint on accept.
* Changed gmail messages get --header and gmail threads get --header to
narrow the rendered headers under every format, not only --format metadata.
* Changed imap raw to send a byte-verbatim batch of tagged commands.
* Literal \r / \n escapes decode to CRLF and the reply is read until every
command is acknowledged; smtp raw decodes the same escapes but stays a
single command.
Fixed:
* Fixed configure --json emitting a payload no schema described: json-schema <DIR> now writes himalaya-configure.json.
* Fixed --from carrying a display name composing a From: <Alice <alice@example.org>> no SMTP server accepts (#727).
The value is parsed as a mailbox, the name reaching the MIME builder apart from the address.
* Fixed commands dying mid-exchange with a bare Resource temporarily unavailable (os error 35) (#731, #732).
The transport now retries a stream reporting it is not ready, for a minute,
and arms a socket read deadline at connect time.
* Fixed lean cargo feature combinations failing to compile.
The config schema no longer reaches for disabled backends' ALPN defaults,
and every shared command is gated on the storage or send backend it needs.
* Fixed message read --raw --json erroring: the two now combine, emitting the raw RFC 5322 bytes as a JSON string.
* Fixed the Gmail and Microsoft Graph get commands wrapping their data in a message string under --json (#730).
Gmail messages get, drafts get, threads get, history list and the settings
readers now serialize their data, as does Microsoft Graph message get, each
with a published JSON Schema.
* Fixed gmail drafts get --format raw printing the draft summary instead of the raw message it had fetched.
Removed:
* Removed the assets/himalaya.desktop entry and the Nix line installing it.
Every functional line of it had stopped working, Exec=himalaya %U answering
a mailto: link with unrecognized subcommand; handling mailto: is left to a
wrapper of your own, as MIGRATION.md describes.
* Tue Jul 28 2026 Michael Vetter <mvetter@suse.com>
- Update to 2.0.0:
Added:
* Added Gmail REST API support: a [gmail] account backend behind the shared
mail commands (--backend gmail), plus a protocol-specific gmail command
exposing the full REST surface (profile, labels, messages, attachments,
drafts, threads, history, settings). Authenticates with a single OAuth 2.0
bearer token (gmail.auth.token.raw / .command), the only authorization
Gmail's REST API accepts.
* Added Microsoft Graph REST API support: a [msgraph] account backend behind
the shared mail commands (--backend msgraph), plus a protocol-specific
msgraph command exposing the Graph mail surface (profile, mail-folder,
message, attachment). Mirrors [gmail], authenticating with a single OAuth
2.0 bearer token.
* Restored the RFC 2971 ID-after-auth quirk as imap.id.{auto, fields},
replacing the v1.2.0 imap.extensions.id.send-after-auth flag dropped during
the v2 migration.
* Brought the m2dir backend to CLI feature parity with maildir (messages,
flags, envelopes). Mailbox rename and message copy / move still await
io-m2dir support.
* Added --save <MAILBOX> to messages send, mirroring the flag on messages
compose / reply / forward.
* Added --send to messages add (alias messages save), mirroring messages send --save.
* Added raw passthrough commands imap raw <command> and smtp raw <command>.
* The wizard now pre-fills mailbox.alias.* from the server, so a generated
account has a working default mailbox (the inbox alias, which backs
commands that omit -m/--mailbox) and known Sent/Drafts/Trash/… targets
without hand-editing ids. JMAP reads the RFC 8621 mailbox roles live over
the tested connection. Gmail and Microsoft Graph map their fixed
system-label ids (INBOX, SENT, …) and well-known folder names (inbox,
sentitems, …). IMAP pins the reserved INBOX only. The other special-use
roles await LIST RETURN (SPECIAL-USE) support in io-imap (upstream
imap-codec has none yet).
* Added the json-schema <DIR> command, which writes one JSON Schema file per
structured-output command (himalaya-<cmd>-<subcmd>.json) describing its
- -json payload, so downstream tooling can validate and type Himalaya's
machine output. Only the schemas for compiled-in backends are emitted
(#547).
* The discovery wizard now falls back to the system DNS resolver
(/etc/resolv.conf on unix, the network adapters on windows) before the
Cloudflare default, making the resolution chain HIMALAYA_DNS_RESOLVER then
system then 1.1.1.1. This avoids leaking the email domain to a third-party
resolver and works around networks that block the default.
* Added local socket-proxy support: imap.server / smtp.server now accept a
unix:///path scheme to connect through a pre-authenticated session proxy
such as sirup. No SASL is negotiated over the socket (the session arrives
already authenticated), and a single-session proxy can back the storage
backend without Himalaya opening a second connection (#264).
Changed:
* Flattened the imap command tree into top-level verbs mirroring the
protocol's flat command list (select, create, append, store, fetch, …),
replacing the former mailbox / envelope / message / flag subgroups.
* Unified raw-message input across the messages, imap, maildir, jmap, msgraph
and smtp send/add commands behind a single MessageArg (file path, inline
raw, or piped stdin), and removed the legacy --file flag on messages add.
* Split the merged Account out of every client wrapper: subcommands now
receive account and client as sibling arguments instead of reaching through
client.account.
* Breaking: changed bare himalaya (no subcommand) to run the account wizard
instead of listing the default account's envelopes. Himalaya is now a
lower-level tool: envelope listing lives under its explicit commands, and
the bare invocation is the natural entry point for setting up an account.
* Changed the wizard to print the generated account as a ready-to-save TOML
document on stdout instead of writing it to disk, mirroring ortie. Redirect
it into your config file yourself (e.g. himalaya >
~/.config/himalaya/config.toml). It runs on bare himalaya and is still
proposed when a command finds no config, while a config that exists but
lacks the requested account is now a hard error rather than a wizard
trigger.
* The account's connection is tested before the config is printed, so a bad
credential or endpoint stops the wizard instead of yielding a config that
cannot connect. The output is compact: only the [accounts.<name>] table
stays a section header, every other table is flattened into dotted keys
(imap.sasl.plain.username = …), and empty tables and defaulted values
(starttls, alpn, id.auto) are dropped.
* Reworked the wizard's account-setup flow. The discovery list now shows one
entry per reachable service (IMAP + SMTP, JMAP, Gmail, Microsoft Graph),
and the authentication method is chosen in a second, service-specific
prompt: the SASL mechanism (PLAIN, LOGIN, SCRAM-SHA-256, OAUTHBEARER, …)
for IMAP + SMTP, the HTTP scheme (Basic / Bearer) for JMAP. OAuth 2.0 is no
longer a dead-end list entry: it folds into the "API token" credential
prompt, which now offers the OS keyrings and the OAuth token brokers
(Ortie, pizauth, oama) together, the brokers appearing only when the
service advertises OAuth.
* The wizard now tests IMAP and SMTP as it configures them: the IMAP
connection is validated first, then it asks whether SMTP reuses the same
credentials (the two may advertise different auth), re-running the SASL
prompt for a distinct one, and tests SMTP last.
* The wizard no longer prompts for an account name. It is derived from the
input (the domain's first label, or the folder name). Rename it by editing
the printed [accounts.<name>] table key.
Fixed:
* Fixed compilation error when the wizard feature was disabled (#634).
* Fixed mailbox-alias resolution to apply across every shared messages
subcommand (add, read, reply, forward, copy, move) and the --save flag on
compose / reply / forward, so aliases like mailbox.alias.sent are honoured
before the backend call.
* Fixed swapped save/send success messages ("saved" printed after a pure
send, "sent" after a pure save).
Removed:
* Removed the [message.composer.*] / [message.reader.*] config tables and the
compose-with / reply-with / forward-with / mailto / read-with subcommands.
Richer composition now chains standalone tools such as mml into messages
send / add.
* The "stdout = MIME draft" contract was incompatible with composers spawning
an interactive editor, whose UI inherited the parent's piped stdout.
* Dropped HIMALAYA_CONFIG environment-variable support. -c/--config still
accepts one or more :-separated paths.
* Removed the account configure command (alias account edit) and its
per-field edit wizard. Account setup now goes through the bare himalaya
discovery wizard, leaving account list and account check for inspection.
* Wed Mar 25 2026 munix9@googlemail.com
- Update to version 1.2.0:
* Added
- Added --quiet flag (#545).
- Added support for custom TLS certificate.
- Added support for multiple config files via
HIMALAYA_CONFIG=path1:path2:… (#612).
- Added -d|--downloads-dir argument to attachment download
command (#559).
- Added View and View MIME post edit choices (#486).
- Made message send and template send return id (#627).
- Enabled shell expansion for email, IMAP and SMTP login
fields, which allows usage of environment variables (#632).
* Fixed
- Bumped all deps, fixing rustls-platform-verifier
compatibility version issue.
- Fixed invalid fetch with NIL body encoding (#525).
- Fixed freeze when sending large attachments (#593).
- Fixed abusive warn logs from IMAP libs (#552).
- Downgraded toml@0.8 due to regression (#611).
- Update to version 1.1.0:
* Added
- Added -y|--yes flag for folder purge and folder delete
commands. [#469]
* Changed
- Put back warn the default log level. [#522]
Since logs are sent to stderr, warnings can be easily
discarded by prepending commands with RUST_LOG=off or
by appending commands with 2>/dev/null.
- Changed message.send.save-copy default to true. [#536]
- Changed default downloads directory. [core#1]
* Fixed
- Fixed permissions issues when using install.sh. [#515]
- Fixed de/serialization issues of backends' none variant.
[#523]
- Fixed list envelopes out of bound error when empty result.
[#535]
- Fixed macOS x86_64 builds. [#538]
- Update to version 1.0.0:
The Himalaya CLI scope has changed. It does not include anymore
the synchronization, nor the envelope watching. These scopes
have moved to dedicated projects:
* Neverest CLI, CLI to synchronize, backup and restore emails
* Mirador CLI, CLI to watch mailbox changes
Due to the long time difference with the previous v1.0.0-beta.4
release, this changelog may be incomplete. The simplest way to
upgrade is to reconfigure Himalaya CLI from scratch, using the
wizard or the config.sample.toml.
Changelog:
https://github.com/pimalaya/himalaya/releases/tag/v1.0.0
- Add desktop file, icon, completions and man pages
- Remove cargo_config (obsolete)
- Update _service file (use cargo_vendor, new url)
- Clean up spec file
* Wed May 15 2024 Sai Karthik Karra <kskarthik@disroot.org>
- Update upstream project url in spec
* Tue Sep 19 2023 Lubos Kocman <lubos.kocman@suse.com>
- Correction of license based on legaldb review
* Mon Sep 04 2023 Michael Vetter <mvetter@suse.com>
- Rewrite _service file to work around
https://github.com/openSUSE/obs-service-tar_scm/issues/481
* Mon Aug 28 2023 Michael Vetter <mvetter@suse.com>
- Update to 0.9.0:
* Added 3 new cargo features:
+ pgp-commands: enables the commands PGP backend (enabled by default, same behaviour as before)
+ pgp-gpg: enables the GPG backend (requires the gpgme lib on the system)
+ pgp-native: enables the native PGP backend
* Added account configuration pgp to configure the way PGP operations are performed.
* Moved email-writing-encrypt-cmdto pgp.encrypt-cmd.
* Moved email-reading-decrypt-cmd to pgp-decrypt-cmd.
* Moved email-writing-sign-cmd to pgp.sign-cmd.
* Moved email-reading-verify-cmd to pgp.verify-cmd.
* Tue Jul 18 2023 Michael Vetter <mvetter@suse.com>
- Update to 0.8.4:
* Fixed windows releases due to cargo deps typo.
* Tue Jul 18 2023 Michael Vetter <mvetter@suse.com>
- Update to 0.8.3:
* Fix windows releases due to coredump crate compilation error.
* Fix macos releases due to macos 12 System Integrity Protection.
* Tue Jul 18 2023 Michael Vetter <mvetter@suse.com>
- Update to 0.8.2:
Changed:
* Made the code async using the tokio async runtime.
* On Linux, made the kernel keyring the default one (the one based on keyutils).
Fixed:
* Fixed the way folder aliases are resolved. In some case, aliases were
resolved CLI side and lib side, which led to alias errors sourcehut#95.
* Fri Jun 23 2023 Michael Vetter <mvetter@suse.com>
- Update to 0.8.1:
Added:
* Implemented OAuth 2.0 refresh token flow for IMAP and SMTP,
which means that access tokens are now automatically refreshed
and is transparent for users.
* Added imap-oauth2-redirect-host and smtp-oauth2-redirect-host
options to customize the redirect server host name (default: localhost).
* Added imap-oauth2-redirect-port and smtp-oauth2-redirect-port
options to customize the redirect server port (default: 9999).
* Added email-listing-datetime-fmt to customize envelopes datetime
format. See format spec here.
* Added email-listing-local-datetime to transform envelopes datetime's
timezone to the user's local one. For example, if the user's local
is set to UTC, the envelope date 2023-06-15T09:00:00+02:00
becomes 2023-06-15T07:00:00-00:00.
Fixed:
* Fixed missing < and > around Message-ID and In-Reply-To headers.
* Fri Jun 09 2023 Gus Kenion <gkenion@suse.com>
- Update to 0.8.0:
Added:
* Added keyring support, which means Himalaya can now use your system's global keyring to get/set sensitive data like passwords or tokens.
* Added required IMAP option imap-auth and SMTP option smtp-auth. Possible values: passwd, oauth2.
* Added OAuth 2.0 support for IMAP and SMTP.
* Added passwords and OAuth 2.0 configuration via the wizard.
* Added email-sending-save-copy option to control whenever a copy of any sent email should be saved in the sent folder defined in folder-aliases.
* Imported id mapper from the lib, which means that the id mapping is now done by the CLI.
* Added BackendConfig to AccountConfig::backend to match sender implementation.
* Added support for pipeline commands, which means commands can be either a single command (string) or piped commands (list of strings). It applies for:
+ email-writing-verify-cmd
+ email-writing-decrypt-cmd
+ email-writing-sign-cmd
+ email-writing-encrypt-cmd
Changed:
* Changed release archive extensions from .tar.gz to .tgz.
* Moved wizard module into domains (config, account, backend…).
* [BREAKING] Changed the way secrets are managed. A secret is a sensitive data like passwords or tokens. There is 3 possible ways to declare a secret in the config file:
+ { raw = <secret> } for the raw secret as string (unsafe, not recommanded),
+ { cmd = <secret-cmd> } for command that exposes the secret,
+ { keyring = <secret-entry> } for entry in your system's global keyring that contains the secret.
This applies for:
+ imap-passwd
+ imap-oauth2-client-secret
+ imap-oauth2-access-token
+ imap-oauth2-refresh-token
+ smtp-passwd
+ smtp-oauth2-client-secret
+ smtp-oauth2-access-token
+ smtp-oauth2-refresh-token
Fixed:
* Fixed Windows releases corrupted archives.
Removed
* [BREAKING] Removed -s|--sanitize option. It is done by default now, except if the -t|--mime-type html is set.
* [BREAKING] Removed native-tls support, rustls-tls is now the only TLS provider available. Removed in consequence native-tls, rustls-tls and rustls-native-certs cargo features.
* Mon May 01 2023 Michael Vetter <mvetter@suse.com>
- Update to 0.7.3:
* Fixed Windows releases (due to typo in the github action script).
* Fixed unit tests.
* Mon May 01 2023 Michael Vetter <mvetter@suse.com>
- Update to 0.7.2:
Added:
* Added create and delete folder commands [sourcehut#54].
* Added generated completions and man pages to releases
[sourcehut#43].
* Added new account config option sync-folders-strategy which allows
to choose a folders synchronization strategy [sourcehut#59]:
+ sync-folders-strategy = "all": synchronize all existing folders
for the current account
+ sync-folders-strategy.include = ["folder1", "folder2", …]:
synchronize only the given folders for the current account
+ sync-folders-strategy.exclude = ["folder1", "folder2", …]:
synchronizes all folders except the given ones for the current
account
* Also added new account sync arguments that override the account
config option:
+ -A|--all-folders: include all folders to the synchronization.
+ -F|--include-folder: include given folders to the
synchronization. They can be repeated -F folder1 folder2 or -F folder1 -F folder2.
+ -x|--exclude-folder: exclude given folders from the
synchronization. They can be repeated -x folder1 folder2 or -x folder1 -F folder2.
* Added cargo features native-tls (default), rustls-tls and
rustls-native-certs.
Changed:
* Made global options truly global, which means they can be used
everywhere (not only before commands but also after) [sourcehut#60].
* Replaced reply all -a argument with -A because it conflicted
with the global option -a|--account.
* Replaced himalaya-lib by pimalaya-email.
* Renamed feature vendored to native-tls-vendored.
* Removed the develop branch, all the development is now done on the
master branch.
Fixed:
* Fixed config deserialization issue with email-hooks and email-reading-format.
* Fixed flags case sensitivity.
* Tue Feb 14 2023 Michael Vetter <mvetter@suse.com>
- Update to 0.7.1:
Added:
* Added command folders expunge that deletes all emails marked for
deletion.
Changed:
* Changed the location of the documentation.
Fixed:
* Fixed broken links in README.md.
Removed:
* Removed the maildir-backend cargo feature, it is now included by
default.
* Removed issues section on GitHub, now issues need to be opened by
sending an email at ~soywod/pimalaya@todo.sr.ht.
* Wed Feb 08 2023 Michael Vetter <mvetter@suse.com>
- Update to 0.7.0:
Added:
* Added offline support with the account sync command to synchronize
a backend to a local Maildir backend [#342].
* Added the flag --disable-cache to not use the local Maildir backend.
* Added the email composer (from its own repository) [#341].
* Added Musl builds to releases [#356].
* Added himalaya man command to generate man page [#419].
Changed:
* Made commands read, attachments, flags, copy, move,
delete accept multiple ids.
* Flipped arguments ids and folder for commands copy and move
in order the folder not to be considered as an id.
Fixed:
* Fixed missing folder aliases [#430].
Removed:
* Removed the -a|--attachment argument from write, reply and
forward commands. Instead you can attach documents directly from
the template using the syntax <#part filename=/path/to/you/document.ext>.
* Removed the -e|--encrypt flag from write, reply and forward
commands. Instead you can encrypt and sign parts directly from the
template using the syntax <#part type=text/plain encrypt=command
sign=command>Hello!<#/part>.
* Removed the -l|--log-level option, use instead the RUST_LOG
environment variable (see the wiki)
/usr/bin/himalaya /usr/share/bash-completion /usr/share/bash-completion/completions /usr/share/bash-completion/completions/himalaya /usr/share/doc/packages/himalaya /usr/share/doc/packages/himalaya/CHANGELOG.md /usr/share/doc/packages/himalaya/README.md /usr/share/doc/packages/himalaya/config.sample.toml /usr/share/fish /usr/share/fish/vendor_completions.d /usr/share/fish/vendor_completions.d/himalaya.fish /usr/share/icons/hicolor/scalable/apps/himalaya.svg /usr/share/licenses/himalaya /usr/share/licenses/himalaya/LICENSE-APACHE /usr/share/licenses/himalaya/LICENSE-MIT /usr/share/man/man1/himalaya-account.1.gz /usr/share/man/man1/himalaya-attachment.1.gz /usr/share/man/man1/himalaya-completion.1.gz /usr/share/man/man1/himalaya-configure.1.gz /usr/share/man/man1/himalaya-envelope.1.gz /usr/share/man/man1/himalaya-flag.1.gz /usr/share/man/man1/himalaya-gmail.1.gz /usr/share/man/man1/himalaya-imap.1.gz /usr/share/man/man1/himalaya-jmap.1.gz /usr/share/man/man1/himalaya-json-schema.1.gz /usr/share/man/man1/himalaya-m2dir.1.gz /usr/share/man/man1/himalaya-mailbox.1.gz /usr/share/man/man1/himalaya-maildir.1.gz /usr/share/man/man1/himalaya-manual.1.gz /usr/share/man/man1/himalaya-message.1.gz /usr/share/man/man1/himalaya-msgraph.1.gz /usr/share/man/man1/himalaya-smtp.1.gz /usr/share/man/man1/himalaya.1.gz /usr/share/zsh /usr/share/zsh/site-functions /usr/share/zsh/site-functions/_himalaya
Generated by rpm2html 1.8.1
Fabrice Bellet, Wed Aug 19 00:15:18 2026