How ggml-org/llamabarn works
Llama is a macOS menu-bar application for installing and running local GGUF language models through llama.cpp. The principal workflow is to discover or resolve a model, download it into the shared Hugging Face cache, register it as installed, and serve it locally for the built-in WebUI or API clients. The menu also manages server and model actions, while settings control server behavior, network exposure, and model overrides. The graph uses README statements and indexed or excerpted references; unsampled implementation details are not assumed.
Main entry points: LlamaServer.swift llama.cpp Server · ModelManager.swift Model Manager · MenuController.swift Menu Controller · HFRepoResolver.swift Hub Repo Resolver
Components 22
Menu Bar App
- Menu Controller
Llama/Menu/MenuController.swift - Model Actions
Llama/Menu/ModelActionHandler.swift
Model Discovery
- Featured Catalog
Llama/Catalog/Catalog.swift - Model Records
Llama/Models/Model.swift - Model ID Parser
Llama/Models/ModelIdParser.swift
Model Installation
- Deep Link Handler
Llama/Deeplinks/DeeplinkHandler.swift - Hub Repo Resolver
Llama/Deeplinks/HFRepoResolver.swift - Hub Metadata
Llama/HF/HFRepoParser.swift - GGUF Quantization
Llama/HF/GGUFQuant.swift - Model Manager
Llama/Downloads/ModelManager.swift - Download Transfer
Llama/Downloads/ModelManager+Transfer.swift - HF Cache
Llama/HF/HFCache.swift
Local Runtime
- CLI Installer
Llama/Engine/LlamaInstallManager.swift - llama.cpp Server
Llama/Server/LlamaServer.swift - Server API Client
Llama/Server/LlamaServerAPI.swift - WebUI and API Clients
Settings and Input
- Model Overrides
Llama/Server/UserModelOverrides.swift - User Settings
Llama/Settings/UserSettings.swift - Settings Window
Llama/Settings/SettingsWindow.swift - Global Prompt Input
Llama/GlobalInput/GlobalInputController.swift - Network Exposure Guard
Llama/Server/NetworkExposureGuard.swift
Other components
- Mac User
Connections 35
- Mac User → Menu Controller: opens menu
Llama/Menu/MenuController.swift - Menu Controller → Featured Catalog: fetches picks
Llama/Menu/MenuController.swift - Menu Controller → Model Manager: shows models
Llama/Menu/MenuController.swift - Menu Controller → llama.cpp Server: shows status
Llama/Menu/MenuController.swift - Menu Controller → CLI Installer: shows setup
Llama/Menu/MenuController.swift - Menu Controller → Model Actions: delegates actions
Llama/Menu/MenuController.swift - Model Actions → Model Manager: manages models
Llama/Menu/ModelActionHandler.swift - Model Actions → llama.cpp Server: loads models
Llama/Menu/ModelActionHandler.swift - Featured Catalog → Model Records: builds suggestions
Llama/Catalog/Catalog.swift - Mac User → Deep Link Handler: opens model link
Llama/Deeplinks/DeeplinkHandler.swift - Deep Link Handler → Hub Repo Resolver: resolves repository
Llama/Deeplinks/DeeplinkHandler.swift - Deep Link Handler → Model Manager: starts download
Llama/Deeplinks/DeeplinkHandler.swift - Hub Repo Resolver → Hub Metadata: parses repository
Llama/Deeplinks/HFRepoResolver.swift - Hub Repo Resolver → GGUF Quantization: selects quant
Llama/Deeplinks/HFRepoResolver.swift - Hub Repo Resolver → Model Records: creates model
Llama/Deeplinks/HFRepoResolver.swift - Model Manager → Download Transfer: transfers files
Llama/Downloads/ModelManager.swift - Download Transfer → HF Cache: writes cache
Llama/Downloads/ModelManager+Transfer.swift - Model Manager → HF Cache: scans models
Llama/Downloads/ModelManager.swift - Model Manager → Model Records: tracks installed
Llama/Downloads/ModelManager.swift - Model Manager → llama.cpp Server: syncs model list
Llama/Downloads/ModelManager.swift - CLI Installer → llama.cpp Server: starts when ready
Llama/Engine/LlamaInstallManager.swift - llama.cpp Server → Model Manager: reads model state
Llama/Server/LlamaServer.swift - llama.cpp Server → Model Overrides: loads overrides
Llama/Server/LlamaServer.swift - llama.cpp Server → User Settings: reads preferences
Llama/Server/LlamaServer.swift - llama.cpp Server → Server API Client: uses API client
Llama/Server/LlamaServer.swift - WebUI and API Clients → llama.cpp Server: requests models
- llama.cpp Server → WebUI and API Clients: serves completions
- Mac User → Settings Window: configures app
Llama/Settings/SettingsWindow.swift - Settings Window → User Settings: edits preferences
Llama/Settings/SettingsWindow.swift - Settings Window → llama.cpp Server: configures server
Llama/Settings/SettingsWindow.swift - Settings Window → Network Exposure Guard: controls exposure
Llama/Settings/SettingsWindow.swift - Mac User → Global Prompt Input: captures prompt
Llama/GlobalInput/GlobalInputController.swift - Global Prompt Input → Model Manager: selects installed model
Llama/GlobalInput/GlobalInputController.swift - Global Prompt Input → llama.cpp Server: opens WebUI
Llama/GlobalInput/GlobalInputController.swift - Global Prompt Input → User Settings: records model use
Llama/GlobalInput/GlobalInputController.swift