Interactive CLI business card for Carlos Ferreyra
Project description
Carlos Ferreyra CLI Business Card (Python)
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.
Features
- 🎨 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
Quick Start
Run the business card directly with uvx (no installation required):
uvx carlosferreyra
Alternative Installation Methods
Using pip
pip install carlosferreyra
carlosferreyra
Using uv
uv tool install carlosferreyra
carlosferreyra
Development
Prerequisites
- Python 3.13+
- uv (recommended) or pip
Setup
# 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
Building and Publishing
# Build the package
uv build
# Publish to PyPI (requires authentication)
uv publish
Technologies Used
- 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
Project Structure
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
Customization
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
uvx vs npx Comparison
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 |
Connect with Carlos
- GitHub: github.com/carlosferreyra
- LinkedIn: linkedin.com/in/eduferreyraok
- Website: carlosferreyra.me
- Email: eduferreyraok@gmail.com
- Twitter: @eduferreyraok
License
This project is licensed under the MIT License. See the LICENSE file for details.
Tutorial: Creating Your Own uvx CLI
This project serves as a complete example of how to create a modern Python CLI that works with
uvx. Key learnings:
1. Project Structure
- Use
src/layout for better packaging - Include
py.typedfor type information - Configure entry points in
pyproject.toml
2. uvx Compatibility
- Ensure fast startup time
- Minimize dependencies
- Use standard library when possible
- Configure proper entry points
3. Rich Terminal Experience
- Use Rich for beautiful formatting
- Implement smooth animations
- Create interactive menus
- Handle terminal clearing and sizing
4. Cross-platform Compatibility
- Use
webbrowsermodule 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!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file carlosferreyra-1.1.2.tar.gz.
File metadata
- Download URL: carlosferreyra-1.1.2.tar.gz
- Upload date:
- Size: 7.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1a73dffcb1601b51a8da1bc4ea8b49653a577f4b4646adf4b4ee904cff8e11e
|
|
| MD5 |
6fd28c5dfa2a28e85322c1bb2951a72a
|
|
| BLAKE2b-256 |
a3ddd5dfa19434b3d4bc4e58937c1f454df8c7b803dbddb9c1b83922e222e290
|
Provenance
The following attestation bundles were made for carlosferreyra-1.1.2.tar.gz:
Publisher:
release-pypi.yml on carlosferreyra/business-card
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
carlosferreyra-1.1.2.tar.gz -
Subject digest:
f1a73dffcb1601b51a8da1bc4ea8b49653a577f4b4646adf4b4ee904cff8e11e - Sigstore transparency entry: 601144849
- Sigstore integration time:
-
Permalink:
carlosferreyra/business-card@83796aa0cb704a5f9b48024bb5b064a17fdba5aa -
Branch / Tag:
refs/tags/v1.1.2 - Owner: https://github.com/carlosferreyra
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@83796aa0cb704a5f9b48024bb5b064a17fdba5aa -
Trigger Event:
push
-
Statement type:
File details
Details for the file carlosferreyra-1.1.2-py3-none-any.whl.
File metadata
- Download URL: carlosferreyra-1.1.2-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e31a745c818df05474f1a22d9fc4169891fa8b7fafaff81cd6e04a120e6fdbf0
|
|
| MD5 |
0e4aca65e951979d3e16c96ccc7cbab2
|
|
| BLAKE2b-256 |
3cd3fab6defdcd93eeca02f7b9e59012abc826821c37c21e34862b385944d669
|
Provenance
The following attestation bundles were made for carlosferreyra-1.1.2-py3-none-any.whl:
Publisher:
release-pypi.yml on carlosferreyra/business-card
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
carlosferreyra-1.1.2-py3-none-any.whl -
Subject digest:
e31a745c818df05474f1a22d9fc4169891fa8b7fafaff81cd6e04a120e6fdbf0 - Sigstore transparency entry: 601144850
- Sigstore integration time:
-
Permalink:
carlosferreyra/business-card@83796aa0cb704a5f9b48024bb5b064a17fdba5aa -
Branch / Tag:
refs/tags/v1.1.2 - Owner: https://github.com/carlosferreyra
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@83796aa0cb704a5f9b48024bb5b064a17fdba5aa -
Trigger Event:
push
-
Statement type: