Compose Multiplatform 1.12.0 ships three main additions: an experimental MCP server built into Compose Hot Reload that lets AI coding agents trigger reloads, take screenshots, inspect the semantic tree, simulate input, and read logs to verify their own edits; automatic font fallback for web that downloads Noto font subsets on demand to correctly render Japanese, Arabic, Devanagari, and emoji without bundling fonts; and an experimental v2 API for WindowState and DialogState on desktop offering finer control over window positioning, sizing, and multi-screen placement, plus explicit handling of asynchronous state changes.
Table of contents
MCP server for AI agents in Compose Hot ReloadAutomatic font fallback for webWindow and dialog v2Questions this post answers
What does the new MCP server in Compose Hot Reload let an AI coding agent do?
It lets an AI agent connect to a running Compose Multiplatform application to trigger hot reloads, take screenshots, inspect the semantic tree, simulate clicks and text input, and read application logs. This allows the agent to verify its own edits, confirm a reload succeeded, inspect the rendered UI, and catch runtime exceptions without a developer describing what is on screen. It ships as an experimental feature in Compose Multiplatform 1.12.0. Developers wiring AI agents into their UI workflow follow tooling changes like this one on daily.dev.
How does Compose Multiplatform for web handle fonts for languages like Japanese or Arabic without bundling them?
As of Compose Multiplatform 1.12.0, the web target automatically downloads the matching Noto font subset on demand when it hits a character not covered by the app's fonts, then recomposes the affected text. This makes Japanese, Arabic, Devanagari, and emoji render correctly without developers needing to bundle those fonts themselves. Teams shipping internationalized web UIs track font and rendering fixes like this on daily.dev.
What can I do with the new v2 WindowState and DialogState API in Compose Multiplatform desktop?
The experimental v2 API in the androidx.compose.ui.window.v2 package, introduced in Compose Multiplatform 1.12.0, gives finer control over desktop windows: choosing which screen a window appears on, custom positioning and sizing logic based on content's intrinsic size, minimum and maximum window sizes, and positioning dialogs relative to their parent window. It also makes asynchronous window state changes explicit by separating requested state from current state. Desktop Kotlin developers refining window behavior can keep up with API changes like this via daily.dev.