npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

swift-agent-skills

v0.1.1

Published

Currency-checked agent skills for shipping SwiftUI apps — full setup installer for ~/.claude (skills, agents, framework reference guides, hooks, example settings).

Readme

Swift Agent Skills

Currency-checked agent skills for shipping SwiftUI apps — a SwiftUI-first lifecycle, craft specialists, and Apple-framework experts. SwiftUI-first, not UIKit. Built for Claude Code; installs into any Agent Skills–compatible agent.

By Moritz Tucher · GitHub · LinkedIn

87 skills · 4 agents · 3 hooks · 11 iOS reference guides


What this is

A working, opinionated ~/.claude/ setup focused on shipping production SwiftUI apps with Claude Code. It's SwiftUI-first throughout — views are SwiftUI, state is @Observable, navigation is NavigationStack; UIKit/AppKit appear only where you genuinely must bridge (a few system pickers, AppKit for macOS targets). It encodes a light, UI-first workflow across five phases — Setup → Plan → Build → Verify → Ship — alongside specialist skills for SwiftUI craft, design audits, onboarding, and simulator automation. Plan with a living brief, build the flow before the logic, ship.

It's built around the mistakes Claude makes on iOS by default — and corrects them. It won't nest a NavigationStack inside another NavigationStack and break your back button. It reaches for @Observable instead of @Published / ObservableObject, because it's 2026. It won't ship a tappable control without an .accessibilityLabel. The taste is baked into the skills, not bolted on after.

It's the configuration I use day-to-day. The skills compose into one pipeline (/ios-init/ios-brief → build features UI-first → /ios-review/ios-commit/pr-to-develop), but each one stands on its own. Not sure what to run next? Type /ios — the orchestrator detects where your project is and routes you to the right step. Drop into any iOS project and they pick up the local CLAUDE.md for context.

What this isn't

  • Not a UIKit toolkit — it's SwiftUI-first; UIKit only shows up where you must bridge (MessageUI, PhotosPicker, etc.), and AppKit only for macOS
  • Not a fork of every public Claude Code skill — it's curated, not comprehensive
  • Not a framework — it's a config snapshot you copy into ~/.claude/
  • Not a substitute for thinking about your architecture — the skills surface decisions, you still make them
  • Not affiliated with Anthropic — Claude Code is Anthropic's product; this repo provides community-contributed configuration

Installation

Fastest path — install the skills + agents as a Claude Code plugin:

/plugin marketplace add moritztucher/swift-agent-skills
/plugin install swift-skills@swift-agent-skills

These skills follow the open Agent Skills format (a SKILL.md per skill + references/), so they also install into any other skills-compatible agent — Cursor, Codex, Gemini CLI, Kiro, and others — via the community CLI:

npx skills add moritztucher/swift-agent-skills

The Claude plugin path gives you the 87 skills and 4 agents, namespaced under the plugin. For the full setup — skills, agents, the framework reference guides (loaded via @import), the hooks, and the example settings — one command drops the pieces into ~/.claude/, backing up anything already there:

npx swift-agent-skills

It never overwrites an existing CLAUDE.md, settings.json, or statusline-command.sh; run with --dry-run to preview, or --yes to skip the prompt. Prefer to do it by hand? The equivalent manual steps:

# 1. Clone into a working directory
git clone https://github.com/moritztucher/swift-agent-skills.git
cd swift-agent-skills

# 2. Back up anything you already have
[ -d ~/.claude/skills ] && mv ~/.claude/skills ~/.claude/skills.backup
[ -d ~/.claude/agents ] && mv ~/.claude/agents ~/.claude/agents.backup
[ -d ~/.claude/docs ] && mv ~/.claude/docs ~/.claude/docs.backup
[ -d ~/.claude/hooks ] && mv ~/.claude/hooks ~/.claude/hooks.backup

