How sshdw/nexora works
Nexora is a local-first Tauri desktop AI workspace: users manage conversations and prompts, choose providers/models, attach local files, and send chat or agent requests; results and run history persist locally. The graph follows the documented React-to-IPC-to-application layering, then highlights provider execution, agent control, and SQLite-backed features. Source excerpts confirm selected UI and agent/data behaviors; other feature links reflect README architecture and exact tree paths, with uncertain internal calls omitted.
Main entry points: commands/mod.rs Tauri commands · tauri.ts IPC wrappers · repository/mod.rs SQLite repositories · App.tsx App shell
Components 25
Desktop interface
- App shell
src/App.tsx - Conversation view
src/components/ConversationView.tsx - Settings and providers
src/components/SettingsView.tsx - Prompt library
src/components/PromptLibraryView.tsx - Run context
src/components/ContextPanel.tsx - Data hooks
src/lib/useConversation.ts - IPC wrappers
src/lib/tauri.ts
Application services
- Tauri commands
src-tauri/src/commands/mod.rs - Conversation service
src-tauri/src/application/conversations.rs - Provider execution
src-tauri/src/application/execution.rs - Prompt management
src-tauri/src/application/prompts.rs - Offline search
src-tauri/src/application/search.rs - Import and settings
src-tauri/src/application/data_management.rs
Agent runtime
- Run coordinator
src-tauri/src/application/agent/service.rs - Agent runner
src-tauri/src/application/agent/runner.rs - Staged pipeline
src-tauri/src/application/agent/pipeline.rs - Tools and approvals
src-tauri/src/application/agent/tools/executor.rs - Workspace access
src-tauri/src/application/workspace.rs
Persistence and providers
- SQLite database
src-tauri/src/infrastructure/database.rs - SQLite repositories
src-tauri/src/infrastructure/repository/mod.rs - Provider clients
src-tauri/src/infrastructure/providers/mod.rs
Other components
- User
- AI providers
- OS keyring
- Local file picker
Connections 35
- User → App shell: uses
- App shell → Conversation view: shows
- App shell → Settings and providers: opens
- App shell → Prompt library: opens
- Conversation view → Data hooks: loads data
- Settings and providers → Data hooks: manages settings
- Prompt library → Data hooks: manages prompts
- Run context → IPC wrappers: requests stats
- Data hooks → IPC wrappers: invokes
- IPC wrappers → Tauri commands: IPC calls
- Tauri commands → Conversation service: delegates
- Tauri commands → Provider execution: executes requests
- Tauri commands → Prompt management: delegates
- Tauri commands → Offline search: searches
- Tauri commands → Import and settings: imports and exports
- Tauri commands → Run coordinator: controls runs
- Conversation service → SQLite repositories: reads and writes
- Prompt management → SQLite repositories: reads and writes
- Offline search → SQLite repositories: queries index
- Import and settings → SQLite repositories: manages records
- SQLite repositories → SQLite database: uses
- Provider execution → Provider clients: executes through
- Provider clients → AI providers: sends requests
- Provider execution → OS keyring: gets credentials
- Run coordinator → Agent runner: starts run
- Run coordinator → SQLite repositories: persists runs
- Agent runner → Staged pipeline: advances stages
- Agent runner → Tools and approvals: dispatches tools
- Agent runner → Provider execution: requests model
- Tools and approvals → Workspace access: accesses files
- Tools and approvals → User: requests approval
- Run coordinator → IPC wrappers: streams run events
- Conversation view → Local file picker: selects attachments
- Conversation view → IPC wrappers: attaches files
- IPC wrappers → Tauri commands: attachment IPC