A modern, interactive CLI business card showcasing Carlos Ferreyra's portfolio and contact information with beautiful animations and rich terminal formatting.
Built with Python and optimized for uvx
- the universal package runner.
- π¨ Beautiful terminal formatting with Rich
- π§ Direct email contact
- π₯ Quick resume access
- π Portfolio website access
- π» Professional links (GitHub, LinkedIn, Twitter)
- β‘ Fast and responsive interface
- π₯οΈ Interactive CLI menu
- π ASCII art banner with animations
- π¦ Zero-install execution with uvx
Run the business card directly with uvx
(no installation required):
uvx carlosferreyra
pip install carlosferreyra
carlosferreyra
uv tool install carlosferreyra
carlosferreyra
- Python 3.13+
- uv (recommended) or pip
# Clone the repository
git clone https://github.com/carlosferreyra/carlosferreyra-cli-py.git
cd carlosferreyra-cli-py
# Install dependencies with uv
uv sync
# Run in development mode
uv run python -m carlosferreyra
# Or install in development mode
uv pip install -e .
carlosferreyra
# Build the package
uv build
# Publish to PyPI (requires authentication)
uv publish
- Python 3.13+ - Modern Python features
- Rich - Beautiful terminal formatting and animations
- PyFiglet - ASCII art text generation
- Inquirer - Interactive CLI prompts
- Click - Command line interface framework
- Colorama - Cross-platform colored terminal text
src/carlosferreyra/
βββ __init__.py # Package initialization
βββ __main__.py # Main application entry point
βββ config.py # Personal information and configuration
βββ utils.py # Utility functions for animations
βββ banner.py # Welcome banner with ASCII art
βββ card.py # Business card display
βββ menu.py # Interactive menu system
βββ actions.py # Action handlers for menu options
To customize this business card for yourself:
- Update the personal information in
src/carlosferreyra/config.py
- Modify theme colors and animation speeds
- Add or remove menu options in
src/carlosferreyra/menu.py
- Update action handlers in
src/carlosferreyra/actions.py
This Python CLI is designed to be the equivalent of the TypeScript version but optimized for Python tooling:
Feature | TypeScript (npx) | Python (uvx) |
---|---|---|
Runtime | Node.js | Python |
Package Manager | npm | PyPI |
Zero-install run | npx carlosferreyra |
uvx carlosferreyra |
Installation | npm install -g carlosferreyra |
uv tool install carlosferreyra |
- GitHub: github.com/carlosferreyra
- LinkedIn: linkedin.com/in/eduferreyraok
- Website: carlosferreyra.me
- Email: [email protected]
- Twitter: @eduferreyraok
This project is licensed under the MIT License. See the LICENSE file for details.
This project serves as a complete example of how to create a modern Python CLI that works with
uvx
. Key learnings:
- Use
src/
layout for better packaging - Include
py.typed
for type information - Configure entry points in
pyproject.toml
- Ensure fast startup time
- Minimize dependencies
- Use standard library when possible
- Configure proper entry points
- Use Rich for beautiful formatting
- Implement smooth animations
- Create interactive menus
- Handle terminal clearing and sizing
- Use
webbrowser
module for URL opening - Handle keyboard interrupts gracefully
- Test on multiple platforms
This CLI demonstrates how to create engaging terminal applications that users can run instantly with
uvx carlosferreyra
!