Skip to main content

icon

PyPI Version License Python Versions GitHub Stars GitHub Issues GitHub Forks GitHub Last Commit GitHub Contributors GitHub Code Size GitHub Repo Size PyPI Downloads

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:

  1. Install uv:

    pip install uv
    
  2. 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.

๐Ÿ“– 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 endpoint modules
โ”‚   โ”œโ”€โ”€ 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
โ”œโ”€โ”€ app.py                  # Application runner
โ””โ”€โ”€ README.md               # This file
  • Flask: Uses app.py and registers routes from separate files inside api/ (for example home.py, health.py, protected.py). Token authentication is in auth/token.py.
  • FastAPI: Uses main.py and includes routers from separate files in api/ through 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.

๐ŸŽฏ 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 app.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:

  1. Fork the repository
  2. Create your feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ‘ฅ Contact & Support

โญ Credits

Created by Tanaka Chinengundu
Inspired by Laravel's elegant development experience


Made with โค๏ธ by Tanaka Chinengundu

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

amen_cli-0.13.1.tar.gz (784.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

amen_cli-0.13.1-py3-none-any.whl (767.1 kB view details)

Uploaded Python 3

File details

Details for the file amen_cli-0.13.1.tar.gz.

File metadata

  • Download URL: amen_cli-0.13.1.tar.gz
  • Upload date:
  • Size: 784.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for amen_cli-0.13.1.tar.gz
Algorithm Hash digest
SHA256 4ec0eb2798fdd7274feed81896dc7e9c06516cab01bdc2ad912486804c1a02a9
MD5 f9db609ad719dce338b8fa05921eec93
BLAKE2b-256 2f3bc5687cb32b43374d3f744203ef1d8d7ab5a535fb64d86148ab8ac6d64e67

See more details on using hashes here.

File details

Details for the file amen_cli-0.13.1-py3-none-any.whl.

File metadata

  • Download URL: amen_cli-0.13.1-py3-none-any.whl
  • Upload date:
  • Size: 767.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for amen_cli-0.13.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d215119b0b7f330d6b14acfc9e55ce7e7b277a0abfe3737c260a5b1860650f02
MD5 82d08028578d0dccc429ed3e0013ef79
BLAKE2b-256 e47564214c6ef0a2a81d092c5b03608d519e5f61b8460a096320c5f700878012

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.13.1 This release

2 files

0.13.0

2 files

0.12.0

2 files

0.11.5

2 files

0.11.4

2 files

0.11.3

2 files

0.11.1

2 files

0.11.0

2 files

0.10.1

2 files

0.9.0

2 files

0.8.3

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.7

2 files

0.4.6

2 files

0.4.5

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page