Language

Run Python scripts online, with no server to keep

Write def main, press Run and Waiso runs it on CPython 3.15 in an isolated sandbox. The same script then runs on a schedule, behind an HTTP endpoint or as a step of a flow.

Parameters become inputs

Each parameter of main is an input, typed by its annotation: str, int, float, bool, lists, dicts, Literal. The value main returns is the JSON result, and anything printed goes to the logs.

Learn more →
order_total.py
def main(prices: list[float], tax_rate: float = 0.1, currency: str = "USD"):
    subtotal = sum(prices)
    total = round(subtotal * (1 + tax_rate), 2)
    print(f"{len(prices)} items, total {total} {currency}")
    return {"subtotal": subtotal, "total": total, "currency": currency}

PyPI packages from your imports

Waiso reads your imports with Python’s own parser and installs the matching PyPI packages, cached for the next run. Publishing freezes the exact versions, so schedules and the API run what you tested.

Learn more →

Schedule it, call it, chain it

Publish the script and give it a schedule, turn on its HTTP endpoint with a token, or drop it into a flow as a step. Every trigger runs the latest published version.

Learn more →

Questions

Which Python version runs my script?

CPython 3.15, with 3.14 beside it. A script follows the latest version unless you pin the previous one in the editor.

Can main be async?

Keep main synchronous: it is called as a normal function. Call asyncio.run(...) inside it when you need async code.

Can my script call a website?

No. Scripts run with no network access. Data comes in through inputs, integrations and variables, and a flow’s HTTP Request step makes outside calls.

Related

Get started today

Ready to ship some scripts?

Create an account in seconds — no installers, nothing to set up.
Start building, testing and running your scripts right away.

  • Free to start
  • Self-host or cloud
  • Production ready