{"id":981,"library":"fastapi-cloud-cli","title":"FastAPI Cloud CLI","description":"fastapi-cloud-cli is a command-line interface tool for deploying and managing FastAPI applications on FastAPI Cloud. It provides commands for logging in, deploying, managing environment variables, and streaming logs. The library is actively maintained, with frequent releases, and is currently at version 0.15.1.","status":"active","version":"0.15.1","language":"python","source_language":"en","source_url":"https://github.com/fastapilabs/fastapi-cloud-cli","tags":["cli","deployment","fastapi","cloud"],"install":[{"cmd":"pip install fastapi-cloud-cli","lang":"bash","label":"Direct installation"},{"cmd":"pip install \"fastapi[standard]\"","lang":"bash","label":"As part of FastAPI's standard dependencies"}],"dependencies":[{"reason":"Requires Python 3.10 or higher.","package":"python","optional":false},{"reason":"Often installed as a dependency of fastapi[standard], providing direct integration for FastAPI Cloud deployments.","package":"fastapi","optional":true}],"imports":[{"note":"The `fastapi` command provides subcommands like `fastapi cloud deploy`, `fastapi cloud login`, etc.","symbol":"fastapi cloud","correct":"This is primarily a CLI tool and not typically imported directly into Python code. Usage is via the `fastapi` command on the command line."}],"quickstart":{"code":"# 1. Create a new FastAPI project (requires uv or pip)\n# Using uv (recommended):\n# uv init myapp\n# cd myapp\n# uv add \"fastapi[standard]\"\n\n# Using pip:\nmkdir myapp\ncd myapp\npip install \"fastapi[standard]\"\n\n# 2. Create a basic FastAPI application (main.py)\n# (Content of main.py)\n# from fastapi import FastAPI\n# app = FastAPI()\n# @app.get(\"/\")\n# def read_root():\n#     return {\"message\": \"Hello, FastAPI Cloud!\"}\n\n# 3. Log in to FastAPI Cloud (if not already logged in)\n# This will open a browser for authentication.\n# fastapi login\n\n# 4. Deploy your application\n# The CLI will detect your app, and for the first deployment,\n# it will prompt to select/create a team and app.\n# Ensure FASTAPI_CLOUD_TOKEN is set for CI/CD or non-interactive use.\n# For example: export FASTAPI_CLOUD_TOKEN=os.environ.get('FASTAPI_CLOUD_TOKEN', '')\nfastapi deploy","lang":"bash","description":"This quickstart demonstrates how to initialize a FastAPI project, create a simple FastAPI application, log in to FastAPI Cloud, and deploy the application using the `fastapi` CLI. The `fastapi[standard]` installation includes `fastapi-cloud-cli`."},"warnings":[{"fix":"Upgrade Python environment to 3.10 or higher.","message":"Version 0.13.0 dropped official support for Python 3.9. Users on Python 3.9 must upgrade their Python version to 3.10 or newer.","severity":"breaking","affected_versions":"0.13.0 and later"},{"fix":"If FastAPI Cloud deployment features are not explicitly needed, install FastAPI using `pip install \"fastapi[standard-no-fastapi-cloud-cli]\"` to avoid including `fastapi-cloud-cli`.","message":"When `fastapi-cloud-cli` is installed as part of `fastapi[standard]`, it may attempt to create configuration files in privileged root paths (e.g., `/.config`). This can cause deployment failures in restricted environments like some Kubernetes setups.","severity":"gotcha","affected_versions":"All versions bundled with `fastapi[standard]`"},{"fix":"Pin your Python version to one known to have pre-built wheels available for all your project's dependencies. Consult your dependency documentation for compatible Python versions.","message":"Deployment might fail with 'Build Failed When Installing Dependencies' if required packages do not have pre-built wheels for your specific Python version. This is common when using a very new or less common Python version.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Ensure that the directory where `pip` installs executables (often in a virtual environment's `Scripts` directory) is added to your system's PATH environment variable. Alternatively, invoke it using `python -m fastapi_cloud_cli` if direct `fastapi` alias isn't resolving.","message":"On Windows, the `fastapi` command might not be found in the PATH after installation, leading to 'command not found' errors.","severity":"gotcha","affected_versions":"All versions on Windows"}],"env_vars":null,"last_verified":"2026-05-12T22:07:00.404Z","next_check":"2026-06-27T00:00:00.000Z","problems":[{"fix":"Install the CLI tool using `pip install fastapi-cloud-cli` or `pip install \"fastapi[standard]\"` (which includes it as a dependency), and ensure your Python virtual environment is activated before running `fastapi` commands.","cause":"The `fastapi-cloud-cli` package is not installed, or the virtual environment where it is installed is not activated, leading the shell to not find the `fastapi` executable.","error":"fastapi command not found"},{"fix":"Pin your Python version in your project's configuration (e.g., `pyproject.toml` or `runtime.txt`) to one for which all your dependencies have pre-built wheels available.","cause":"During deployment, some of your application's dependencies do not have pre-built wheels available for the specific Python version configured, causing the build process to fail.","error":"Build Failed When Installing Dependencies"},{"fix":"Verify you are logged in with the correct account using `fastapi login`. If the app was deleted, run `fastapi unlink` to remove the local configuration and then `fastapi deploy` to create a new application.","cause":"This error during `fastapi deploy` typically means you are logged into FastAPI Cloud with an account different from the one that created the application, or the application was previously deleted from your dashboard.","error":"Error: App not found"},{"fix":"If using WSL, ensure your application's source code is located within the Linux filesystem (e.g., `/home/yourusername/`) rather than a mounted Windows directory (e.g., `/mnt/c/`). In other containerized setups, review container permissions or explore configuration options to specify an alternative writable location for `fastapi-cloud-cli` configuration files.","cause":"When running in containerized environments (like Kubernetes or WSL with Windows mounts), `fastapi-cloud-cli` attempts to write configuration files to a root path (`/.config`) that is often privileged and non-writable, leading to deployment failures.","error":"The fastapi-cloud-cli tries to create a /.config file automatically on invocation of fastapi. Given that root path is privileged, caused our app to start failing deployments."}],"ecosystem":"pypi","meta_description":null,"install_score":0,"install_tag":"stale","quickstart_score":null,"quickstart_tag":null,"pypi_latest":"0.17.1","cli_name":"fastapi-cloud","install_checks":{"last_tested":"2026-05-12","tag":"stale","tag_description":"widespread failures or data too old to trust","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"80.4M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"standard","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"75.5M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":9.2,"import_time_s":null,"mem_mb":null,"disk_size":"83M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"standard","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":8,"import_time_s":null,"mem_mb":null,"disk_size":"78M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"88.2M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"standard","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"82.5M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":8.3,"import_time_s":null,"mem_mb":null,"disk_size":"91M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"standard","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":7.3,"import_time_s":null,"mem_mb":null,"disk_size":"85M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"80.9M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"standard","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"75.4M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":6.9,"import_time_s":null,"mem_mb":null,"disk_size":"85M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"standard","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":6.3,"import_time_s":null,"mem_mb":null,"disk_size":"79M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"80.5M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"standard","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"75.1M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":6.9,"import_time_s":null,"mem_mb":null,"disk_size":"84M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"standard","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":6.2,"import_time_s":null,"mem_mb":null,"disk_size":"79M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"78.9M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"standard","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"74.1M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"standard","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":10.7,"import_time_s":null,"mem_mb":null,"disk_size":"82M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"standard","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":9.3,"import_time_s":null,"mem_mb":null,"disk_size":"77M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null}]},"quickstart_checks":{"last_tested":"2026-04-24","tag":null,"tag_description":null,"results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":1},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":1},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]}}