By skiptools
Build cross-platform iOS and Android apps with SwiftUI, transpiling to Kotlin or compiling natively via Skip Fuse. Scaffold projects, manage icons and localization, integrate optional frameworks, and deploy to both app stores.
Building SwiftUI views in Skip projects that work on both iOS and Android. Covers supported components, navigation, state management, Jetpack Compose customization, Material 3 theming, the hard rule against `Image(systemName:)` / `Label(_, systemImage:)` (use `.symbolset` resources via `Image("name", bundle: .module)` instead), and the localization-correct `Label { Text } icon: { Image }` shape.
Start-to-finish orchestrator for building a new cross-platform Skip app. Sequences the other Skip skills in the order you actually need them — scaffold with `skip init`, write SwiftUI, add Material Symbols icons, validate Kotlin transpilation with `swift test`, drive the running app with `skip app launch` + Maestro, localise via `Localizable.xcstrings`, and ship via `skip export` with fastlane metadata. Use this skill at the start of a new project, or when picking up an existing Skip app and trying to decide which skill applies to which phase. Each phase links to the dedicated skill for the deep dive. Also points at the `skipapp-todo` working example at https://github.com/skiptools/skills as a reference build.
Integrating optional Skip frameworks into a project. Covers Firebase, SQLite, Keychain, WebView, audio/video, device sensors, Lottie animations, FFI, and other frameworks. Includes Package.swift dependencies, skip.yml configuration, and usage examples.
Building Skip apps in Fuse mode — Swift compiled natively for Android via the Swift Android SDK (Swift 6.3+), with auto-generated JNI bridging between Swift and Kotlin/Java. Covers when to choose Fuse over Lite, project init with `skip init --native-app`, the `mode: 'native'` + `bridging: true` skip.yml configuration, the `import SkipFuse` requirement for `@Observable` models (a build-time warning, not an error), the internal/public visibility rules for views and properties, the ~60 MB Swift runtime binary cost, debugging via `OSLog.Logger` (breakpoints not yet supported), `ProcessInfo.processInfo.dynamicAndroidContext()` for reaching the Android Context, the Kotlin-inline-class string-interpolation workaround for Android SDK properties, `SKIP_BRIDGE=1` for dynamic library bundling, and the `skip android test` (CLI vs APK mode) test command. Use this skill whenever working on a project whose `skip.yml` contains `mode: 'native'`, or when deciding between Lite and Fuse for a new app.
Icons in Skip projects. The hard rule: never use `Image(systemName:)` or `Label(_, systemImage:)`. SF Symbols are an Apple-only catalogue with no Android equivalent; the names you pass to `systemName:` / `systemImage:` will not resolve on Android and most will render as a blank or generic-placeholder glyph. The canonical replacement is to download Material Symbols from `fonts.google.com/icons` in **Apple symbolset format**, drop the `.symbolset/` bundle under `Sources/<Module>/Resources/Icons.xcassets/`, and render with `Image("name", bundle: .module)` inside the localisation-correct `Label { Text(…, bundle: .module) } icon: { Image(…) }` form. The same SVG ships to both platforms and looks identical. Also covers app launcher icons via `skip icon` and how to verify in-app icons render on both platforms. The full `.symbolset` format spec (download URLs per variant, `Contents.json` schemas, verification checks) is in references/symbolset-anatomy.md. references/sf-symbol-map.md explains what SkipUI does with `systemName:` internally — it is **not** a "safe-to-use" list. Use this skill whenever adding, replacing, or auditing icons in a Skip app or library.
Based on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Agent skills for building cross-platform iOS and Android apps with Skip. Each skill is a SKILL.md file with a frontmatter description. The agent loads a skill when its description matches what you're asking about.
skipapp-todoskip-app-design| Skill | Scope |
|---|---|
| skip-app-walkthrough | Orchestrator. Sequences the other skills. Start here on a new project. |
| skip-project-creation | Scaffolding a new app with skip init. |
| building-skip-ui | Writing SwiftUI that transpiles to Jetpack Compose. |
| skip-lite-transpilation | Swift-to-Kotlin transpilation rules for Lite mode. |
| skip-fuse | Fuse mode: native Swift on Android via the Swift Android SDK. |
| skip-frameworks | Adding optional Skip frameworks (SQL, Firebase, Keychain, Web, AV, etc.). |
| skip-icons | The hard rule against Image(systemName:), and the Material Symbols .symbolset workflow that replaces it. |
| skip-localization | Localizable.xcstrings, InfoPlist.xcstrings, and fastlane storefront metadata. |
skip-testing-deployment| Skill | Scope |
|---|---|
| skip-testing | XCTest and Swift Testing with parity testing across iOS and Android. |
| skip-ui-automation | skip app launch and Maestro flows that target both platforms. |
| skip-deployment | Release builds, signing, store submission, CI. |
Claude Code is the recommended agent. Cursor, Gemini, and Codex work as well; the skills are plain markdown and don't depend on agent-specific features.
/plugin marketplace add skiptools/skills
/plugin install skip-app-design
/plugin install skip-testing-deployment
Rules & Command > Project Rules > Add Rule > Remote Rule (GitHub).https://github.com/skiptools/skills.git.Skills load automatically based on the topic you ask about. There is no slash-command entry to invoke them.
Point the agent at AGENTS.md or at any SKILL.md under plugins/.
These are the prompts used to build skipapp-todo. Run them in order. Each one builds on the state the previous one left.
Prompt: Create a new Skip Lite TODO app at
/tmp/skipapp-todowith bundle iddev.skip.todo. Use a two-module layout:TodoAppfor the UI,TodoAppModelfor the data. Pass--no-buildso we can inspect the generated tree first.
Loads skip-app-walkthrough and skip-project-creation. The agent runs skip init --transpiled-app --appid=dev.skip.todo skipapp-todo TodoApp TodoAppModel --no-build. The output is a Swift package with Package.swift, Sources/TodoApp/, Sources/TodoAppModel/, Darwin/, Android/, and a populated template Localizable.xcstrings.
Prompt: Boot an iPhone simulator and an Android emulator. Run
skip app launch. Take a screenshot from each platform.
Loads skip-ui-automation. The first build takes a few minutes because Skip resolves SkipUI, SkipFoundation, and SkipModel from source. Subsequent builds are incremental. The template Welcome view should render on both screens.
Prompt: Replace the tab-based template with a single-screen
NavigationStack: a text field at the top to add tasks, a list of tasks below with a tappable circle that toggles complete, swipe-to-delete, an overflow menu with "Clear Completed" and "Clear All", and an empty state. For every icon, use a Material Symbol downloaded fromfonts.google.com/iconsin Apple symbolset format and reference it viaImage("name", bundle: .module). Do not useImage(systemName:)orLabel(_, systemImage:)anywhere — those rely on Apple's SF Symbols catalogue and render blank on Android. Every interactive view needs an.accessibilityIdentifier(...).
Test, export, sign, and distribute Skip apps for the App Store and Google Play
npx claudepluginhub skiptools/skills --plugin skip-app-designUltra-compressed communication mode. Cuts 65% of output tokens (measured) while keeping full technical accuracy by speaking like a caveman.
Frontend design skill for UI/UX implementation
Memory compression system for Claude Code - persist context across sessions
Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, ad creative, and growth
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.