| name | fal-runner |
| description | Verify fal app behavior end to end: deploy aliases, test public websocket endpoints, and inspect live runners. Use when working with `fal deploy`, `fal run`, `fal runners exec`, or websocket readiness. |
Fal Runner
Quick Start
Use this skill when you need to:
- verify that a fal app is reachable from its public URL
- confirm a websocket endpoint returns the expected initial message
- inspect the live runner process tree and filesystem
Default assumptions from this repo:
uv run fal ... is the correct invocation
- realtime health is best checked through the public websocket, not just container logs
- runner behavior must be verified from both the public endpoint and the live runner
Standard Workflow
- Confirm the public endpoint behavior first.
- Inspect the active runner IDs for the deployed alias.
- Exec into the live runner and inspect:
- process list
/app/src/... files
__pycache__
- relevant temp directories
- environment variables
- If testing temporary deploys, clearly mark them with a name that identifies the user and model (e.g.
<user>-<model>) and clean them up afterward.
Public Verification
Check alias runners:
uv run fal apps runners <alias> --env main --json
Check public websocket readiness:
uv run python - <<'PY'
import asyncio, websockets
URL = "wss://fal.run/<team>/<alias>/ws"
async def main():
async with websockets.connect(URL) as ws:
(await asyncio.wait_for(ws.recv(), =20))
asyncio.run(main())
PY