Features

Everything you need to ship on-device AI.

Apple's on-device model is private, fast and free to call, but it knows nothing about your app. Vicaya Studio gives it instructions, your content and your functions, and lets you check the results before a single line reaches your app.

Agents

Typed answers, not loose text.

An agent is a set of instructions and the shape of the answer you want back. Vicaya turns that shape into a @Generable Swift type, so the model has to answer in a form your code can use.

  • Outputs can be text, a choice from a list, or an object with nested objects and arrays.
  • Insert flow context fields into instructions with one click.
  • Import existing @Generable types from your project.
  • Run an agent on its own to check its output before you put it in a flow.
  • See which flows use an agent before you change it.
The agent builder with instructions and a structured output type
Agent builderscreenshots/agent-builder.png
Knowledge

Let agents answer from your own content.

The on-device model can read about 8,000 tokens at a time, so it can't take in your whole manual. A RAG index finds the few passages that matter for each question and passes only those to the model.

  • Add Markdown, plain text and PDF files, whole folders, or pasted text.
  • Choose how documents are split and how big each piece is.
  • Search by keyword, by meaning, or with both combined.
  • Optional enrichment makes passages easier to find.
  • Inspect every chunk, and try questions in the playground to see what was found.
  • Keep several indexes in one project and attach them to different agents.
The RAG builder showing sources and built chunks
RAG builderscreenshots/rag-builder.png
Tools

Give the model functions to call.

Describe a tool's name, purpose, arguments and result, and attach it to the agents that need it. A mock JSON response lets you test the whole flow before the real function exists.

  • Arguments and results use the same typed editor as agent outputs.
  • The mock response is checked as you type.
The tool editor with arguments and a mock JSON response
Tool editorscreenshots/tool-editor.png
Flows

Connect the pieces on a canvas.

A flow starts from your app's input, passes through agents and branches, and ends in one of several typed results. A router agent's choices each get their own port, so routing is a matter of drawing a line.

  • Branch on equals, contains, is empty, greater than or less than.
  • Flow context holds shared values, such as recent conversation turns.
  • A maximum hop count stops runaway loops.
  • Unreachable nodes, open ports and type mismatches are listed before you run.
A flow on the canvas with a router, two agents and a branch
Flow canvasscreenshots/flow-canvas.png
Run & trace

Watch each step on the real model.

Enter a test input and press Run. Vicaya generates the Swift code, compiles it and runs it against Apple's model on your Mac. A prompt change is ready to run again in about a second and a half.

  • The trace shows every agent call, branch decision and retrieval, with timings.
  • Click a trace row or an issue to jump to that node.
  • The console shows the raw output when you need to dig deeper.
The debug area showing a run's trace
Run tracescreenshots/run-trace.png
Export

A Swift package you own.

Export writes the same code that ran in the studio into a Swift package. Add it to your app in Xcode and call your flow like any other async function. No extra dependency, and nothing to host.

  • Works in apps for iOS, iPadOS, macOS and visionOS 26 and later.
  • Prompts live in a resource file, so wording changes don't touch your Swift code.
  • Typed errors for when the model is unavailable or the context is too long.
The export screen
Exportscreenshots/export.png

Everything stays on the device.

Indexing, search and the model run on your Mac while you build, and on your users' devices after you ship. Nothing is sent to a server.

Download for Mac