feat(cli): Add comprehensive CLI using Typer#2
Merged
sokripon merged 4 commits intosokripon:mainfrom Jan 15, 2026
Merged
Conversation
- Add src/tacomail/cli.py with all 9 commands - Add CLI entry point to pyproject.toml - Implement Rich console output with colors and formatting - Add support for both sync and async clients - Add comprehensive help system - Add --async and --verbose global options Commands implemented: - create: Generate random email address - list-domains: List available Tacomail domains - create-session: Create session for email address - delete-session: Delete session for email address - list: List emails in inbox - get: Get specific email by ID - delete: Delete specific email by ID - clear: Delete all emails from inbox - wait: Wait for new email with filtering All commands include: - Proper type hints - Rich help text and docstrings - Error handling with user-friendly messages - Support for --async and --verbose options
…emails - Add comprehensive CLI commands documentation - Add quick start section for email receiving workflow - Include uvx installation recommendation - Document all 9 commands with usage examples - Add command-specific help availability
- Update git config to use correct GitHub username - Modify cli.py and update uv.lock - Push latest changes to repository
c7f3ca1 to
583a3f1
Compare
- Fixed all 12 ruff linter errors in src/tacomail/cli.py - Removed unused imports and unnecessary f-string prefixes - Updated README.md with linter fixes documentation - Added combined create-with-session command (from sub-agent) - All linter tests now pass successfully
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
This PR adds a complete command-line interface for the Tacomail Python client using Typer, providing a user-friendly way to interact with Tacomail's disposable email service.
Features Added
Complete CLI Implementation
Commands Implemented
Email Generation & Domains:
tacomail create- Generate random email addresstacomail list-domains- List available Tacomail domainsSession Management:
tacomail create-session <email>- Create API session for receiving emailstacomail delete-session <email>- Delete API sessionInbox Operations:
tacomail list <email>- List recent emails in inboxtacomail get <email> <id>- Get specific email detailstacomail delete <email> <id>- Delete specific emailtacomail clear <email>- Delete all emails from inboxEmail Waiting:
tacomail wait <email>- Wait for new email to arriveKey Features
--asyncflag to use async client--verboseflag for debuggingTesting
All commands have been tested and verified to work correctly.
Documentation
Installation
Standard installation
Using uvx (recommended)
Changes
src/tacomail/cli.py(11,137 bytes) - Complete CLI implementationpyproject.toml- Added CLI entry point and dependencies (typer, rich)README.md- Comprehensive CLI documentation and quick start guideBreaking Changes
None - this adds new functionality without breaking existing API.