Skip to content

feat(cli): add list subcommand - #1752

Open
Robin-Everaars wants to merge 2 commits into
floatpane:release/v1from
Robin-Everaars:feature/cli-list
Open

Robin-Everaars wants to merge 2 commits into
floatpane:release/v1from
Robin-Everaars:feature/cli-list

Conversation

@Robin-Everaars

@Robin-Everaars Robin-Everaars commented Oct 27, 2026 •

Copy link
Copy Markdown

What?

Adds matcha list [folder] [--from <email>] [--json]. It prints the newest 50 messages of a folder (INBOX by default) as a table, or as JSON with uid, from, subject, date and is_read.

It also adds helpers that read, search and manage reuse: INBOX normalization, flag parsing that accepts flags after positionals and the table/JSON renderer.

Why?

Part of #1642. Depends on #1751.

This is one of five small PRs that replace #1680, as asked there: rebuilt on release/v1 and split per command. They stack, so please merge them in order. Each one shows its predecessors' commits until those are merged.

  1. feat(cli): add folders subcommand #1751 folders
  2. feat(cli): add list subcommand #1752 list
  3. feat(cli): add read subcommand #1753 read
  4. feat(cli): add search subcommand #1754 search
  5. feat(cli): add mail manage commands #1755 archive, delete, mark-read, mark-unread, move

Every step passes gofmt, go vet, go test ./..., go mod tidy and golangci-lint on the new code.

Add `matcha folders [--from <email>] [--json]`, the first read-only
mail command next to `send`.

The shared plumbing for the follow-up commands lives in cli/util.go
(account resolution by --from, matching Email and then FetchEmail
case-insensitively) and cli/main.go (hookable config loader, service
constructor and output writers for tests).

daemonclient gains NewCLIClient(cfg, autoStart). With autoStart off, a
one-shot command uses a running daemon and otherwise connects directly
instead of forking a daemon. NewService keeps its behaviour.

Refs floatpane#1642
Add `matcha list [folder] [--from <email>] [--json]`, which prints the
newest 50 messages of a folder (INBOX by default) as a table or as JSON
with uid, from, subject, date and is_read.

Adds the helpers the later read, search and manage commands share:
INBOX normalization, flag parsing that allows flags after positionals,
and the table/JSON email renderer.

Refs floatpane#1642

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/cli CLI flags / commands area/daemon Daemon / RPC enhancement New feature or request size/L Diff: 201–800 lines target/v1 PR targets the release/v1 branch directly

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants