nerdsnipe-inc/aichatpackage
A macOS app that exercises every provider in the AIChatKit family side-by-side. Use it to explore capabilities, test your API keys, or as a reference implementation when integrating the packages into your own app.
What the Playground covers
| Section | Demo | What it shows | |---|---|---| | OpenAI | Chat | Streaming text via gpt-4o | | | Tool Use | Weather + book tools with auto-execution | | | Vision | Image understanding (paste an image URL) | | | Reasoning | Extended reasoning via o3-mini | | Anthropic | Chat | Streaming text via claude-sonnet-4-6 | | | Extended Thinking | Collapsible thinking tiles via claude-opus-4-8 | | | Tool Use | Multi-turn tool call round-tripping | | llama.cpp (server) | llama-server | OpenAI-compatible local HTTP server | | llama.cpp (local) | Gemma 4 E2B | In-process GGUF inference, Metal GPU, ~3.5 GB download | | Apple MLX | Gemma 4 E4B | On-device MLX inference, ~2.5 GB download | | Foundation Models | Apple Intelligence | On-device via FoundationModels framework (macOS 26+) |
Requirements
- macOS 14 or later (macOS 26 required for the Apple Intelligence demo)
- Xcode 16 or later
- Apple Silicon for the MLX demo
- API keys for OpenAI and/or Anthropic (entered in Settings once the app is running)
Setup
All four repositories must be cloned as siblings in the same parent folder — the Playground references the packages via relative paths.
cd ~/path/to/your/projects
git clone https://github.com/NerdSnipe-Inc/AIChatKit.git
git clone https://github.com/NerdSnipe-Inc/AIChatKitLlama.git
git clone https://github.com/NerdSnipe-Inc/AIChatKitMLX.git
git clone https://github.com/NerdSnipe-Inc/AiChatPackage.gitYour folder should look like this:
your-projects/
├── AIChatKit/
├── AIChatKitLlama/
├── AIChatKitMLX/
└── AiChatPackage/ ← open this one in Xcode
└── Playground/
└── Playground.xcodeprojOpen AiChatPackage/Playground/Playground.xcodeproj in Xcode. On first open Xcode will resolve the three local packages automatically.
Signing: The Playground requires a signing team to enforce the App Sandbox. In Xcode, select the Playground target → Signing & Capabilities → set your team. This is a one-time local step and is not committed to the repo.
Architecture notes
The Playground is built on the same public API any app would use — there is no private or internal access. If you want to understand how to integrate a provider, the Playground source is the reference:
AppViewModel.swift— provider factories and demo catalogueChatDemoView.swift— custom UI driven byChatSession.entriesLlamaLocalView.swift— model download + progress + in-process inferenceMLXLocalView.swift— HuggingFace Hub download + MLX load + chatRootView.swift— sidebar navigation and provider routing
All on-device demos (Llama and MLX) run entirely within the app sandbox. No data leaves the device during inference.
License
MIT
Package Metadata
Repository: nerdsnipe-inc/aichatpackage
Default branch: main
README: README.md