pyproject.toml to define one or more fal apps in a project. Each entry in [tool.fal.apps] gives an app a stable local name that you can pass to fal run or fal deploy instead of repeating a file path and class reference.
pyproject.toml.
fal deploy respects auth from pyproject.toml. fal run currently defaults to public auth and only changes auth mode when you pass --auth.Package Entry Points
Usepython_entry_point when your fal app is importable as a Python package and you want fal to load it by module path:
python_entry_point must use <module>:<symbol> format. It is mutually exclusive with ref. Runtime and deployment settings for entry-point apps are read from pyproject.toml, not from class attributes or function decorator options in the imported package.
For packaging requirements, monorepo examples, and custom-container usage, see Package Entry Points.
Multiple Apps
Define multiple apps in the same project by using app-specific tables:App Fields
Health Check
Container Image
Use the[tool.fal.apps.<app-name>.image] section to configure a container from pyproject.toml. Build from a Dockerfile:
Set either
dockerfile or image under [tool.fal.apps.<app-name>.image].
Use registries when the Dockerfile pulls a private base image or when image references a private image.
Container apps can use ref, python_entry_point, or neither. If both ref and python_entry_point are omitted, fal treats the container as an image-only app and does not use the fal Python app loader.
When a container app uses python_entry_point, make sure the Dockerfile or existing image installs the package that contains the referenced module.