A laravel installer inspired Python Web Application Scaffolding Tool
Project description
A laravel installer inspired Python Web Application Scaffolding Tool that helps you create web applications with ease!
โจ Features
- ๐ฏ 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
๐ ๏ธ Installation
Using pip (All platforms)
pip install amen-cli
Using uv
uv 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.
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.
๐ Usage
# Create a new project
amen create
# or use the short-form alias
am create
# You can also use flags to specify the framework, type, and name:
amen create -f flask -t webapp -n myapp
am 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]
am web [options]
# Available web interface options:
# -p, --port Port to run the web interface on (default: 3000)
Command Alias
All commands can be run using the short-form alias am instead of amen:
am create # instead of: amen create
am run myapp # instead of: amen run myapp
am test myapp # instead of: amen test myapp
am update # instead of: amen check-update
am config myapp # instead of: amen config myapp
Additional Commands
# Run your application
amen run <app_name>
am run <app_name>
# Example:
amen run myapp
am run myapp
# Run tests for your application
amen test <app_name>
am test <app_name>
# Example:
amen test myapp
am test myapp
# Check for updates to the CLI
amen update
am update
# Manage project configuration
amen config <app_name>
am config <app_name>
# Example:
amen config myapp
am config myapp
# Run a security audit on your application
amen audit <app_name> [options]
am 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
am audit myapp -s high
# Monitor application status and resource usage in real time
amen monitor <app_name> [options]
am 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
am monitor myapp --port 5000 --refresh 0.5
amen monitor myapp --port 5000 --refresh 0.5 --web
am monitor myapp --port 5000 --refresh 0.5 --web
# Run database migrations for your application
amen migrate <app_name>
am migrate <app_name>
# Example:
amen migrate myapp
am migrate myapp
# This will:
# 1. Initialize migrations if not already initialized
# 2. Create a new migration
# 3. Upgrade the database
# Install a package in your application's virtual environment
amen install <app_name> <package>
am install <app_name> <package>
# Example:
amen install myapp requests
am install myapp flask-cors
# This will:
# 1. Cache the package for offline use
# 2. Install the package in the application's virtual environment
๐ Project Structure
When 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.
๐ฏ Supported Frameworks
| 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.
๐ Quick Start
# 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>
๐ง Development
# 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 --cov
๐ค Contributing
Contributions 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
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ฅ Contact & Support
- ๐ GitHub Repository
- ๐ Issue Tracker
- ๐ง Send Email
โญ Credits
Created by Tanaka Chinengundu
Inspired by Laravel's elegant development experience
Made with โค๏ธ by Tanaka Chinengundu
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 amen_cli-0.12.0.tar.gz.
File metadata
- Download URL: amen_cli-0.12.0.tar.gz
- Upload date:
- Size: 781.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ff4007783a3dca5458989ee3a21dd11ea3a9b43aa9488b3a9dd2b6d6d09434d
|
|
| MD5 |
d31584441b0a79483dbec013f62e1f45
|
|
| BLAKE2b-256 |
ce8e4472c58b5569eedafbf7db28cad9ba2d1415279393dee6b9550ee6cc648a
|
File details
Details for the file amen_cli-0.12.0-py3-none-any.whl.
File metadata
- Download URL: amen_cli-0.12.0-py3-none-any.whl
- Upload date:
- Size: 765.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eaccbc4df760c58282ed3e974c94dbc74ccca1778a0a3069f603d283c8aac694
|
|
| MD5 |
61a44a1c2609a72f4c3caa685b7f9fcf
|
|
| BLAKE2b-256 |
4077463ef30be59db369494cfb80562c466d046b4047426a98840d19818127e4
|