feat(gmail): add thread attachments command#27
Merged
steipete merged 9 commits intoopenclaw:mainfrom Jan 5, 2026
Merged
Conversation
Adds `gog gmail thread attachments <threadId>` command that lists all attachments in an email thread with human-readable sizes. Features: - Lists attachments across all messages in a thread - Shows filename, size (human-readable), and MIME type - Optional --download flag to download all attachments - Optional --out-dir to specify download directory - Supports both JSON and text output formats 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add pre-flight keychain accessibility check to AuthTokensImportCmd.Run to fail early if the keychain is locked, rather than after the user has already completed the import process. Also adds the EnsureKeychainAccess function to the secrets package which performs a write/delete test to verify keychain accessibility on macOS. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Wrap keychain access error for wrapcheck linter - Add blank lines before returns for wsl linter - Define static error for err113 linter 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Enables `gog mail` and `gog email` as shortcuts for `gog gmail`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add a headers map with common email headers (from, to, cc, bcc, subject, date) to the JSON output of `gog gmail get`. This makes header extraction much simpler: # Before (error-prone due to jq operator precedence) jq '.message.payload.headers[] | select(.name == "To") | .value' # After jq '.headers.to' 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
steipete
approved these changes
Jan 5, 2026
steipete
added a commit
that referenced
this pull request
Jan 5, 2026
manascb1344
pushed a commit
to manascb1344/gogcli
that referenced
this pull request
Jan 15, 2026
* feat(gmail): add thread attachments command Adds `gog gmail thread attachments <threadId>` command that lists all attachments in an email thread with human-readable sizes. Features: - Lists attachments across all messages in a thread - Shows filename, size (human-readable), and MIME type - Optional --download flag to download all attachments - Optional --out-dir to specify download directory - Supports both JSON and text output formats 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(auth): check keychain before token import Add pre-flight keychain accessibility check to AuthTokensImportCmd.Run to fail early if the keychain is locked, rather than after the user has already completed the import process. Also adds the EnsureKeychainAccess function to the secrets package which performs a write/delete test to verify keychain accessibility on macOS. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * style: group const declarations for gofumpt 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: address lint issues in store.go - Wrap keychain access error for wrapcheck linter - Add blank lines before returns for wsl linter - Define static error for err113 linter 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(cli): add mail and email aliases for gmail command Enables `gog mail` and `gog email` as shortcuts for `gog gmail`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(gmail): add flattened headers to gmail get JSON output Add a headers map with common email headers (from, to, cc, bcc, subject, date) to the JSON output of `gog gmail get`. This makes header extraction much simpler: # Before (error-prone due to jq operator precedence) jq '.message.payload.headers[] | select(.name == "To") | .value' # After jq '.headers.to' 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(gmail): include inline attachments * fix(secrets): dedupe keychain helpers --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: Peter Steinberger <steipete@gmail.com>
manascb1344
pushed a commit
to manascb1344/gogcli
that referenced
this pull request
Jan 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
gog gmail thread attachments <threadId>command that lists all attachments in an email thread--downloadflag to download all attachments in one command--out-dirto specify download destinationUsage
Test plan
🤖 Generated with Claude Code