Contents

victorhenrion/agents.swift

Swift client for [Cloudflare Agents](https://github.com/cloudflare/agents) with [Vercel AI SDK](https://github.com/vercel/ai)-compatible chat messages and streaming over WebSockets.

Quickstart

Requirements

  • Swift 5.9+
  • Platforms: iOS 17+, macOS 14+, tvOS 17+, watchOS 10+, visionOS 1+

Installation

Add via Swift Package Manager:

// In Package.swift dependencies
.package(url: "https://github.com/victorhenrion/Agents.swift.git", from: "0.1.0")

Then add the product to your target dependencies:

.product(name: "Agents", package: "Agents.swift")

Example

import Foundation
import Agents

struct AppState: Codable {
    let userId: String
}

@MainActor
func helloWorld() async {
    let baseURL = URL(string: "https://your-domain.example.com")!

    // Optional headers (e.g. Authorization)
    let options = AgentClientOptions<AppState>(
        onClientStateUpdate: { state in
            print("Client state set:", state)
        },
        onServerStateUpdate: { state in
            print("Server state:", state)
        },
        onMcpUpdate: { mcp in
            print("MCP servers:", mcp)
        },
        headers: [
            "Authorization": "Bearer <token>"
        ]
    )

    let client = await AgentClient<AppState>(
        baseURL: baseURL,
        agentNamespace: "MyAgent",  // will be converted to "my-agent" in the URL path
        instanceName: "default",
        options: options
    )

    // Set initial state (optional)
    client.setState(AppState(userId: "123"))

    // Send a user message
    do {
        let parts: [ChatMessage.Part] = [.text(.init(text: content))]
        let response = try await client.sendMessage(.init(parts))
        print("Response:", response)
    } catch {
        print("Error:", error)
    }
}

SwiftUI

AgentClient is @Observable, so it integrates with SwiftUI’s Observation system. You can observe client.messages for live updates as the stream arrives.

Project status

This is work in progress, use at your own risk!\ Contributions are most welcome—expect future updates.

Package Metadata

Repository: victorhenrion/agents.swift

Default branch: main

README: README.md