Apple Ecosystem Expert logo

Apple Ecosystem Expert

Community
roedyrustam
apple-ecosystem-expert

Apple ecosystem development: iOS support, Safari WebKit, and HIG / Pengembangan ekosistem Apple: kompatibilitas iOS, Safari, dan HIG.

Overview

Publisherroedyrustam
Repositoryvibes-plug
Skill nameapple-ecosystem-expert
Stars
117
Forks
27
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by roedyrustam on GitHub. Read the source before you install it.

Installation

Install the Apple Ecosystem Expert AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/roedyrustam/vibes-plug/tree/main/skills/apple-ecosystem-expert
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/roedyrustam/vibes-plug.git /tmp/vibes-plug
mkdir -p .claude/skills
cp -r /tmp/vibes-plug/skills/apple-ecosystem-expert .claude/skills/apple-ecosystem-expert
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Apple Ecosystem Expert in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Apple Ecosystem Expert on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Apple Ecosystem Expert is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Apple Ecosystem Expert — vibes-plug Skill

English | Bahasa Indonesia


English

Orchestration & Integration

Connects and orchestrates with relevant domain skills:

  • hig: Direct Apple Human Interface Guidelines alignment across Clarity, Deference, Depth, and the 6 Core Principles.
  • modern-web-guidance: Safari WebKit standards, dynamic viewport units (100dvh), and web platform features.
  • design-system-architect: Apple design tokens, continuous squircle scales, SF Pro typography, and 44×44pt touch targets.
  • modern-css-native-expert: Modern CSS @supports, env(safe-area-inset-*), and native iOS inertia scrolling.
  • tailwind-expert: Tailwind utility classes for iOS safe areas, liquid glass, and dynamic viewport units.
  • ui-ux-pro-max: Apple HIG UX patterns, fluid spring transitions, Dynamic Island layouts, and thumb-zone ergonomics.
  • visual-ui-auditor: Multimodal vision auditing of iOS Safari interfaces, contrast ratios, and touch targets.
  • anti-slop: Anti-slop iOS UI craft, zero generic Android-style controls in iOS contexts, zero unstyled pill buttons.
  • mobile-expo-expert: Cross-platform React Native / Expo iOS implementations and native Swift modules.
  • passkeys-webauthn-identity-expert: iCloud Keychain Passkeys, Associated Domains, and Face ID / Touch ID WebAuthn.
  • brainstorming, zero-to-prod-orchestrator, session-memory-manager: Continuous lifecycle orchestration.

Description

Expert engineering and design guide for the Apple Ecosystem across iOS 18+, iPadOS 18+, macOS 15 Sequoia, visionOS 2+, and Safari WebKit. Enforces Apple Human Interface Guidelines (HIG) compliance in code: Dynamic Type scales, semantic system colors, Liquid Glass materials, Dynamic Island presentation states, iPadOS pointer hover adaptations, safe-area layout invariants, and standalone PWA configuration.


1. Safari WebKit & iOS Platform Compatibility Invariants

Feature / BehaviorSafari WebKit Quirk2026 Production Standard
Viewport Height100vh includes area behind collapsible URL bar, clipping bottom CTAsEnforce 100dvh for full interactive shells; 100svh for modal overlays
Input Auto-ZoomSafari forcefully zooms the page if <input> font-size is < 16pxEnforce font-size: max(16px, 1rem) on all form inputs on mobile breakpoints
Dynamic Island & NotchEdge-to-edge layouts overlap hardware sensors and Home IndicatorSet viewport-fit=cover + env(safe-area-inset-top) / env(safe-area-inset-bottom)
Overscroll & Rubber-BandWhole page bounce can disrupt fixed sheets or bottom barsApply overscroll-behavior-y: none to the root view and enable native bounce on inner scrollviews
Touch Target SizeSmall links cause mis-taps on high-density Retina touchscreensGuarantee minimum hit target of 44×44pt (min-height: 44px; min-width: 44px)
Web Push (APNs)Requires Home Screen installation (display: standalone) and user gestureGate Notification.requestPermission() behind an explicit user gesture
Universal Links & PasskeysRequires verified domain association without redirectsServe /.well-known/apple-app-site-association with application/json MIME and HTTP 200

2. Apple HIG Design Tokens & CSS Architecture

Implement native Apple HIG tokens directly into your CSS or Tailwind v4 @theme:

