Claude-skill-registry deep-linking
Universal Links, App Links, and URL scheme configuration.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/deep-linking" ~/.claude/skills/majiayu000-claude-skill-registry-deep-linking && rm -rf "$T"
manifest:
skills/data/deep-linking/SKILL.mdsource content
Deep Linking
URL Schemes
// app.json { "expo": { "scheme": "myapp" } }
// Handle myapp://path import * as Linking from 'expo-linking'; const url = Linking.createURL('path/to/screen', { queryParams: { id: '123' }, }); // myapp://path/to/screen?id=123
Universal Links (iOS)
// app.json { "expo": { "ios": { "associatedDomains": ["applinks:example.com"] } } }
// /.well-known/apple-app-site-association { "applinks": { "apps": [], "details": [ { "appID": "TEAM_ID.com.example.app", "paths": ["/product/*", "/user/*"] } ] } }
App Links (Android)
// app.json { "expo": { "android": { "intentFilters": [ { "action": "VIEW", "autoVerify": true, "data": [ { "scheme": "https", "host": "example.com", "pathPrefix": "/product" } ], "category": ["BROWSABLE", "DEFAULT"] } ] } } }
// /.well-known/assetlinks.json [{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.example.app", "sha256_cert_fingerprints": ["..."] } }]
Expo Router
// app/_layout.tsx export default function Layout() { return ( <Stack> <Stack.Screen name="product/[id]" /> </Stack> ); } // app/product/[id].tsx export default function ProductScreen() { const { id } = useLocalSearchParams(); // https://example.com/product/123 -> id = "123" }
Testing
# iOS Simulator xcrun simctl openurl booted "myapp://product/123" # Android Emulator adb shell am start -a android.intent.action.VIEW -d "myapp://product/123"