How amiantos/inneal works
Inneal is a native SwiftUI roleplay chat client for AI Horde. Users set up a persona, create or import character cards, open single- or multi-character chats, and generate replies; chat messages support alternate responses. The README also documents Auto Mode and CloudKit syncing. The graph follows the app’s shown navigation and generation calls; some broader UI and persistence behavior is represented from documented capabilities and the source index, since those implementations were not excerpted.
Main entry points: ChatsView.swift Chat List · ChatView.swift Chat View · CharactersView.swift Character Library · SwiftDataModels.swift Chat Data Models
Components 20
App Navigation
- App Entry
Inneal/InnealApp.swift - Chat List
Inneal/Views/Chats/ChatsView.swift - Introduction Setup
Inneal/Views/IntroductionView.swift - Preferences
Inneal/Models/Preferences.swift - User Settings
Inneal/Views/Settings/UserSettingsView.swift
Character Management
- Character Library
Inneal/Views/Characters/CharactersView.swift - Character Editor
Inneal/Views/Character/CharacterView.swift - Card Import
Inneal/Views/Characters/ImportCharacterView.swift - Tavern Card Models
Inneal/Models/TavernModels.swift
Chat Experience
- Create Chat
Inneal/Views/Chats/CreateChatView.swift - Chat View
Inneal/Views/Chat/ChatView.swift - Chat Settings
Inneal/Views/Chat/ChatSettingsView.swift - Message Presentation
Inneal/Views/Chat/MessageCell.swift - Chat Generation
Inneal/Views/Chat/ViewModel.swift
AI Services
- Horde Client
Inneal/External APIs/Horde API/HordeAPI.swift
Domain Data
- Chat Data Models
Inneal/Models/SwiftDataModels.swift - SwiftData Store
Inneal/InnealApp.swift
Other components
- User
- AI Horde
- CloudKit Sync
Connections 23
- User → App Entry: opens
Inneal/InnealApp.swift - App Entry → Chat List: shows
Inneal/InnealApp.swift - Chat List → Chat View: selects chat
Inneal/Views/Chats/ChatsView.swift - Chat List → Create Chat: creates chat
Inneal/Views/Chats/ChatsView.swift - Chat List → Character Library: opens library
Inneal/Views/Chats/ChatsView.swift - Chat List → User Settings: opens settings
Inneal/Views/Chats/ChatsView.swift - Chat List → Introduction Setup: presents setup
Inneal/Views/Chats/ChatsView.swift - Introduction Setup → Chat Data Models: creates chats
Inneal/Views/IntroductionView.swift - Introduction Setup → Preferences: reads setup state
Inneal/Views/IntroductionView.swift - Character Library → Character Editor: edits character
Inneal/Views/Characters/CharactersView.swift - Character Library → Card Import: imports cards
Inneal/Views/Characters/CharactersView.swift - Character Library → Create Chat: starts chat
Inneal/Views/Characters/CharactersView.swift - Card Import → Tavern Card Models: decodes card
- Create Chat → Chat Data Models: creates chat
- Chat View → Chat Generation: requests reply
Inneal/Views/Chat/ChatView.swift - Chat View → Message Presentation: renders messages
Inneal/Views/Chat/ChatView.swift - Chat View → Chat Settings: opens settings
Inneal/Views/Chat/ChatView.swift - Chat Generation → Horde Client: submits and polls
Inneal/Views/Chat/ViewModel.swift - Horde Client → AI Horde: sends requests
Inneal/External APIs/Horde API/HordeAPI.swift - Chat View → Chat Data Models: updates messages
- App Entry → SwiftData Store: configures container
Inneal/InnealApp.swift - SwiftData Store → Chat Data Models: stores records
Inneal/InnealApp.swift - SwiftData Store → CloudKit Sync: syncs records
README.md