Show HN: SwiftAI – open-source library to easily build LLM features on iOS/macOS

Show HN (score: 6)
Found: August 28, 2025
ID: 1101

Description

API/SDK
Show HN: SwiftAI – open-source library to easily build LLM features on iOS/macOS We built SwiftAI, an open-source Swift library that lets you use Apple’s on-device LLMs when available (Apple opened access in June), and fall back to a cloud model when they aren’t available — all without duplicating code.

SwiftAI gives you: - A single, model-agnostic API - An agent/tool loop - Strongly-typed structured outputs - Optional chat state

Backstory: We started experimenting with Apple’s local models because they’re free (no API calls), private, and work offline. The problem: not all devices support them (older iPhones, Apple Intelligence disabled, low battery, etc.). That meant writing two codepaths — one for local, one for cloud — and scattering branching logic across the app. SwiftAI centralizes that decision. Your feature code stays the same whether you’re on-device or cloud.

Example

  import SwiftAI
   
  let llm: any LLM = SystemLLM.ifAvailable ?? OpenaiLLM(model: "gpt-5-mini", apiKey: "<key>")

  let response = try await llm.reply(to: "Write a haiku about Hacker News")
  print(response.content)
It's open source — we'd love for you to try it, break it, and help shape the roadmap. Join our discord / slack or email us at root@mit12.dev.

Links

- GitHub (source, docs): https://github.com/mi12labs/SwiftAI

- System Design: https://github.com/mi12labs/SwiftAI/blob/main/Docs/Proposals...

- Swift Package Index (compat/builds): https://swiftpackageindex.com/mi12labs/SwiftAI

- Discord https://discord.com/invite/ckfVGE5r and slack https://mi12swiftai.slack.com/join/shared_invite/zt-3c3lr6da...

More from Show

Show HN: Opal Editor, free Obsidian alternative for markdown and site publishing

Show HN: Opal Editor, free Obsidian alternative for markdown and site publishing A fully featured markdown editor and publisher. Free, open-source and browser-first (no backend required). Built with modern technologies like React, TypeScript, Shadcn&#x2F;UI, and Vite. (thoughtfully crafted, not vibe coded)

Show HN: Control Claude permissions using a cloud-based decision table UI

Show HN: Control Claude permissions using a cloud-based decision table UI We’ve been building visual rule engines (clear interfaces + API endpoints that help map input data to a large number of outcomes) for a while and had the fun idea lately to see what happens when we use our decision table UI with Claude’s PreToolUse hook.<p>The result is a surprisingly useful policy&#x2F;gating layer– these tables let your team:<p>- Write multi-factor, exception-friendly policies (e.g. deny rm -rf &#x2F; when --force; allow cleanup only in node_modules; ask on network calls like curl&#x2F;wget; block kubectl delete or SQL DROP, each with a clear reason)<p>- Roll out policy changes instantly (mid-run, flip a risky operation from allow → ask; the next attempt across devs and agents is gated immediately– no git pull, agent restart, or coordination)<p>- Adopt lightweight governance that is somewhat agent agnostic and survives churn (MCP&#x2F;skills&#x2F;etc)- just add columns&#x2F;rules as new tools and metadata show up<p>- Get a quick central utility to understand which tools are being used, which tools get blocked most often, and why

Show HN: Claude Code Scheduler

Show HN: Claude Code Scheduler I found myself frequently wanting to schedule tasks in Claude Code (both one-time and recurring) so I built a CC plugin to help with that.<p>To install: &#x2F;plugin marketplace add jshchnz&#x2F;claude-code-scheduler &#x2F;plugin install scheduler@claude-code-scheduler<p>Then just tell Claude what you want (some examples):<p>Every Wednesday at 3am find dead code: unused functions, unreachable branches, commented-out code, and unused imports. List by file with line numbers.<p>Schedule a code review every weekday at 9am. Review commits from the last 24 hours, check for bugs, security issues, error handling gaps, and code that needs comments. Summarize with file:line references.

Show HN: Webctl – Browser automation for agents based on CLI instead of MCP

Show HN: Webctl – Browser automation for agents based on CLI instead of MCP

No other tools from this source yet.