A laravel installer inspired Python Web Application Scaffolding Tool that helps you create web applications with ease!
- π― Interactive project setup wizard
- π§ Multiple framework support:
- Flask - Lightweight WSGI framework
- FastAPI - Modern, fast API framework
- Bottle - Simple micro web framework π§
- Pyramid - Flexible web framework π§
- π¨ Project templates for both web apps and APIs
- ποΈ Modular project structure (see below)
- π Automatic virtual environment setup
- π¦ Dependency management
- ποΈ Structured project scaffolding
- π§ͺ Test scaffolding with pytest
- π Update checker for the CLI
- π Command to run your application
pip install amen-cliuv is a very fast Python package installer and resolver, written in Rust.
To install amen-cli using uv:
-
Install uv:
pip install uv
-
Install
amen-cliusing uv:uv pip install amen-cli
uv utilizes the pyproject.toml file for resolving dependencies, ensuring a consistent and reproducible installation.
# 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-cliMake 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.
# 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
# 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 check-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 monitorWhen you create a project, AMEN now generates a modular 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 # This file
- Flask: Uses
app.pyand registers a blueprint fromapi/endpoints.py. Token authentication is inauth/token.py. - FastAPI: Uses
main.pyand includes a router fromapi/endpoints.py. Token authentication is inauth/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 | 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 | π§ |
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.
# Install AMEN CLI
pip install amen-cli
# Create a new project
amen create
# Follow the interactive prompts
# Navigate to your project
cd your-project-name
# Activate virtual environment
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# Run your application
python run.py
Or
#Before you cd into your project you can run the following
amen run <appname># Clone the repository
git clone https://github.com/taqsblaze/amen-cli.git
# Install for development and testing
cd amen-cli
pip install -e .
pip install pytest pytest-cov
# Run tests
pytest
# Run tests with coverage
pytest --covContributions are welcome! Here's how:
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
- π GitHub Repository
- π Issue Tracker
- π§ Send Email
Created by Tanaka Chinengundu
Inspired by Laravel's elegant development experience
Made with β€οΈ by Tanaka Chinengundu