Introducing Aurora Toolkit 1.0
When creating something new throughout human history, there is always that moment where the idea touches the medium, and an abstract thought starts to become a tangible thing. A stick starts a line in the dirt. A pen starts a stroke on a page. A brush starts to stain a canvas. A bit starts to bite into a piece of wood. A chisel starts to reveal a masterpiece.
In our modern software development process there is an initial keystroke, but the first tangible evidence of an idea made real has a standard name: “Initial commit”. Version control systems before git had a concept of a commit, but it’s hard to imagine anyone using tools like SVN, CVS, or RCS today. So with most modern projects, it’s very easy to scroll all the way back to the initial commit.
Yesterday, after 446 days, I published version 1.0 of Aurora Toolkit – my open source Swift package for integrating AI and ML workflows in apps on Apple platforms. I know it took almost 15 months because I went back to my initial commit to see how I imagined the project from its beginning. I was surprised and delighted to see that all the core elements were in the initial idea.
The Apache License was there from the start, so it was always going to be open source. Context management, tasks and workflows, and an LLM manager allowing you to mix, match, and combine one or more different AI and ML models (or different instances of the same model!) to create something like a mixture of experts super model for your iOS or Mac app. The one thing it was missing was an implementation of an actual AI model, but that would come about a week later. Figuring out how tasks and workflows worked was on my mind, and they remain two of the core features of the project today.
Features of Aurora Toolkit 1.0
- Modular Architecture: Organized into distinct modules (Core, LLM, ML, Task Library) for flexibility
- Declarative Workflows: Define workflows declaratively, similar to SwiftUI, for clear task orchestration
- Multi-LLM Support: Unified interface for Anthropic, Google, OpenAI, Ollama, and Apple Foundation Models
- On-device ML: Native support for classification, embeddings, semantic search, and more using Core ML
- Intelligent Routing: Domain-based routing to automatically select the best LLM service for each request
- Convenience APIs: Simplified top-level APIs (LLM.send(), ML.classify(), etc.) for common operations
Examples
Aurora Toolkit also includes several comprehensive examples demonstrating multiple use cases.
In one example, Siri-style routing is used, where clearly public queries are routed to powerful network LLM models like Anthropic or Google, but obviously and potentially private queries stay on device.
In other examples, workflow tasks are used to fetch information from the Internet like news articles or App Store reviews, then processed, summarized, and packaged into more useful information, insights, and formats using AI.
There is even an example of two different AI models having a productive conversation about a topic – something nobody wants to listen to, but a simple and cool demonstration nevertheless.
What’s Next
My initial idea that ultimately led to this project was that I wanted something to watch the git folder I was working in, and automatically generating commit message details any time the folder changed. I was working on my other project, Hamster Soup, and when I got ready to do a commit, I would copy the diffs and paste them into ChatGPT and ask for a concise git description to use for my commit. I figured I could make a widget that did that for me, and I’d just click it and it would copy the message to the clipboard. Somehow it became all this, waves hands around.
I still have yet to create that widget.
In the meantime, I have another project I’ve been working on, but I also plan to start a series of articles about Aurora Toolkit, how to use it, and what you can build with it. Look for that sooner rather than later, and who knows, maybe one of those articles will be how I built that git commit widget with full code included.
Compute!’s Gazette, the magazine whose type-in programs is how I actually learned to program back in the 80’s, is back after all. Maybe I’ll channel my childhood and do that article Gazette-style. :)