AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Deep Linking

skill-rshankras-claude-code-apple-skills-deep-linking · by rshankras

Generate deep linking infrastructure with URL schemes, Universal Links, and App Intents for Siri/Shortcuts. Use when handling custom URL schemes, Universal Links/Associated Domains, or routing to specific content from external sources.

No reviews yet
0 installs
6 views
0.0% view→install

Install

$ agentstack add skill-rshankras-claude-code-apple-skills-deep-linking

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-rshankras-claude-code-apple-skills-deep-linking)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Deep Linking? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Deep Linking Generator

Generate deep linking infrastructure with URL schemes, Universal Links, and App Intents for Siri/Shortcuts.

When This Skill Activates

  • User wants to handle custom URL schemes (myapp://)
  • User mentions Universal Links or Associated Domains
  • User wants Siri Shortcuts or App Intents
  • User needs to navigate to specific content from external sources

Pre-Generation Checks

Before generating, verify:

  1. Existing Deep Link Handling

``bash # Check for existing URL handling grep -r "onOpenURL\|open.*url\|handleOpen" --include="*.swift" | head -5 ``

  1. URL Scheme in Info.plist

``bash # Check for CFBundleURLTypes find . -name "Info.plist" -exec grep -l "CFBundleURLSchemes" {} \; ``

  1. Associated Domains Entitlement

``bash find . -name "*.entitlements" -exec grep -l "associated-domains" {} \; ``

Configuration Questions

1. URL Scheme

  • What custom URL scheme? (e.g., myapp)
  • This enables myapp://path/to/content links

2. Universal Links

  • Yes - Handle HTTPS links (requires AASA file on server)
  • No - Custom URL scheme only

3. App Intents / Siri Shortcuts

  • Yes - Enable voice commands and Shortcuts app
  • No - URL-based deep linking only

4. Link Types

  • Profile: /users/{id}
  • Content: /items/{id}
  • Actions: /actions/share, /actions/create
  • Custom routes based on app needs

Generated Files

Core Infrastructure

Sources/DeepLinking/
├── DeepLinkRouter.swift       # Central router
├── DeepLink.swift             # Route definitions
└── UniversalLinkHandler.swift # Universal link processing

App Intents (Optional)

Sources/AppIntents/
├── OpenContentIntent.swift    # Open specific content
├── AppShortcuts.swift         # Shortcuts provider
└── ContentEntity.swift        # Entities for Spotlight/Siri

Server Files (Universal Links)

.well-known/
└── apple-app-site-association  # AASA file template

Key Features

Route Definitions

enum DeepLink: Equatable {
    case home
    case profile(userId: String)
    case item(itemId: String)
    case settings
    case action(ActionType)

    enum ActionType {
        case share(itemId: String)
        case create
    }
}

URL Parsing

extension DeepLink {
    init?(url: URL) {
        guard let components = URLComponents(url: url, resolvingAgainstBaseURL: true) else {
            return nil
        }

        let pathComponents = components.path.split(separator: "/").map(String.init)

        switch pathComponents {
        case ["users", let userId]:
            self = .profile(userId: userId)
        case ["items", let itemId]:
            self = .item(itemId: itemId)
        case ["settings"]:
            self = .settings
        default:
            self = .home
        }
    }
}

SwiftUI Integration

@main
struct MyApp: App {
    @State private var router = DeepLinkRouter()

    var body: some Scene {
        WindowGroup {
            ContentView()
                .environment(router)
                .onOpenURL { url in
                    router.handle(url)
                }
        }
    }
}

App Intents Integration

OpenIntent for Navigation

struct OpenItemIntent: OpenIntent {
    static let title: LocalizedStringResource = "Open Item"

    @Parameter(title: "Item")
    var target: ItemEntity

    func perform() async throws -> some IntentResult {
        await router.navigate(to: .item(itemId: target.id))
        return .result()
    }
}

App Shortcuts

struct AppShortcuts: AppShortcutsProvider {
    static var appShortcuts: [AppShortcut] {
        AppShortcut(
            intent: OpenItemIntent(),
            phrases: [
                "Open \(\.$target) in \(.applicationName)",
                "Show \(\.$target)"
            ],
            shortTitle: "Open Item",
            systemImageName: "doc"
        )
    }
}

Required Capabilities

URL Scheme (Info.plist)

CFBundleURLTypes

    
        CFBundleURLSchemes
        
            myapp
        
        CFBundleURLName
        com.yourcompany.myapp
    

Universal Links (Entitlements)

com.apple.developer.associated-domains

    applinks:yourapp.com
    applinks:www.yourapp.com

Server Configuration (AASA)

Host at https://yourapp.com/.well-known/apple-app-site-association:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAMID.com.yourcompany.yourapp",
        "paths": [
          "/items/*",
          "/users/*",
          "/share/*"
        ]
      }
    ]
  }
}

Integration Steps

1. Basic URL Handling

@main
struct MyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
                .onOpenURL { url in
                    handleDeepLink(url)
                }
        }
    }
}

2. Universal Links (UIKit)

// In SceneDelegate
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
    guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
          let url = userActivity.webpageURL else {
        return
    }
    handleUniversalLink(url)
}

3. App Intents Setup

  1. Create entities for Spotlight indexing
  2. Implement OpenIntent for each content type
  3. Define AppShortcuts for Siri phrases
  4. Index entities with CSSearchableIndex

Testing

URL Schemes

# Simulator
xcrun simctl openurl booted "myapp://items/123"

# Device
# Open Safari and navigate to myapp://items/123

Universal Links

# Test AASA file
curl -I "https://yourapp.com/.well-known/apple-app-site-association"
# Should return Content-Type: application/json

# Validate with Apple
# Use Apple's tool or Branch.io validator

App Intents

  1. Build and run on device
  2. Open Shortcuts app
  3. Your app's shortcuts should appear
  4. Test with Siri: "Hey Siri, [your phrase]"

References

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.