Early Access Available

Build with SpatioSDK

A comprehensive Swift package for building API-based capabilities that integrate with Spatio and Spatio AI. Create command-line tools, manage authentication hierarchies, and build capabilities with built-in mock data support.

Key Features

Everything you need to build AI capabilities

Command-Line First

Build executable capabilities with swift-sh support and automatic parameter parsing

Hierarchical Auth

Organization → Group → Capability authentication with environment variable integration

Multiple Storage

Local SQLite, Spatio AI format, or remote capabilities-store repository

Use Cases

What developers are building

Explore how teams leverage SpatioSDK to create transformative experiences

API Integration Tools

Build command-line capabilities that integrate with any REST API. Automatic parameter parsing, authentication handling, and mock data support.

Spatio AI Integration

Create capabilities compatible with Spatio AI's ecosystem. Programmatically generate organizations, groups, and capabilities with full metadata support.

Mock Data Testing

Develop and test capabilities without API access. Built-in mock data provider system with automatic response generation.

SDK Components

Enterprise-ready development tools

A comprehensive Swift package with authentication management, capability generation, and multi-format persistence

BaseRemoteCapability

Abstract base class for creating remote API capabilities. Handles authentication, parameter validation, and mock data automatically.

CapabilityGenerator

Programmatically create organizations and capabilities. Supports local storage, Spatio AI format, and remote repository modes.

AuthManager

Hierarchical authentication system with organization, group, and capability-level auth. Environment variable integration included.

Multi-Format Storage

Store capabilities in local SQLite, Spatio AI's native format, or capabilities-store repository. Full compatibility across all formats.

Command Line Tools

Build executable scripts with swift-sh. Automatic parameter parsing, result formatting, and error handling for CLI capabilities.

SwiftUI Integration

Native SwiftUI components for building capability management interfaces and apps with full SDK integration.

Live Examples

From idea to production

Real implementations developers are shipping. Copy, customize, and deploy in minutes.

#!/usr/bin/env swift sh
import SpatioSDK // @spatio-labs ~> 1.0.0
import Foundation

// Configure authentication for your organization
func configureAuth() {
    let authConfig = AuthConfig(
        type: .apiKey,
        parameterName: "X-API-Key",
        location: .header,
        envVariable: "WEATHER_API_KEY"
    )
    AuthManager.shared.setAuthConfig(for: "weather-org", config: authConfig)
}

// Create a capability by extending BaseRemoteCapability
class WeatherCapability: BaseRemoteCapability {
    override func configureRequest() -> APIRequest {
        return APIRequest(
            baseURL: "https://api.openweathermap.org",
            endpoint: "/data/2.5/weather",
            method: "GET",
            parameters: [
                APIParameter(
                    name: "q",
                    type: "string",
                    required: true,
                    location: .query,
                    description: "City name or coordinates"
                )
            ]
        )
    }
    
    // Optional: Provide mock data for testing
    override func provideMockData(for params: [String: String]) -> String {
        return """
        {
            "weather": [{"main": "Clear", "description": "clear sky"}],
            "main": {"temp": 22.5, "humidity": 65},
            "name": "\(params["q"] ?? "Unknown")"
        }
        """
    }
}

// Main execution
@main
struct WeatherCapabilityScript {
    static func main() async throws {
        configureAuth()
        
        let capability = WeatherCapability(
            organization: "weather-org",
            capability: "weather-lookup"
        )
        
        // Parse command line arguments
        let params = CommandLineUtils.parseArguments(for: capability.request.parameters)
        
        // Execute capability
        let result = try await capability.execute(params: params)
        
        // Output result
        CommandLineUtils.printResult(result)
    }
}

Ready to get started?

Join thousands of professionals who trust our products to enhance their productivity.