# 3. Drop the pieces in
mkdir -p ~/.claude
cp -R skills ~/.claude/
cp -R agents ~/.claude/
cp -R docs ~/.claude/
cp -R hooks ~/.claude/
chmod +x ~/.claude/hooks/*.sh

# 4. Optional: copy the global CLAUDE.md (won't overwrite existing without `-i`)
cp -i CLAUDE.md ~/.claude/CLAUDE.md

# 5. Optional: copy settings.json (review first — it enables specific plugins and hooks)
cp -i settings/settings.json.example ~/.claude/settings.json
cp -i statusline-command.sh ~/.claude/statusline-command.sh
chmod +x ~/.claude/statusline-command.sh

To opt a project into the iOS guide, add this as the first line of the project's CLAUDE.md:

@~/.claude/docs/ios/ios-guide.md

/ios-init adds this automatically when it scaffolds a project's CLAUDE.md (it auto-detects new vs. existing codebases).


Skills

The 87 skills group into the lifecycle phases. /ios is the front door — run it to see where a project is and what to do next.

Setup

| Skill | What it does | |-------|--------------| | /ios | Orchestrator — detects project state, shows a status map, routes to the next step | | /ios-load | Load the iOS guide into an ad-hoc chat that has no project CLAUDE.md | | /ios-init | Initialize a project — describe it in a few sentences, then it generates the doc set + .gitignore, LICENSE, README. Auto-detects new / fresh-scaffold / existing and asks only about gaps |

Plan

| Skill | What it does | |-------|--------------| | /ios-brief | Build & maintain the living project brief — features split into UI + Logic/Backend, MVP vs Later (draft-first; reads the init description) | | /ios-design-brief | Establish the visual design system — looks at the running app, proposes a direction in chat, writes implementable specs |

Then build features UI-first — write the UI layer so the flow feels good, then layer in logic & backend — using the Build tools below.

Build

| Skill | What it does | |-------|--------------| | /ios-design-elevate | Apply the design system view by view, verifying each screen visually (build → screenshot → compare → iterate); never touches business logic | | /ios-build | Build the Xcode project and report results | | /ios-test | Run unit and UI tests | | /ios-automate | iOS Simulator automation via the AXe CLI — tap, swipe, type, screenshot, video |

Verify

| Skill | What it does | |-------|--------------| | /ios-review | Thorough code review on changes or specified files | | /ios-audit | Holistic project audit through PM, UX, UI, ARCH lenses | | /ios-design-audit | Visual craft audit — screenshots the running app and judges the real screens — with severity-rated findings + elevation suggestions | | /ios-onboarding-audit | Walk the real onboarding flow in the simulator (or design one from scratch) — activation psychology, permission timing, measured time-to-value |

Ship

| Skill | What it does | |-------|--------------| | /ios-commit | Create a well-formed commit following project conventions | | /pr-to-develop | Create a PR from current branch into develop with a structured template | | /pr-to-main | Create a release PR from develop into main | | /ios-release-notes | Summarize git commits between two version tags into a paste-ready App Store "What's New" |

SwiftUI + Swift craft (model-invoked)

These trigger automatically while you read, write, or review SwiftUI and concurrency code — they aren't part of the linear path.

| Skill | What it does | Source | |-------|--------------|--------| | swiftui-pro | Comprehensive SwiftUI code review — modern APIs, performance, accessibility. Majority based on Paul Hudson's skill, with reference-guide additions (performance, Liquid Glass design, previews) by the repo author | twostraws/SwiftUI-Agent-Skill (Paul Hudson, MIT; adapted) | | swiftui-badge | The .badge() modifier — counts/labels on tabs, list rows, and toolbar buttons, plus prominence and the toolbar workaround | Moritz Tucher | | swiftui-tabview | iOS 26 TabView — value-based Tab/TabSection, sidebar-adaptable, bottom accessory, minimize behavior, .search tab, customization | Moritz Tucher | | swiftui-toolbar | The toolbar system — ToolbarItem/Group, all placements, ToolbarSpacer, iOS 26 shared glass + sharedBackgroundVisibility | Moritz Tucher | | keyboard-accessory | A view docked above the keyboard — input accessory bars and a custom IME candidate strip (matcher / strip / wiring) | Moritz Tucher | | swiftui-expert-skill | SwiftUI guidance incl. iOS 26 Liquid Glass + Instruments .trace analysis | AvdLee/SwiftUI-Agent-Skill (Antoine van der Lee) | | swift-concurrency | Diagnose concurrency issues, refactor to async/await, guide Swift 6 migration | AvdLee/Swift-Concurrency-Agent-Skill (Antoine van der Lee) | | swift-testing | Swift Testing — @Test/#expect/#require/@Suite, parameterized + async tests, XCTest migration | Moritz Tucher | | reactivity | Combine vs Observation vs async — @Observable, @Published, publishers, cancellable lifecycle, migration | Moritz Tucher |

Framework & engineering (model-invoked)

These trigger on framework and workflow keywords while you build. Each bundles a lean decision layer — numbered dials, an anti-rationalization table, and a pre-ship verification gate — over a deep API reference in the skill's references/. All currency-checked against Apple/vendor docs via Context7.

| Skill | Triggers on | |-------|-------------| | storekit | in-app purchase, IAP, subscription, StoreKit, Transaction, entitlement | | revenuecat | RevenueCat, paywall, offerings, entitlements, Purchases SDK | | widgetkit | widget, home/lock screen widget, WidgetKit, TimelineProvider, interactive widget | | liquid-glass | Liquid Glass, glass effect, glassEffect, iOS 26 glass material | | foundation-models | on-device AI, Apple Intelligence, Foundation Models, guided generation, @Generable | | appintents | Siri, Shortcuts, App Intents, AppShortcut, AppEntity | | swiftdata | SwiftData, persistence, @Model, @Query, Core Data migration | | activitykit | Live Activity, Dynamic Island, ActivityKit | | backgroundtasks | background refresh, BGTask, background processing | | watchconnectivity | Apple Watch, watchOS, WCSession, paired device | | usernotifications | push/local notification, UNUserNotificationCenter, APNs, badge | | healthkit | HealthKit, health data, workout, steps, heart rate | | cloudkit | CloudKit, CKRecord, iCloud sync, private database, CKShare | | corelocation | Core Location, CLLocationManager, GPS, geofencing, location permission | | corebluetooth | Core Bluetooth, BLE, CBCentralManager, peripheral, characteristic | | authenticationservices | Sign in with Apple, passkeys, ASWebAuthenticationSession, OAuth | | localauthentication | Face ID, Touch ID, biometrics, LAContext, app lock | | tipkit | TipKit, tips, feature discovery, popoverTip | | swift-charts | Swift Charts, chart, graph, data visualization, BarMark | | coreml | Core ML, on-device inference, .mlmodel, MLModel, Vision model | | eventkit | EventKit, calendar, reminders, EKEventStore | | contacts | Contacts, CNContactStore, address book, contact picker | | photosui | PhotosPicker, photo library, PHPickerViewController, PhotoKit | | messageui | MessageUI, in-app email/SMS, MFMailComposeViewController | | mapkit | MapKit, map, Marker, MapCameraPosition, MKLocalSearch, geocoding | | safariservices | SafariServices, SFSafariViewController, in-app browser | | corehaptics | Core Haptics, haptic feedback, CHHapticEngine, AHAP | | avfoundation-audio | audio playback/recording, AVAudioSession, AVAudioEngine, microphone | | corespotlight | Core Spotlight, search indexing, CSSearchableItem, deep link | | attributed-string | AttributedString, rich/styled text, AttributeContainer, Markdown | | swiftui-webview | WebView, WKWebView, WebPage, embed web content, JS bridge | | translation | Translation, translate text, TranslationSession, on-device translation | | accessorysetupkit | AccessorySetupKit, accessory pairing, ASAccessorySession | | alarmkit | AlarmKit, alarm, timer, scheduled alert (iOS 26) | | paperkit | PaperKit, drawing, markup canvas, annotation (iOS 26) | | gamesave | GameSave, cloud game-save sync, GameSaveSyncedDirectory (iOS 26) | | relevancekit | RelevanceKit, content relevance, widget surfacing (iOS 26) | | permissionkit | PermissionKit, parental/guardian approval, communication permission (iOS 26) | | declared-age-range | Declared Age Range, privacy-preserving age verification (iOS 26) | | identity-document-services | mobile ID, digital ID / mdoc presentment (iOS 26) | | energykit | EnergyKit, clean-energy / grid-aware scheduling (iOS 26) | | wifiaware | Wi-Fi Aware, peer-to-peer device-to-device connections (iOS 26) | | speech-analyzer | speech to text, transcription, SpeechAnalyzer, SpeechTranscriber (iOS 26) | | visual-intelligence | Visual Intelligence, visual/camera search, semantic content (iOS 26) | | passkit | PassKit, Apple Wallet pass, PKPass, Apple Pay, PKPaymentRequest | | firebase | Firebase, Firestore, Auth, Cloud Messaging, Crashlytics (Google SDK) | | realmswift | Realm, RealmSwift, @Persisted, object database (third-party) | | carplay | CarPlay, CPTemplate, in-car app, CPInterfaceController | | screen-time | Screen Time, parental controls, app limits, FamilyControls, ManagedSettings, DeviceActivity, shield | | appkit | AppKit, macOS app, NSWindow, NSView, NSGlassEffectView, macOS Liquid Glass | | privacy-manifest | PrivacyInfo.xcprivacy, required-reason API, App Store privacy rejection | | oslog-logging | OSLog/Logger, structured logging, signposts, MetricKit observability | | universal-links | universal links, associated domains, apple-app-site-association, deep linking | | avkit-videoplayer | video playback, VideoPlayer, AVPlayer, HLS streaming, Picture in Picture | | pencilkit | PencilKit, PKCanvasView, drawing, Apple Pencil, ink, PKDrawing | | core-motion | Core Motion, accelerometer, gyroscope, device motion, pedometer, step count | | core-nfc | Core NFC, NFC tag read/write, NFCNDEFReaderSession, NFCTagReaderSession | | controls-controlwidget | Control Center / Lock Screen control, ControlWidget, Action Button (iOS 18) | | app-store-submission | archive/export/upload, xcodebuild exportArchive, TestFlight, code signing, review rejection |

Meta

| Skill | What it does | |-------|--------------| | /ios-agents | List all available subagents | | /compact-summary | Compress the current session into a reusable context primer for the next chat |


Agents

Specialists invoked via the Task tool from inside skills. They advise; the parent decides.

| Agent | Role | |-------|------| | ios-onboarding-advisor | Onboarding strategy — activation psychology, permission timing, progressive disclosure | | ios-ux-advisor | UX patterns, HIG compliance, component choices, interaction flow | | ios-ui-design-advisor | Visual craft — color, typography, motion, hierarchy, emotional design | | context7-docs-writer | Generates framework integration docs using Context7's live library data |


Hooks

Shell hooks that run automatically. The first two are wired up in settings/settings.json.example; definition-of-done.sh ships ready to use but is opt-in (not enabled in the example — add it as a Stop hook if you want it).

| Hook | When | What it does | In example? | |------|------|--------------|-------------| | swiftlint-autofix.sh | After every Edit/Write to a .swift file | Runs swiftlint lint --fix quietly | ✅ | | notify-done.sh | When Claude stops | macOS notification with the Glass sound | ✅ | | definition-of-done.sh | On stop (if wired) | Builds the Xcode project, runs tests, checks SwiftLint — blocks completion if any fails | ⬜️ opt-in |


11 reference guides under docs/ios/, organized by domain. Most frameworks have graduated into the framework-integration skills above (their deep guides now live in each skill's references/), and the SwiftUI craft guides folded into swiftui-pro; these remain as on-demand reference:

  • system/ — Span/InlineArray
  • rules/ — Architecture, ViewModels, SwiftUI Views, SwiftUI patterns, Swift style, security, testing
  • Plus the top-level ios-guide.md, ios-coding-standards.md, and architecture-patterns.md (loaded via @import)

Plus the top-level ios-guide.md (the consolidated entry point loaded via @import) and ios-coding-standards.md / architecture-patterns.md reference docs.


Templates

docs/templates/ contains the doc skeletons used by /ios-init and /ios-brief:

  • project-brief-template.md
  • architecture-template.md
  • adr-template.md
  • backlog-template.md
  • changelog-template.md
  • design-system-template.md
  • view-inventory-template.md
  • project-memory-template.md

Architecture

The setup splits into three layers:

  1. Skills are slash-commands the user invokes (/ios-init, /ios-brief, etc.), grouped by lifecycle phase (Setup → Plan → Build → Verify → Ship). Each is a SKILL.md with frontmatter and instructions. /ios is the orchestrator that reads project state and routes to the right phase. Some skills carry evals (evals/evals.json) for measuring trigger accuracy.
  2. Agents are specialists Claude spawns via the Task tool. They have a narrower scope and toolset than the main thread. Skills like /ios-design-audit and /ios-onboarding-audit spawn the design and onboarding advisors for parallel analysis.
  3. Docs + templates are the reference layer. The iOS guide loads via @~/.claude/docs/ios/ios-guide.md in a project's CLAUDE.md. Framework guides are read on demand. Templates feed /ios-init and /ios-brief.

The workflow composes left-to-right: init → brief → build features UI-first → review → commit → PR. The brief is a living source of truth — it decomposes each feature into a UI layer and a Logic & Backend layer so you can build the flow before the logic. /ios reads project state and points you to the next step.


Requirements

  • macOS (some hooks use osascript and xcodebuild)
  • Claude Code installed and authenticated
  • Xcode and xcodebuild on PATH for iOS skills
  • swiftlint (optional, for the autofix hook)
  • AXe CLI (optional, for the /ios-automate simulator-automation skill)
  • gh CLI (optional, for PR-creation skills)

Disclaimer

Not affiliated with Anthropic. Claude Code is Anthropic's product. Third-party skills are reproduced under their own licenses with full attribution in each skill's frontmatter — swiftui-pro from Paul Hudson (MIT), swiftui-expert-skill and swift-concurrency from Antoine van der Lee.


License

MIT — see LICENSE.


By Moritz Tucher · ~3 years shipping production iOS apps to the App Store, now building AI-native iOS workflows. Connect on LinkedIn.