✨ Features
- Interactive project setup wizard
- Multiple framework support: Flask, FastAPI, Bottle (WIP), Pyramid (WIP)
- Modular project structure
- Webapp and API templates
- Automatic virtual environment setup
- Dependency management
- Test scaffolding with pytest
- Update checker for the CLI
- Easy project runner
🛠️ Installation
Using pip (All platforms)
pip install amen-cli
Using uv
uv is a very fast Python package installer and resolver, written in Rust.
- Install uv:
pip install uv
- Install
amen-cli
using uv:uv pip install amen-cli
uv utilizes the pyproject.toml
file for resolving dependencies, ensuring a consistent and reproducible installation.
Debian/Ubuntu
# Install required dependencies
sudo apt-get update
sudo apt-get install python3-pip python3-venv
# Install AMEN CLI
pip3 install amen-cli
# Optional: Install system-wide (requires root)
sudo pip3 install amen-cli
Linux Post-Installation
Make sure the amen command is in your PATH:
export PATH="$HOME/.local/bin:$PATH"
Add this line to your ~/.bashrc or ~/.zshrc for permanent effect.
🚀 Quick Start
# Create a new project
amen create
# You can also use flags to specify the framework, type, and name:
amen create -f flask -t webapp -n myapp
# Available options:
# -f, --framework Framework to use (flask, fastapi, bottle, pyramid)
# -t, --type Type of application (webapp, api)
# -n, --name Name of the application
# If flags are not provided, the interactive prompts will be used.
# Follow the interactive prompts to:
# 1. Select a framework
# 2. Choose application type (webapp/api)
# 3. Name your project
-f, --framework
Framework (flask, fastapi, bottle, pyramid)-t, --type
Application type (webapp, api)-n, --name
Project name
# Launch the web interface for project management
amen web [options]
# Available web interface options:
# -p, --port Port to run the web interface on (default: 3000)
# Run your application
amen run <app_name>
# Example:
amen run myapp
# Run tests for your application
amen test <app_name>
# Example:
amen test myapp
# Check for updates to the CLI
amen update
# Manage project configuration
amen config <app_name>
# Example:
amen config myapp
# Run a security audit on your application
amen audit <app_name> [options]
# Options:
# -f, --format Output format (txt, json, csv, xml; default: txt)
# -s, --severity Filter issues by severity (low, medium, high)
# -o, --output Save audit report to a specified file
# Example:
amen audit myapp -s high
# Monitor application status and resource usage in real time
amen monitor <app_name> [options]
# Options:
# -p, --port Port to monitor
# -r, --refresh Refresh rate in seconds (accepts decimal values; default: 0.1)
# --web Run a web based monitor
# Example:
amen monitor myapp --port 5000 --refresh 0.5
amen monitor myapp --port 5000 -refresh 0.5 --web #Web based monitor
🏗️ Project Structure
your-app/
├── venv/ # Virtual environment
├── your-app/ # Main application package
│ ├── api/ # API endpoints (endpoints.py)
│ ├── auth/ # Authentication (token.py, etc.)
│ ├── models/ # Models module
│ ├── static/ # Static files (CSS, JS, images)
│ │ ├── uploads/
│ │ ├── css/
│ │ └── js/
│ ├── templates/ # HTML templates (if webapp)
│ └── app.py / main.py # Main application file (Flask: app.py, FastAPI: main.py)
├── tests/ # Test files
├── docs/ # Documentation
├── requirements.txt # Python dependencies
├── .env # Environment variables (local)
├── .env.example # Environment variables template
├── .gitignore # Git ignore rules
├── run.py # Application runner
└── README.md # Project documentation
- Flask: Uses app.py
and registers a blueprint from api/endpoints.py
. Token authentication is in auth/token.py
.
- FastAPI: Uses main.py
and includes a router from api/endpoints.py
. Token authentication is in auth/token.py
.
- Webapp: Includes HTML templates and static files. FastAPI mounts static and template directories.
- API: Generates only API endpoints and disables template/static mounting.
🎯 Framework Support
Framework | Description | Default Port | Status |
---|---|---|---|
Flask | Lightweight WSGI web framework | 5000 | ✅ |
FastAPI | Modern, fast web framework | 8000 | ✅ |
Django | High-level Python web framework | 8000 | ❌ |
Bottle | Fast, simple micro framework | 8080 | 🚧 |
Pyramid | Flexible web framework | 6543 | 🚧 |
Work in Progress
Currently implementing support for additional web frameworks:
- Bottle: Integration in development
- Pyramid: Initial implementation phase
These frameworks will enable:
- Route mapping and handling
- Request/response processing
- Middleware integration
- Template rendering support
Check back for updates or follow the project's issues for implementation progress. Contributions are welcome!
Note: For now, please use our stable implementations for Flask or FastAPI.
📖 Usage
# Create a new project
amen create
# Run your application
amen run <app_name>
# Run tests
amen test <app_name>
# Check for updates
amen update
# Manage project configuration
amen config <app_name>
🔧 Development
git clone https://github.com/taqsblaze/amen-cli.git
pip install -e .
pip install pytest pytest-cov
pytest
pytest --cov
🤝 Contributing
- Fork the repository
- Create your feature branch:
git checkout -b feature/amazing-feature
- Make your changes
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
👥 Contact & Support
⭐ Credits
Created by Tanaka Chinengundu
Inspired by Laravel's elegant development experience