0.7.0-preview.1.7 Now available ↗

Python, inside
your Swift app.

Use Python libraries in your Swift app.
Run models, stream results, and share data with Metal.

macOS 15+ · Swift 6 · Python included

Python on iOS

Four Python processes.
One native iPad app.

Native CPython and NumPy compute every frame. SwiftUI displays the result. See the recording and the code that drives it.

Watch the demo and read the code →
iPadOS 26.5 simulator · 13 seconds · Recorded at normal speed. Four Python processes compute the animated fractal; the app displays their process IDs and frame timing.

Built for applications

Load models. Stream results.
Keep working.

01

Keep the model loaded.

Retain models and datasets in a Python worker. Ask for another prediction without starting over.

Persistent objects →
02

Keep the interface moving.

Run heavy work in separate processes. Stream results back into Swift as Python produces them.

Worker pools →

Start small

Your first call
is a few lines.

Import the runtime. Run Python in its executor. Return a Swift value. Move heavier work to a pool when your app needs it.

Read the getting-started guide →
Swift
import SwiftPythonRuntime

let result: Double = try await Python.run {
    let math = try Python.import("math")
    return try Double(pythonObject: try math.sqrt(144.0))
}
print(result) // 12.0

Made with SwiftPython

Python work. Native apps.

Visit the showcase →
The Sirius window: a conversation on the left, and the Diffs panel on the right showing the files that would be committed and the lines the agent added
Sirius / macOS agent

An agent that works in your folder.

Sirius reads the files, runs the commands and shows you every change as a diff — before anything is committed.

See how Sirius works →
SiriusMsg Activity list showing reply outcomes recorded as confirmed, unconfirmed and rejected, with a filter for the events that need attention
SiriusMsg / Messages + agents

Your agent answers the conversations you share.

SiriusMsg keeps every other chat out of reach, and every reply reports what it could prove.

See how SiriusMsg works →