Documentation
Architecture

Architecture

Overview

  • Jan has a modular architecture built mainly on top of its modules.
  • Jan uses a local file-based approach for data persistence.
  • Jan provides an Electron-based Desktop UI (opens in a new tab).
  • Jan provides an embeddable inference engine, written in C++, called Nitro (opens in a new tab).

Extensions

Jan has an Extensions API inspired by VSCode. Most of Jan's core services are built as extensions.

Jan supports the following OpenAI-compatible extensions:

Jan ModuleDescriptionAPI Docs
ChatInference/chats
ModelsModels/models
AssistantsApps/assistants
ThreadsConversations/threads
MessagesMessages/messages

Modules

Modules are low-level system services. It is similar to OS kernel modules. Modules provide abstractions to basic, device-level functionality like working with the filesystem, device system, databases, AI inference engines, etc.

Jan follows the dependency inversion principle (opens in a new tab) such that modules expose the interfaces that extensions can then implement.