css
/* src/styles/apple-hig-tokens.css */
:root {
  /* Safe Area Insets */
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  --safe-right: env(safe-area-inset-right, 0px);

  /* Apple System Typography (SF Pro) */
  --font-apple-system: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display",
    "Helvetica Neue", Helvetica, Arial, sans-serif;

  /* Apple Semantic System Colors (Light Mode) */
  --apple-label-primary: #000000;
  --apple-label-secondary: rgba(60, 60, 67, 0.6);
  --apple-label-tertiary: rgba(60, 60, 67, 0.3);
  --apple-bg-primary: #FFFFFF;
  --apple-bg-secondary: #F2F2F7;
  --apple-bg-tertiary: #FFFFFF;
  --apple-separator: rgba(60, 60, 67, 0.29);

  /* Apple System Tints */
  --apple-blue: #007AFF;
  --apple-green: #34C759;
  --apple-red: #FF3B30;
  --apple-orange: #FF9500;
  --apple-purple: #AF52DE;

  /* Radii (Apple Continuous Squircle Scale) */
  --radius-apple-sm: 8px;
  --radius-apple-md: 12px;
  --radius-apple-lg: 16px;
  --radius-apple-xl: 22px;
  --radius-apple-full: 9999px;
}

@media (prefers-color-scheme: dark) {
  :root {
    /* Apple Semantic System Colors (Dark Mode Elevation) */
    --apple-label-primary: #FFFFFF;
    --apple-label-secondary: rgba(235, 235, 245, 0.6);
    --apple-label-tertiary: rgba(235, 235, 245, 0.3);
    --apple-bg-primary: #000000;    /* Canvas base */
    --apple-bg-secondary: #1C1C1E;  /* Elevated card */
    --apple-bg-tertiary: #2C2C2E;   /* Elevated sheet/modal */
    --apple-separator: rgba(84, 84, 88, 0.6);

    /* Dark Mode Vibrant Tints */
    --apple-blue: #0A84FF;
    --apple-green: #30D158;
    --apple-red: #FF453A;
    --apple-orange: #FF9F0A;
    --apple-purple: #BF5AF2;
  }
}

/* Apple Liquid Glass Material */
.apple-liquid-glass {
  background: rgba(255, 255, 255, 0.75);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.25);
}

@media (prefers-color-scheme: dark) {
  .apple-liquid-glass {
    background: rgba(28, 28, 30, 0.78);
    backdrop-filter: blur(20px) saturate(190%);
    -webkit-backdrop-filter: blur(20px) saturate(190%);
    border: 1px solid rgba(255, 255, 255, 0.12);
  }
}

