Commands Reference
Complete reference for all FCube CLI commands.
Global Options
These options are available for all commands:
| Option | Description |
--help | Show help message |
--version | Show FCube version |
startproject - Create New Project
Creates a new FastAPI project with core infrastructure. User module is not included by default.
fcube startproject <project_name> [OPTIONS]
Arguments
| Argument | Required | Description |
project_name | Yes | Name of the project (creates directory) |
Options
| Option | Default | Description |
--dir, -d | . | Directory for project |
--celery/--no-celery | yes | Include Celery |
--docker/--no-docker | yes | Include Docker |
--force, -f | no | Overwrite existing files |
Examples
# Basic usage
fcube startproject MyProject
# Specify directory
fcube startproject MyApi --dir projects
# Without Celery
fcube startproject SimpleApi --no-celery
# Without Docker
fcube startproject LightApi --no-docker
# Force overwrite
fcube startproject MyProject --force
Generated Structure
my_project/
├── app/
│ ├── apis/
│ │ └── v1.py
│ └── core/
│ ├── __init__.py
│ ├── database.py
│ ├── models.py
│ ├── settings.py
│ ├── crud.py
│ ├── exceptions.py
│ ├── logging.py
│ ├── main.py
│ ├── dependencies.py
│ ├── alembic_models_import.py
│ └── celery_app.py
├── migrations/
├── docker/
│ ├── Dockerfile
│ └── docker-entrypoint.sh
├── docker-compose.yml
├── alembic.ini
├── pyproject.toml
├── .env.example
├── .gitignore
└── README.md
adduser - Add User Module
Adds user module with configurable authentication methods.
Options
| Option | Default | Description |
--auth-type, -a | email | email, phone, or both |
--dir, -d | app | App directory |
--force, -f | no | Overwrite existing |
Authentication Types
| Type | Description | User Fields |
email | Email + password with JWT | email, hashed_password |
phone | Phone OTP with SMS | phone_number, otp_code |
both | Combined authentication | All fields + primary_auth_method |
Examples
# Email/password authentication (default)
fcube adduser
# Phone OTP authentication
fcube adduser --auth-type phone
# Both email and phone authentication
fcube adduser --auth-type both
# Force overwrite
fcube adduser --force
Generated Structure
app/user/
├── __init__.py
├── models.py
├── schemas.py
├── crud.py
├── exceptions.py
├── auth_management/
│ ├── __init__.py
│ ├── routes.py
│ ├── service.py
│ └── utils.py
├── permission_management/
│ ├── __init__.py
│ ├── utils.py
│ └── scoped_access.py
└── services/
├── __init__.py
└── user_referral_integration.py
addplugin - Add Plugin Modules
Adds pre-built feature modules to your project.
fcube addplugin <plugin_name> [OPTIONS]
Arguments
| Argument | Required | Description |
plugin_name | Yes | Name of the plugin to install |
Options
| Option | Default | Description |
--list, -l | - | Show available plugins |
--dry-run | no | Preview without creating files |
--dir, -d | app | App directory |
--force, -f | no | Overwrite existing |
Examples
# List available plugins
fcube addplugin --list
# Preview plugin (dry run)
fcube addplugin referral --dry-run
# Install plugin
fcube addplugin referral
# Force overwrite
fcube addplugin referral --force
Available Plugins
| Plugin | Description | Dependencies |
referral | User referral system with strategies | user |
Referral Plugin Structure
app/referral/
├── __init__.py
├── models.py
├── config.py
├── strategies.py
├── exceptions.py
├── dependencies.py
├── tasks.py
├── schemas/
│ ├── __init__.py
│ └── referral_schemas.py
├── crud/
│ ├── __init__.py
│ └── referral_crud.py
├── services/
│ ├── __init__.py
│ └── referral_service.py
└── routes/
├── __init__.py
├── referral_routes.py
└── referral_admin_routes.py
Post-Installation Steps (Referral Plugin)
- Add
referral_code field to User model - Update
app/apis/v1.py to include referral routes - Update
app/core/alembic_models_import.py - Run migrations:
alembic revision --autogenerate && alembic upgrade head
startmodule - Create Custom Module
Creates a new module with complete folder structure.
fcube startmodule <module_name> [OPTIONS]
Arguments
| Argument | Required | Description |
module_name | Yes | Name of the module (e.g., products) |
Options
| Option | Default | Description |
--dir, -d | app | App directory |
--admin/--no-admin | yes | Include admin routes |
--public/--no-public | yes | Include public routes |
--force, -f | no | Overwrite existing |
Examples
# Basic usage
fcube startmodule product
# Without admin routes
fcube startmodule review --no-admin
# Without public routes
fcube startmodule internal_report --no-public
# Force overwrite
fcube startmodule product --force
Generated Structure
app/product/
├── __init__.py
├── dependencies.py
├── exceptions.py
├── permissions.py
├── tasks.py
├── README.md
├── models/
│ ├── __init__.py
│ └── product.py
├── schemas/
│ ├── __init__.py
│ └── product_schemas.py
├── crud/
│ ├── __init__.py
│ └── product_crud.py
├── services/
│ ├── __init__.py
│ └── product_service.py
├── routes/
│ ├── __init__.py
│ ├── public/
│ │ ├── __init__.py
│ │ └── product.py
│ └── admin/
│ ├── __init__.py
│ └── product_management.py
├── utils/
│ └── __init__.py
└── integrations/
└── __init__.py
addentity - Add Entity to Module
Adds a new entity to an existing module.
fcube addentity <module_name> <entity_name> [OPTIONS]
Arguments
| Argument | Required | Description |
module_name | Yes | Name of the existing module |
entity_name | Yes | Name of the entity to add |
Options
| Option | Default | Description |
--force, -f | no | Overwrite existing |
Examples
fcube addentity service_provider availability
fcube addentity booking payment --force
Creates model, schema, and CRUD files for a new entity within an existing module.
listmodules - List All Modules
Shows all existing modules with their structure.
fcube listmodules [OPTIONS]
Options
| Option | Default | Description |
--dir, -d | app | App directory |
Examples
fcube listmodules
fcube listmodules --dir app
version - Show CLI Version
Shows the current FCube CLI version.
Examples
fcube version
# FCube CLI v1.0.0
Common Workflows
New Project Setup
# Create project
fcube startproject MyApp
cd MyApp
# Add user module with email authentication
fcube adduser --auth-type email
# Add modules
fcube startmodule products
fcube startmodule orders
fcube startmodule customers
# Add referral plugin
fcube addplugin referral
# Set up environment
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Configure database
cp .env.example .env
# Edit .env with your settings
# Run Docker services
docker compose up -d
# Run migrations
docker compose exec app alembic upgrade head
# Start server (already running with Docker)
Adding Features to Existing Project
# Navigate to project
cd MyApp
# Add new module
fcube startmodule reviews
# Add referral system
fcube addplugin referral
# Run new migrations
docker compose exec app alembic revision --autogenerate -m "add reviews and referral"
docker compose exec app alembic upgrade head
Preparing for Deployment
# Add deployment plugin
fcube addplugin deploy_vps
# Configure deployment
cd deploy-vps
./scripts/setup.sh
# Deploy
./scripts/deploy.sh init