inboxctl 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  Most email tools put the intelligence inside the app. `inboxctl` does the opposite: it is the infrastructure layer, and your AI agent is the brain.
10
10
 
11
- Connect any MCP client, including Claude Desktop, Claude Code, or another MCP-compatible agent, and it gets structured access to search your inbox, review sender patterns, detect newsletter noise, triage unread mail, apply labels, archive, create Gmail filters, and manage rules. `inboxctl` handles the Gmail plumbing, audit trail, and undo path.
11
+ Connect any MCP client, including Claude Desktop, Claude Code, or another MCP-compatible agent, and it gets structured access to search your inbox, review sender patterns, analyze uncategorized mail at sender-level, detect newsletter noise, rank unsubscribe opportunities, review categorization anomalies, run structured inbox queries, apply labels, archive, create Gmail filters, and manage rules. `inboxctl` handles the Gmail plumbing, audit trail, and undo path.
12
12
 
13
13
  The CLI and TUI ship alongside MCP so you can always inspect what an agent did, undo it, or run the same work manually.
14
14
 
@@ -18,9 +18,9 @@ Emails are never deleted. The tool can label, archive, mark read, and forward, b
18
18
 
19
19
  | | Count | Examples |
20
20
  |---|---|---|
21
- | **Tools** | 25 | `search_emails`, `archive_emails`, `label_emails`, `mark_read`, `get_top_senders`, `get_newsletter_senders`, `deploy_rule`, `run_rule`, `create_filter`, `undo_run` |
22
- | **Resources** | 6 | `inbox://recent`, `inbox://summary`, `rules://deployed`, `rules://history`, `stats://senders`, `stats://overview` |
23
- | **Prompts** | 5 | `summarize-inbox`, `review-senders`, `find-newsletters`, `suggest-rules`, `triage-inbox` |
21
+ | **Tools** | 34 | `search_emails`, `get_uncategorized_senders`, `batch_apply_actions`, `query_emails`, `get_noise_senders`, `get_unsubscribe_suggestions`, `deploy_rule`, `create_filter`, `undo_run`, `undo_filters`, `cleanup_labels`, `review_categorized` |
22
+ | **Resources** | 8 | `inbox://recent`, `inbox://summary`, `inbox://action-log`, `schema://query-fields`, `rules://deployed`, `rules://history`, `stats://senders`, `stats://overview` |
23
+ | **Prompts** | 6 | `summarize-inbox`, `review-senders`, `find-newsletters`, `suggest-rules`, `triage-inbox`, `categorize-emails` |
24
24
 
25
25
  An agent can read your inbox summary, review your noisiest senders, suggest a YAML rule to handle them, deploy it in dry-run, show you the results, and apply it, all through MCP calls.
26
26
 
@@ -104,11 +104,14 @@ inboxctl demo # launch the seeded demo mailbox
104
104
  ## Features
105
105
 
106
106
  - **MCP server** with the full feature set exposed as tools, resources, and prompts.
107
+ - **Context-efficient sender workflows** with `get_uncategorized_senders` for large inbox categorization without loading every email into an agent context window.
107
108
  - **Rules as code** in YAML, with deploy, dry-run, apply, drift detection, audit logging, and undo.
108
- - **Local-first analytics** on top senders, unread rates, newsletter detection, labels, and volume trends.
109
+ - **Local-first analytics** on top senders, unread rates, newsletter detection, uncategorized senders, noise scoring, unsubscribe impact, anomaly review, labels, and volume trends.
110
+ - **Structured inbox queries** for fixed filters, aggregations, and grouping across the local cache.
109
111
  - **Gmail filter management** for always-on server-side rules on future incoming mail.
110
- - **Full audit trail** with before/after state snapshots for reversible actions.
111
- - **Interactive TUI** for inbox triage, email detail, stats, rules, and search.
112
+ - **Full audit trail** with before/after state snapshots for reversible actions, tracked Gmail filter creation/deletion, and empty-label cleanup after session undo.
113
+ - **Safer rule undo** that auto-disables the originating YAML rule after `undo_run` so the same rule does not immediately re-apply.
114
+ - **Interactive TUI** for inbox triage, email detail, expanded stats dashboards, rules, and search.
112
115
  - **Guided setup wizard** for Google Cloud and local OAuth configuration.
113
116
  - **Demo mode** with realistic seeded data for screenshots, recordings, and safe exploration.
114
117
 
@@ -151,6 +154,7 @@ inboxctl sync --full
151
154
  inboxctl inbox -n 20
152
155
  inboxctl search "from:github.com"
153
156
  inboxctl email <id>
157
+ inboxctl thread <thread-id>
154
158
 
155
159
  # actions
156
160
  inboxctl archive <id>
@@ -164,8 +168,14 @@ inboxctl history
164
168
  # analytics
165
169
  inboxctl stats
166
170
  inboxctl stats senders --top 20
171
+ inboxctl stats noise --top 20
167
172
  inboxctl stats newsletters
173
+ inboxctl stats uncategorized --confidence high
174
+ inboxctl stats unsubscribe --top 20
175
+ inboxctl stats anomalies --since 2026-04-01
168
176
  inboxctl stats volume --period week
177
+ inboxctl query --group-by domain --aggregate count unread_rate --sort "count desc"
178
+ inboxctl unsubscribe newsletter@example.com --no-archive
169
179
 
170
180
  # rules
171
181
  inboxctl rules deploy
@@ -249,6 +259,8 @@ Native dependency note:
249
259
 
250
260
  - No deletion. There is no code path that calls `messages.delete` or `messages.trash`.
251
261
  - Minimal OAuth scopes: `gmail.modify`, `gmail.labels`, `gmail.settings.basic`, and `userinfo.email`.
262
+ - `undo_run` restores recorded label snapshots and auto-disables the originating rule when the run came from a YAML rule.
263
+ - `undo_filters` removes inboxctl-created Gmail filters for a run or session, and `cleanup_labels` removes empty `inboxctl/*` labels left behind after undo.
252
264
  - Dry-run by default for rules.
253
265
  - Audit trail for every reversible mutation.
254
266
  - Undo support for reversible actions.