How uzairansaruzi/hermex works
Hermex is a native iPhone control client for a self-hosted Hermes agent; the server performs the computation and retains the agent’s data. The principal workflow is connecting and signing in, selecting or resuming a session, sending a configured message, then viewing its streamed response and tool activity. Other documented branches cover scheduled tasks, skills, workspace and Git browsing, memory and usage insights, and direct-Hermes Bot Mode. The graph uses README capabilities and paths in the tree; unsampled implementation details and wiring are not asserted.
Main entry points: ChatViewModel.swift Chat orchestration · SessionListView.swift Session browser · APIClient.swift Server API · APIClient+Chat.swift Chat endpoints
Components 27
App and access
- App shell
HermesMobile/ContentView.swift - Sign-in
HermesMobile/Auth/AuthManager.swift - Connection setup
HermesMobile/Features/Onboarding/OnboardingView.swift - Providers and models
HermesMobile/Features/Settings/ProvidersView.swift - Optional push
HermesMobile/Push/PushNotificationRouter.swift - Shared content
HermesShareExtension/ShareViewController.swift
Sessions and chat
- Session browser
HermesMobile/Features/SessionList/SessionListView.swift - Session actions
HermesMobile/Features/SessionList/SessionListViewModel.swift - Chat screen
HermesMobile/Features/Chat/ChatView.swift - Chat orchestration
HermesMobile/Features/Chat/ChatViewModel.swift - Message composer
HermesMobile/Features/Chat/ChatComposerView.swift - Stream handling
HermesMobile/Features/Chat/ChatStreamCoordinator.swift
Agent features
- Scheduled tasks
HermesMobile/Features/Tasks/TasksView.swift - Skills browser
HermesMobile/Features/Skills/SkillsView.swift - Memory panel
HermesMobile/Features/Memory/MemoryView.swift - Usage insights
HermesMobile/Features/Insights/InsightsView.swift - Bot Mode
HermesMobile/Features/Bots/BotChatView.swift
Workspace tools
- Workspace browser
HermesMobile/Features/Workspace/FileBrowserView.swift - Git workspace
HermesMobile/Features/Workspace/GitWorkspaceView.swift
Network and state
- Offline cache
HermesMobile/Persistence/CacheStore.swift - Server API
HermesMobile/Networking/APIClient.swift - Chat endpoints
HermesMobile/Networking/APIClient+Chat.swift - Session endpoints
HermesMobile/Networking/APIClient+Sessions.swift - Bot connection
HermesMobile/Networking/Bots/BotClient.swift - Workspace endpoints
HermesMobile/Networking/APIClient+Workspace.swift
Other components
- iPhone user
- Hermes server
Connections 32
- iPhone user → App shell: uses
- App shell → Connection setup: starts setup
- Connection setup → Sign-in: configures access
- iPhone user → Session browser: selects session
- Session browser → Session actions: requests actions
- Session actions → Session endpoints: loads or mutates
- Session endpoints → Server API: sends requests
- Server API → Hermes server: calls
- Session browser → Chat screen: opens conversation
- iPhone user → Message composer: writes message
- Chat screen → Chat orchestration: presents state
- Message composer → Chat orchestration: submits message
- Chat orchestration → Chat endpoints: sends and steers
- Chat endpoints → Server API: sends requests
- Chat orchestration → Stream handling: tracks response
- Stream handling → Chat endpoints: receives events
- Chat orchestration → Offline cache: caches history
- Session browser → Offline cache: reads offline
- iPhone user → Scheduled tasks: manages schedules
- iPhone user → Skills browser: browses skills
- iPhone user → Memory panel: reads memory
- iPhone user → Usage insights: views usage
- iPhone user → Bot Mode: opens Bot Mode
- Bot Mode → Bot connection: connects directly
- Bot connection → Hermes server: connects
- iPhone user → Workspace browser: browses files
- iPhone user → Git workspace: reviews changes
- Workspace browser → Workspace endpoints: requests files
- Git workspace → Server API: uses server API
- iPhone user → Providers and models: chooses providers
- iPhone user → Optional push: taps notification
- iPhone user → Shared content: shares content