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

Metadata

Release files for amen-cli 0.13.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for amen-cli 0.13.1
File Size Uploaded
amen_cli-0.13.1.tar.gz 784.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for amen-cli 0.13.1
File Interpreter ABI Platform
amen_cli-0.13.1-py3-none-any.whl Python 3 none any Details

Total release size: 1.6 MB

Release files / amen_cli-0.13.1.tar.gz

Download URL amen_cli-0.13.1.tar.gz
Size 784.4 kB
Tags Source
SHA-256 checksum
How to use checksums
4ec0eb2798fdd7274feed81896dc7e9c06516cab01bdc2ad912486804c1a02a9
BLAKE2b-256 checksum
How to use checksums
2f3bc5687cb32b43374d3f744203ef1d8d7ab5a535fb64d86148ab8ac6d64e67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / amen_cli-0.13.1-py3-none-any.whl

Download URL amen_cli-0.13.1-py3-none-any.whl
Size 767.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d215119b0b7f330d6b14acfc9e55ce7e7b277a0abfe3737c260a5b1860650f02
BLAKE2b-256 checksum
How to use checksums
e47564214c6ef0a2a81d092c5b03608d519e5f61b8460a096320c5f700878012
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.13.1 This release

2 release files

0.13.0

2 release files

0.9.0

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page