Modal 1.4.1
- We're introducing a concept of "readiness probes" for modal.Sandbox. This feature lets you configure a readiness check on a TCP port (modal.Probe.with_tcp()) or by executing a process (modal.Probe.with_exec()).
Also shipped Mar 30, 2026Modal in March 2026 →
AI Image Tools now in FigJam, Slides, & Buzz
AI image tools like Expand, Erase, and Isolate are now in FigJam, Slides, and Buzz (beta), with Vectorize available in Slides and Buzz.
Updated visualization suggestions now generally available
In January 2026, we announced improvements to visualization suggestions in public preview. These changes included higher quality suggestions leveraging information provided by data sources, as well as minor user interface updates. These improvements are now generally available.
Edit guide and survey positions without leaving Preview mode
What it is: The Guide Preview now includes an Edit button. Click it to adjust form factor options like position and layout, then save to see changes reflected in both the Preview and the Dashboard right away.
Streaming: Server-Sent Events (SSE) Streaming responses for Chat Completions (/v1/chat/completions) and...
Streaming: Server-Sent Events (SSE) Streaming responses for Chat Completions (/v1/chat/completions) and Completions (/v1/completions) now emit a standard data: [DONE] SSE event at the end of the stream, following the SSE standard (see the living specification). The [DONE] marker is guaranteed to appear exactly once and is always the last event in the stream.
WAF Release - 2026-03-30
This week's release introduces new detections for a critical authentication bypass vulnerability in Fortinet products (CVE-2025-59718), alongside three new generic detection rules designed to identify and block HTTP Parameter Pollution attempts.
More from ModalEvery Modal release →
Modal 1.4.0
We've made significant CLI enhancements so that Modal logs can be more accessible to coding agents: The modal app logs and modal container logs commands now have the ability to fetch historical logs using counting (e.g. --tail 1000) or time-based (e.g., --since 4h, --until 2026-03-15, etc.) configuration.
Modal 1.4.2
- We've added a new modal app rollover CLI command for triggering a redeployment of an App without making any code or configuration changes. A rollover replaces existing containers with fresh ones.
Modal 1.3.5
- We've added a modal changelog CLI for retrieving changelog entries with a flexible query interface (e.g. modal changelog --since=1.2, modal changelog --since=2025-12-01, modal changelog --newer). We expect that this will be a useful way to surface information about new features to coding agents.
Modal 1.3.4
- We're introducing "Directory Snapshots": a new beta feature for persisting specific directories past the lifetime of an individual Sandbox. Using the new methods modal.Sandbox.snapshot_directory() and modal.Sandbox.mount_image(), you can capture the state of a directory and then later include it in a different Sandbox: python notest sb =...
Modal 1.3.3
- We've added a new modal billing report CLI and promoted the modal.billing.workspace_billing_report API to General Availability for all Team and Enterprise plan workspaces. We've added modal.Queue.from_id() and modal.Dict.from_id() methods to support referencing a Queue or Dict by its object id. Modal's async usage warnings are now enabled by default.
Modal 1.4.3
- This release introduces a new "regional routing" concept for Function inputs, which is now in Public Beta. By setting routing_region="..." in the @app.function() or @app.cls() decorators, you can configure the Function to route its inputs through servers in us-west, eu-west, or ap-south instead of us-east.
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.
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.