Canonical reference for all Osaurus features, their status, and documentation.
This file is the source of truth. When adding or modifying features, update this inventory to keep documentation in sync.
| Feature | Status | README Section | Documentation | Code Location |
|---|---|---|---|---|
| Local LLM Server (MLX) | Stable | "Key Features" | OpenAI_API_GUIDE.md | Services/MLXService.swift, Services/ModelRuntime/ |
| Remote Providers | Stable | "Key Features" | REMOTE_PROVIDERS.md | Services/RemoteProviderManager.swift, Services/RemoteProviderService.swift |
| Remote MCP Providers | Stable | "Key Features" | REMOTE_MCP_PROVIDERS.md | Services/MCPProviderManager.swift, Tools/MCPProviderTool.swift |
| MCP Server | Stable | "MCP Server" | (in README) | Networking/OsaurusServer.swift, Services/MCPServerManager.swift |
| Tools & Plugins | Stable | "Tools & Plugins" | PLUGIN_AUTHORING.md | Tools/, Managers/PluginManager.swift |
| Developer Tools: Insights | Stable | "Developer Tools" | DEVELOPER_TOOLS.md | Views/InsightsView.swift, Services/InsightsService.swift |
| Developer Tools: Server Explorer | Stable | "Developer Tools" | DEVELOPER_TOOLS.md | Views/ServerView.swift |
| Apple Foundation Models | macOS 26+ | "What is Osaurus?" | (in README) | Services/FoundationModelService.swift |
| Menu Bar Chat | Stable | "Highlights" | (in README) | Views/ChatOverlayView.swift |
| Model Manager | Stable | "Highlights" | (in README) | Views/ModelDownloadView.swift, Services/HuggingFaceService.swift |
| Shared Configuration | Stable | - | SHARED_CONFIGURATION_GUIDE.md | Services/SharedConfigurationService.swift |
| OpenAI API Compatibility | Stable | "API Endpoints" | OpenAI_API_GUIDE.md | Networking/HTTPHandler.swift, Models/OpenAIAPI.swift |
| Ollama API Compatibility | Stable | "API Endpoints" | (in README) | Networking/HTTPHandler.swift |
| CLI | Stable | "CLI Reference" | (in README) | Packages/OsaurusCLI/ |
┌─────────────────────────────────────────────────────────────────────────┐
│ Osaurus App │
├─────────────────────────────────────────────────────────────────────────┤
│ Views Layer │
│ ├── ContentView (Menu Bar) │
│ ├── ChatOverlayView (Global Hotkey Chat) │
│ ├── ManagementView │
│ │ ├── ModelDownloadView (Models) │
│ │ ├── RemoteProvidersView (Providers) │
│ │ ├── ToolsManagerView (Tools) │
│ │ ├── InsightsView (Developer: Insights) │
│ │ ├── ServerView (Developer: Server Explorer) │
│ │ └── ConfigurationView (Settings) │
├─────────────────────────────────────────────────────────────────────────┤
│ Services Layer │
│ ├── Inference │
│ │ ├── MLXService (Local MLX models) │
│ │ ├── FoundationModelService (Apple Foundation Models) │
│ │ ├── RemoteProviderManager (Remote OpenAI-compatible APIs) │
│ │ └── RemoteProviderService (Per-provider connection handling) │
│ ├── MCP │
│ │ ├── MCPServerManager (Osaurus as MCP server) │
│ │ └── MCPProviderManager (Remote MCP client connections) │
│ ├── Tools │
│ │ ├── ToolRegistry │
│ │ ├── PluginManager │
│ │ └── MCPProviderTool (Wrapped remote MCP tools) │
│ └── Utilities │
│ ├── InsightsService (Request logging) │
│ ├── HuggingFaceService (Model downloads) │
│ └── SharedConfigurationService │
├─────────────────────────────────────────────────────────────────────────┤
│ Networking Layer │
│ ├── OsaurusServer (HTTP + MCP server) │
│ ├── Router (Request routing) │
│ └── HTTPHandler (OpenAI/Ollama API handlers) │
├─────────────────────────────────────────────────────────────────────────┤
│ CLI (OsaurusCLI Package) │
│ └── Commands: serve, stop, status, ui, list, run, mcp, tools │
└─────────────────────────────────────────────────────────────────────────┘
Purpose: Run language models locally with optimized Apple Silicon inference.
Components:
Services/MLXService.swift— MLX model loading and managementServices/ModelRuntime/— Generation engine, streaming, tool detectionServices/ModelService.swift— Model lifecycle management
Configuration:
- Model storage:
~/MLXModels(override withOSU_MODELS_DIR) - Default port:
1337(override withOSU_PORT)
Purpose: Connect to OpenAI-compatible APIs to access cloud models.
Components:
Models/RemoteProviderConfiguration.swift— Provider config modelServices/RemoteProviderManager.swift— Connection managementServices/RemoteProviderService.swift— Per-provider API clientServices/RemoteProviderKeychain.swift— Secure credential storageViews/RemoteProvidersView.swift— UI for managing providersViews/Components/RemoteProviderEditSheet.swift— Add/edit provider UI
Presets:
| Preset | Host | Default Port | Auth |
|---|---|---|---|
| OpenAI | api.openai.com | 443 (HTTPS) | API Key |
| OpenRouter | openrouter.ai | 443 (HTTPS) | API Key |
| Ollama | localhost | 11434 | None |
| LM Studio | localhost | 1234 | None |
| Custom | (user-defined) | (user-defined) | Optional |
Purpose: Connect to external MCP servers and aggregate their tools.
Components:
Models/MCPProviderConfiguration.swift— Provider config modelServices/MCPProviderManager.swift— Connection and tool discoveryServices/MCPProviderKeychain.swift— Secure token storageTools/MCPProviderTool.swift— Wrapper for remote MCP tools
Features:
- Automatic tool discovery on connect
- Configurable discovery and execution timeouts
- Tool namespacing (prefixed with provider name)
- Streaming support (optional)
Purpose: Expose Osaurus tools to AI agents via Model Context Protocol.
Components:
Services/MCPServerManager.swift— MCP server lifecycleNetworking/OsaurusServer.swift— HTTP MCP endpointsTools/ToolRegistry.swift— Tool registration and lookup
Endpoints:
| Endpoint | Method | Description |
|---|---|---|
/mcp/health |
GET | Health check |
/mcp/tools |
GET | List available tools |
/mcp/call |
POST | Execute a tool |
Purpose: Built-in debugging and development utilities.
Components:
Services/InsightsService.swift— Request/response loggingViews/InsightsView.swift— Insights UI
Features:
- Real-time request logging
- Filter by method (GET/POST) and source (Chat UI/HTTP API)
- Aggregate stats: requests, success rate, avg latency, errors
- Inference metrics: tokens, speed, model, finish reason
Components:
Views/ServerView.swift— Server explorer UI
Features:
- Live server status
- Interactive endpoint catalog
- Test endpoints with editable payloads
- Formatted response viewer
Purpose: Extend Osaurus with custom functionality.
Components:
Tools/OsaurusTool.swift— Tool protocolTools/ExternalTool.swift— External plugin wrapperTools/ToolRegistry.swift— Tool registrationTools/SchemaValidator.swift— JSON schema validationManagers/PluginManager.swift— Plugin lifecycle
Plugin Types:
- System plugins — Built-in tools (filesystem, browser, git, etc.)
- External plugins — Compiled binaries communicating via stdin/stdout
- MCP provider tools — Tools from remote MCP servers
| Document | Purpose |
|---|---|
| README.md | Project overview, quick start, feature highlights |
| FEATURES.md | Feature inventory and architecture (this file) |
| REMOTE_PROVIDERS.md | Remote provider setup and configuration |
| REMOTE_MCP_PROVIDERS.md | Remote MCP provider setup |
| DEVELOPER_TOOLS.md | Insights and Server Explorer guide |
| PLUGIN_AUTHORING.md | Creating custom plugins |
| OpenAI_API_GUIDE.md | API usage, tool calling, streaming |
| SHARED_CONFIGURATION_GUIDE.md | Shared configuration for teams |
| CONTRIBUTING.md | Contribution guidelines |
| SECURITY.md | Security policy |
| CODE_OF_CONDUCT.md | Community standards |
| SUPPORT.md | Getting help |
When adding a new feature:
- Add a row to the Feature Matrix with status, README section, documentation, and code location
- Add a Feature Details section if the feature is significant
- Update the Architecture Overview if the feature adds new components
- Update the Documentation Index if new docs are created
- Update the README if the feature should be highlighted
When modifying an existing feature:
- Update the relevant row in the Feature Matrix
- Update any affected documentation files
- Note breaking changes in the feature's documentation
| Status | Meaning |
|---|---|
| Stable | Production-ready, fully documented |
| Beta | Functional but API may change |
| Experimental | Work in progress, use with caution |
| Deprecated | Scheduled for removal, migrate away |
| macOS 26+ | Requires macOS 26 (Tahoe) or later |