A SwiftUI iOS App built for the OpenAI Assistants API
OpenAssistant brings the full power of OpenAI's Assistants API directly to your iPhone. Built entirely with SwiftUI and the Combine framework, OpenAssistant provides comprehensive assistant management, vector stores, file management, and real-time conversations in a native iOS experience, all using your own OpenAI API Key.
OpenAssistant comes with a full SwiftUI interface with reactive Combine data flows. It unlocks the full spectrum of the OpenAI Assistants API, empowering you to orchestrate dynamic conversations, manage intelligent vector stores, and perform advanced file ingestion and processing — all within a sleek iPhone app.
Built with a robust Model-View-ViewModel pattern that ensures clean separation of concerns, exceptional testability, and maintainable code.
Harnesses the full power of the Combine framework to deliver real-time UI updates, seamless async operations, and responsive user interactions throughout the application lifecycle.
Organized into specialized modules including API services, chat functionality, assistant management, and vector store operations for maximum code reusability and maintainability.
Crafted exclusively with SwiftUI to deliver a truly native iOS experience. No dependencies outside of the Apple ecosystem.
Full lifecycle management of OpenAI Assistants with advanced configuration options including GPT-4o, o-series models, fine-tuned temperature and reasoning effort controls, and custom user-provided instruction sets.
Enable and configure AI tools including Code Interpreter for coding queries and File Search for document-based knowledge retrieval with advanced vector store integration.
Enterprise-grade vector store operations with full CRUD functionality. Create knowledge bases from documents and associate them with assistants for intelligent, context-aware responses.
Upload and process multiple file formats (PDF, TXT, DOCX, and more) with sophisticated chunking strategies. Advanced metadata management and seamless vector store integration.
Engage in sophisticated conversations with rich Markdown rendering, persistent message history, and intelligent thread management. Features loading states and real-time conversation updates.
Secure API key management using iOS secure storage, with robust local data persistence and privacy-focused design principles throughout the application.
Built using the Model-View-ViewModel (MVVM) pattern, the application provides a scalable and maintainable foundation for complex SwiftUI development.
Declarative UI built with SwiftUI components
Manages state and coordinates between View and Model
Handles external API calls and data persistence
Codable structs mirroring OpenAI API entities
Understanding how data flows through the application and how users interact with different features.
The application starts with OpenAssistantApp
, which initializes environment objects and checks for API key presence.
@StateObject private var assistantManagerViewModel = AssistantManagerViewModel()
The app securely stores the OpenAI API key using @AppStorage
and prompts for setup if missing.
@AppStorage("OpenAI_API_Key") private var apiKey: String = ""
MainTabView
provides tab-based navigation between Assistants, Management, Vector Stores, and Settings.
TabView { ForEach(Tab.allCases, id: \.self) { tab in ... } }
ViewModels interact with OpenAIService
to fetch assistants, create vector stores, and manage chat threads.
assistantManagerViewModel.fetchAssistants()
The app uses NotificationCenter
and Combine publishers for decoupled, real-time UI updates.
NotificationCenter.default.post(name: .settingsUpdated, object: nil)
Built with Swift's modern concurrency model using async/await and Combine publishers for reactive programming.
Local message storage with MessageStore and secure API key persistence using @AppStorage.
Comprehensive OpenAI API integration with dedicated service extensions for different endpoints.
Support for Light, Dark, and System appearance modes with responsive design principles.