most coding agents assume you're at a desktop. studio is a swift studio for iphone and ipad, so the agent had to live inside the same workspace as the editor and the running preview rather than in a separate app.

connecting a model

there are three ways to give studio a model, and they all lead to the same chat interface.

a subscription. sign in with a claude pro or max account on the device. there are no keys to copy and no server in between; the device authenticates with anthropic directly.

an api key. add a key for anthropic, openai, or openrouter. keys are stored in the ios keychain and are only sent to the provider they belong to.

a mac. pair studio with a mac running claude code or codex over sable bridge. this is the option for when you want the agent to have a full desktop toolchain behind it.

what the agent does

the agent works in four modes: generate new code from a description, explain existing code, fix something that's broken, and improve code that works but could be better. you can also attach a photo to a message, so a sketch or a screenshot can be the starting point for a screen.

how code gets applied

responses stream in as the model writes them. prose shows up as text. when the response reaches a code block, studio collects the code instead of printing it, and multi-file responses use file markers so each block goes to the right file. when the stream finishes, the code is applied to the project and the wren runtime picks it up, so the preview updates.

each applied change can be undone per message. if a later suggestion broke something an earlier one built, you can step back through the changes one at a time. the generated code is ordinary project source throughout, so you can also just edit it yourself.

context

a model writing swiftui with no context writes generic swiftui. studio projects can carry design systems: color, typography, and spacing tokens, written guidelines, and moodboards. when a project has one attached, the agent receives it with every request, and generated screens come back using the project's colors and type instead of defaults.

the runtime helps from the other side. wren supports a specific set of views and modifiers, so the agent is writing against a known target. that's a big part of why generated code in studio usually runs on the first attempt, and why it's straightforward to fix when it doesn't.

there's no special format anywhere in this. the agent reads and writes ordinary swift, wren runs it, and the project stores it.