https://github.com/taqsblaze/amen-cli
AMEN: inspired by laravel installer Python Web Application Scaffolding tool
https://github.com/taqsblaze/amen-cli
cli-app package python python-3 scaffolding virtualenv
Last synced: 4 months ago
JSON representation
AMEN: inspired by laravel installer Python Web Application Scaffolding tool
- Host: GitHub
- URL: https://github.com/taqsblaze/amen-cli
- Owner: TaqsBlaze
- License: other
- Created: 2025-05-24T01:02:33.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-30T10:50:20.000Z (about 1 year ago)
- Last Synced: 2025-05-31T18:23:49.050Z (about 1 year ago)
- Topics: cli-app, package, python, python-3, scaffolding, virtualenv
- Language: Python
- Homepage: https://taqsblaze.github.io/amen-cli/
- Size: 262 KB
- Stars: 6
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ AMEN CLI 
[](https://pypi.org/project/amen-cli/)
[](https://github.com/TaqsBlaze/amen-cli/blob/main/LICENSE)
[](https://pypi.org/project/amen-cli/)
[](https://github.com/TaqsBlaze/amen-cli)
[](https://github.com/TaqsBlaze/amen-cli/issues)
[](https://github.com/TaqsBlaze/amen-cli)
[](https://github.com/TaqsBlaze/amen-cli/commits/main)
[](https://github.com/TaqsBlaze/amen-cli/graphs/contributors)
[](https://github.com/TaqsBlaze/amen-cli)
[](https://github.com/TaqsBlaze/amen-cli)
[](https://pypi.org/project/amen-cli/)
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)
```bash
pip install amen-cli
```
### Using uv
[uv](https://github.com/astral-sh/uv) is a very fast Python package installer and resolver, written in Rust.
To install `amen-cli` using uv:
1. Install uv:
```bash
pip install uv
```
2. Install `amen-cli` using uv:
```bash
uv pip install amen-cli
```
uv utilizes the `pyproject.toml` file for resolving dependencies, ensuring a consistent and reproducible installation.
### Debian/Ubuntu
```bash
# 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:
```bash
export PATH="$HOME/.local/bin:$PATH"
```
Add this line to your ~/.bashrc or ~/.zshrc for permanent effect.
## ๐ Usage
```bash
# 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)
```
### Additional Commands
```bash
# Run your application
amen run
# Example:
amen run myapp
# Run tests for your application
amen test
# Example:
amen test myapp
# Check for updates to the CLI
amen check-update
# Manage project configuration
amen config
# Example:
amen config myapp
# Run a security audit on your application
amen audit [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 [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
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.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.
## ๐ฏ 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
```bash
# 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
```
## ๐ง Development
```bash
# 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](LICENSE) file for details.
## ๐ฅ Contact & Support
- ๐ [GitHub Repository](https://github.com/taqsblaze/amen-cli)
- ๐ [Issue Tracker](https://github.com/taqsblaze/amen-cli/issues)
- ๐ง [Send Email](mailto:tanakah30@gmail.com)
## โญ Credits
Created by [Tanaka Chinengundu](https://www.linkedin.com/in/taqsblaze)
Inspired by Laravel's elegant development experience
---
Made with โค๏ธ by Tanaka Chinengundu