/* Apple HIG Interactive Touch Target Floor */
.apple-touch-target {
  min-height: 44px;
  min-width: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

/* iPadOS & macOS Pointer Hover Effect */
@media (hover: hover) and (pointer: fine) {
  .apple-touch-target:hover {
    background-color: var(--apple-label-secondary);
    transition: background-color 0.2s cubic-bezier(0.25, 1, 0.5, 1);
  }
}

3. Dynamic Island & Live Activities HTML/CSS Component Pattern

Represent Dynamic Island states faithfully in web/hybrid applications:

html
<!-- src/components/DynamicIsland.html -->
<div class="dynamic-island-container">
  <!-- 1. Compact Presentation (Pill) -->
  <div class="dynamic-island-compact" role="status" aria-live="polite">
    <div class="island-leading">
      <span class="symbol-timer" aria-hidden="true">⏱️</span>
    </div>
    <div class="island-trailing">
      <span class="tabular-nums font-semibold text-apple-green">14:59</span>
    </div>
  </div>

  <!-- 2. Expanded Presentation (Long Press Modal) -->
  <div class="dynamic-island-expanded hidden" id="dynamic-island-expanded">
    <div class="expanded-leading">
      <div class="app-icon-badge">⚡</div>
      <div class="expanded-meta">
        <span class="text-caption font-medium text-secondary">Vibes Task</span>
        <span class="text-headline font-semibold">Running Benchmark</span>
      </div>
    </div>
    <div class="expanded-trailing">
      <span class="tabular-nums text-title2 font-bold text-apple-green">14:59</span>
    </div>
    <div class="expanded-bottom">
      <div class="progress-bar-track">
        <div class="progress-bar-fill" style="width: 68%;"></div>
      </div>
      <div class="expanded-actions">
        <button class="apple-button-tinted apple-touch-target">Pause</button>
        <button class="apple-button-destructive apple-touch-target">End</button>
      </div>
    </div>
  </div>
</div>
css
/* Dynamic Island Presentation Styles */
.dynamic-island-container {
  display: flex;
  justify-content: center;
  width: 100%;
  padding-top: max(0.5rem, var(--safe-top));
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  pointer-events: none;
  z-index: 9999;
}

.dynamic-island-compact {
  pointer-events: auto;
  background-color: #000000;
  color: #FFFFFF;
  height: 37px;
  border-radius: 19px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 12px;
  min-width: 125px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
  transition: all 0.35s cubic-bezier(0.25, 1, 0.5, 1);
}

.dynamic-island-expanded {
  pointer-events: auto;
  background-color: #000000;
  color: #FFFFFF;
  width: min(92vw, 360px);
  border-radius: 38px;
  padding: 20px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

4. Standalone iOS PWA & Web Push Subscription (TypeScript)

Detect standalone mode reliably and handle Apple Push Notification service (APNs) enrollment:

typescript
// src/lib/apple-pwa.ts
export interface AppleEnvironmentStatus {
  isIosDevice: boolean;
  isIpadOs: boolean;
  isStandalonePwa: boolean;
  supportsWebPush: boolean;
  hasNotchOrIsland: boolean;
}

export function detectAppleEnvironment(): AppleEnvironmentStatus {
  if (typeof window === 'undefined' || typeof navigator === 'undefined') {
    return {
      isIosDevice: false,
      isIpadOs: false,
      isStandalonePwa: false,
      supportsWebPush: false,
      hasNotchOrIsland: false,
    };
  }

  const ua = navigator.userAgent;
  const isIpadOs =
    navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && !/iPhone|iPod/.test(ua);
  const isIosDevice = /iPad|iPhone|iPod/.test(ua) || isIpadOs;

  const isStandalonePwa =
    window.matchMedia('(display-mode: standalone)').matches ||
    Boolean((navigator as Navigator & { standalone?: boolean }).standalone);

  const supportsWebPush =
    'serviceWorker' in navigator &&
    'PushManager' in window &&
    'Notification' in window &&
    (!isIosDevice || isStandalonePwa);

  // Check safe-area-inset-top presence indicating Dynamic Island or Notch
  const safeTopStr = window
    .getComputedStyle(document.documentElement)
    .getPropertyValue('--safe-top')
    .trim();
  const hasNotchOrIsland = parseInt(safeTopStr, 10) > 20;

  return { isIosDevice, isIpadOs, isStandalonePwa, supportsWebPush, hasNotchOrIsland };
}

/**
 * Subscribes to Web Push via APNs.
 * Must be triggered directly by an explicit user gesture (e.g. settings toggle tap).
 */
export async function subscribeToAppleWebPush(applicationServerKey: string): Promise<PushSubscription | null> {
  const env = detectAppleEnvironment();
  if (!env.supportsWebPush) {
    throw new Error('Web Push is only available in iOS Standalone Home Screen apps or macOS Safari.');
  }

  const permission = await Notification.requestPermission();
  if (permission !== 'granted') {
    return null;
  }

  const registration = await navigator.serviceWorker.ready;
  return await registration.pushManager.subscribe({
    userVisibleOnly: true,
    applicationServerKey,
  });
}

5. Production Verification Checklist

  • All interactive screen roots use 100dvh (Dynamic Viewport Height) to prevent clipping by Safari's collapsible URL bar.
  • Every form input enforces font-size: max(16px, 1rem) to prevent involuntary iOS Safari auto-zooming.
  • Safe area insets (env(safe-area-inset-*)) protect headers from Dynamic Island and footers from the Home Indicator.
  • Interactive controls strictly enforce a minimum touch target floor of 44×44pt.
  • Tabular numerals (font-variant-numeric: tabular-nums) are enforced on all metrics, counters, and prices.
  • Translucent toolbars and navigation bars utilize backdrop-filter: blur(20px) saturate(180%).
  • /.well-known/apple-app-site-association is served over HTTPS with Content-Type: application/json and zero redirects.
  • Destructive actions are styled in system red (#FF3B30 / #FF453A) with a secondary confirmation dialog.

Sovereign Execution, Token Efficiency & Invariants

DimensionSovereign Mandate & Deterministic Contract
Frontier Model CascadeMedium / High (GPT-5.6 Sol Medium, Gemini 4 Argon, Claude Sonnet 5.5 High, Grok 4.7 High Fast)
Availability FallbackGemini 4 Argon/Pro -> Gemini 3.8 Flash; Claude Opus 5.5 -> Claude Opus 4.6 (Zero unhandled missing-model errors)
KV-Cache & Token ProtocolPin static instructions & schemas at prompt prefix (kv-cache-prefix-optimizer); pass surgical CONTEXT_MAP.md slices (<250 tokens/call) during Swarm Fan-Out
SaaT CLI & MCP DispatchCLI: vibes skill exec apple-ecosystem-expert <audit|eval|verify|generate|blueprint> / MCP: vibes_skill_dispatch, vibes_ast_query, vibes_compile_cache, vibes_optimize_budget, vibes_verify_gate
NFR & Anti-Slop InvariantsMinimum 44×44pt touch targets, 100dvh shell, max(16px, 1rem) inputs, safe-area compliance; 100% complete zero-placeholder output verified via node scripts/check-anti-slop.js --strict


Bahasa Indonesia

Integrasi Orkestrasi

Terhubung dan mengorkestrasi skill domain yang relevan:

  • hig: Penyelarasan langsung prinsip Apple Human Interface Guidelines (Clarity, Deference, Depth, dan 6 Prinsip Fondasional).
  • modern-web-guidance: Standar Safari WebKit, unit viewport dinamis (100dvh), dan kapabilitas platform web modern.
  • design-system-architect: Token desain Apple, kurva squircle kontinu, tipografi SF Pro, dan target sentuh minimal 44×44pt.
  • modern-css-native-expert: CSS modern @supports, env(safe-area-inset-*), dan scrolling inersia native iOS.
  • tailwind-expert: Utility class Tailwind untuk safe area iOS, liquid glass, dan viewport dinamis.
  • ui-ux-pro-max: Pola UX Apple HIG, transisi pegas (spring), tata letak Dynamic Island, dan ergonomi thumb-zone.
  • visual-ui-auditor: Audit visual multimodal untuk antarmuka Safari iOS, rasio kontras, dan target sentuh.
  • anti-slop: Desain UI iOS anti-slop, bebas kontrol generik gaya Android di konteks iOS, bebas tombol pill tanpa style.
  • mobile-expo-expert: Implementasi React Native / Expo untuk platform iOS dan modul native Swift.
  • passkeys-webauthn-identity-expert: Integrasi Passkeys iCloud Keychain, Associated Domains, dan Face ID / Touch ID WebAuthn.
  • brainstorming, zero-to-prod-orchestrator, session-memory-manager: Orkestrasi siklus hidup proyek secara terpadu.

Deskripsi

Panduan rekayasa dan desain ahli untuk ekosistem Apple di iOS 18+, iPadOS 18+, macOS 15 Sequoia, visionOS 2+, dan Safari WebKit. Menegakkan kepatuhan terhadap Apple Human Interface Guidelines (HIG) di level kode: skala Dynamic Type, warna sistem semantik, material Liquid Glass, presentasi Dynamic Island, adaptasi pointer iPadOS, invarian safe area, dan PWA standalone.


1. Invarian Kompatibilitas Safari WebKit & Platform iOS

Fitur / PerilakuMasalah Safari WebKitStandar Produksi 2026
Tinggi Viewport100vh mencakup area di balik bilah URL, memotong CTA bawahGunakan 100dvh untuk shell interaktif penuh; 100svh untuk modal
Input Auto-ZoomSafari memperbesar layar secara paksa jika ukuran font <input> < 16pxWajibkan font-size: max(16px, 1rem) pada seluruh input form mobile
Dynamic Island & NotchTata letak edge-to-edge bertabrakan dengan kamera dan Home IndicatorKonfigurasi viewport-fit=cover + env(safe-area-inset-top) / env(safe-area-inset-bottom)
Overscroll HalamanEfek pantulan seluruh halaman mengganggu bilah navigasi bawahTerapkan overscroll-behavior-y: none pada root view
Ukuran Target SentuhLink kecil memicu salah sentuh di layar Retina padatJamin target sentuh minimal 44×44pt (min-height: 44px; min-width: 44px)
Web Push (APNs)Wajib diinstal ke Home Screen (display: standalone) dan butuh gesturMunculkan Notification.requestPermission() hanya setelah tap eksplisit pengguna
Universal Links & PasskeysMembutuhkan asosiasi domain terverifikasi tanpa redirectSajikan /.well-known/apple-app-site-association dengan tipe MIME application/json

2. Token Desain Apple HIG & Arsitektur CSS

Terapkan token resmi Apple HIG langsung pada CSS atau Tailwind v4:

  • Warna Semantik: Gunakan token warna semantik (label, secondaryLabel, systemBackground, systemGroupedBackground) yang secara otomatis beradaptasi saat pengguna beralih antara Mode Terang dan Mode Gelap.
  • Pencerahan Sumbu-Z Mode Gelap: Pastikan kartu, dialog, dan sheet yang melayang memiliki warna abu-abu lebih terang (#1C1C1E, #2C2C2E) di atas kanvas hitam murni (#000000).
  • Material Liquid Glass: Gunakan filter backdrop-filter: blur(20px) saturate(180%) dengan border translusen 1px.
  • Batas Sentuh 44×44pt: Pastikan seluruh tombol memiliki dimensi hitbox minimal 44×44pt.
  • Hover Pointer iPadOS & macOS: Gunakan media query @media (hover: hover) and (pointer: fine) untuk memberikan highlight halus saat kursor melayang di atas elemen interaktif.

3. Checklist Verifikasi Produksi Apple HIG

  • Seluruh container halaman utama menggunakan 100dvh (Dynamic Viewport Height) alih-alih 100vh.
  • Seluruh elemen <input>, <select>, dan <textarea> memiliki ukuran font minimal 16px di layar mobile.
  • Inset safe area (env(safe-area-inset-*)) melindungi header dari Dynamic Island dan navigasi bawah dari Home Indicator.
  • Seluruh tombol dan kontrol interaktif memenuhi area sentuh minimal 44×44pt.
  • Angka tabular (tabular-nums) diterapkan pada semua tampilan metrik, timer, counter, dan harga.
  • Bilah navigasi melayang menerapkan efek Liquid Glass (backdrop-filter: blur(20px) saturate(180%)).
  • File /.well-known/apple-app-site-association disajikan via HTTPS dengan Content-Type: application/json tanpa redirect.
  • Aksi destruktif diwarnai merah sistem (#FF3B30 / #FF453A) dengan konfirmasi sekunder.

Matriks Eksekusi Berdaulat, Efisiensi Token & Invarian

DimensiMandat Berdaulat & Kontrak Deterministik
Kaskade Model FrontierMedium / High (GPT-5.6 Sol Medium, Gemini 4 Argon, Claude Sonnet 5.5 High, Grok 4.7 High Fast)
Invarian Fallback KetersediaanGemini 4 Argon/Pro -> Gemini 3.8 Flash; Claude Opus 5.5 -> Claude Opus 4.6 (Bebas gagal saat model belum tersedia/kuota penuh)
Protokol Hemat Token & KV-CacheKunci instruksi & skema statis di prefix awal (kv-cache-prefix-optimizer); kirim potongan CONTEXT_MAP.md (<250 token/panggilan) saat Fan-Out
Eksekusi SaaT CLI & MCPCLI: vibes skill exec apple-ecosystem-expert <audit|eval|verify|generate|blueprint> / MCP: vibes_skill_dispatch, vibes_ast_query, vibes_compile_cache, vibes_optimize_budget, vibes_verify_gate
Invarian NFR & Anti-SlopTarget sentuh minimal 44×44pt, shell 100dvh, font input max(16px, 1rem), kepatuhan safe-area; kode 100% tuntas tanpa placeholder diverifikasi melalui node scripts/check-anti-slop.js --strict

Frequently asked questions

What does the Apple Ecosystem Expert AI skill do?

Apple ecosystem development: iOS support, Safari WebKit, and HIG / Pengembangan ekosistem Apple: kompatibilitas iOS, Safari, dan HIG.

Why use Apple Ecosystem Expert on TypingMind?

Because you install it once and use it with any model. Apple Ecosystem Expert is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Apple Ecosystem Expert in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/roedyrustam/vibes-plug/tree/main/skills/apple-ecosystem-expert. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Apple Ecosystem Expert?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Apple Ecosystem Expert?

As many as you like. As long as a model supports skills, you can use Apple Ecosystem Expert with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Apple Ecosystem Expert AI skill free?

Yes. It is published on GitHub by roedyrustam under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