Data and AI releases

548 this month · 176 companies

Modal 1.2.6

UpdateNot yet verified

- Fixed bug where iterating on a modal.Sandbox.exec output stream could raise unauthenticated errors.

Streaming

Read on modal.com

Also shipped Dec 16, 2025Modal in December 2025 →

AI Gateway now Generally Available

AI Gateway is now generally available (GA) for all Netlify users. Build AI-powered apps with confidence using our fully managed gateway that handles AI model keys, setup, and monitoring automatically. For a deeper dive into AI Gateway capabilities, check out our latest blog post.

GA
Source ↗

New Prerender extension

The Prerender extension is now generally available (GA) for all Netlify users. The legacy prerendering feature is now deprecated with limited support. Once set up, this extension automatically serves pre-rendered HTML to crawlers, agents, and preview services, while regular site visitors continue to receive your standard JavaScript application.

GA
Source ↗

More from ModalEvery Modal release →

Modal 1.3.0

Modal now supports Python 3.14. Python 3.14t (the free-threading build) support is currently a work in progress, because we are waiting for dependencies to be updated with free-threaded support. Additionally, Modal no longer supports Python 3.9, which has reached end-of-life.

Update
Source ↗

Modal 1.2.5

- It is now possible to set a custom name= for a Function without using serialized=True. This can be useful when decorating a function multiple times, e.g. applying multiple Modal configurations to the same implementation. It is now possible to start modal shell with a Modal Image ID (modal shell im-abc123).

Update
Source ↗

Modal 1.2.4

- Fixed a bug in modal.Sandbox.exec when using stderr=StreamType.STDOUT (introduced in v1.2.3). Added a new h2_enabled option in modal.forward, which enables HTTP/2 advertisement in TLS establishment.

Update
Source ↗

Modal 1.2.3

- CPU Functions can now be configured to run on non-preemptible capacity by setting nonpreemptible=True in the @app.function() or @app.cls() decorator. This feature is not currently available when requesting a GPU. Note that non-preemptibility incurs a 3x multiplier on CPU and memory pricing. See the Guide for more information on preemptions.

Update
Source ↗

Modal 1.2.2

- modal.Image.run_commands now supports modal.Volume mounts. This can be helpful for accelerating builds by keeping a package manager cache on the Volume: python cache_vol = modal.Volume.from_name("cache-mount") cmd_using_cache = "..." image = modal.Image.debian_slim().run_commands(cmd_using_cache, volumes={"/cache": cache_vol}) All Modal objects now accept...

Update
Source ↗

Modal 1.3.1

- We've improved our experimental support for Python 3.14t (free-threaded Python) inside Modal containers. The container environment will now use the Python implementation of the Protobuf runtime rather than the incompatible upb implementation.

Update
Source ↗

Modal 1.3.2

- Modal objects now have a .get_dashboard_url() method. This method will return a URL for viewing that object on the Modal dashboard: python fc = f.spawn() print(fc.get_dashboard_url()) # Easy access to logs, etc.

Update
Source ↗

Modal 1.2.1

- It's now possible to override the default -dev suffix applied to the autogenerated URLs for ephemeral Apps (i.e., when using modal serve) via a new dev_suffix field in the .modal.toml config file, or equivalently with the MODAL_DEV_SUFFIX environment variable.

Update
Source ↗