Jan is a privacy-first, open-source alternative to ChatGPT that runs large language models (LLMs) entirely on your local machine using llama.cpp and Tauri. It’s designed for developers, researchers, and privacy-conscious users who want full control over their AI interactions without relying on cloud APIs. Jan supports both local model inference and hybrid cloud integrations, offering a self-hosted AI experience with no data leakage.
Built with TypeScript, Tauri, and Rust, Jan provides a native desktop app for Windows, macOS, and Linux. It integrates with Hugging Face to download models, exposes an OpenAI-compatible API at localhost:1337, and supports connectors for productivity tools like Notion, Gmail, and Google Drive. Deployment is flexible—download prebuilt binaries or build from source using Yarn and Make.
What You Get
- Local LLM Execution - Run models like Llama, Qwen, Gemma, and DeepSeek entirely offline using llama.cpp, with no data sent to external servers.
- OpenAI-Compatible API - Expose a local API at localhost:1337 to integrate Jan with other tools, scripts, or apps using standard OpenAI API calls.
- Cloud Model Integration - Connect to GPT-4, Claude, Gemini, Mistral, and other models via OpenAI, Anthropic, and Groq APIs without leaving the app.
- Model Library from Hugging Face - Browse and download 120+ open models directly from Hugging Face within the Jan interface.
- Productivity Connectors - Integrate with Gmail, Google Drive, Notion, Slack, Figma, YouTube, Jira, and Amazon to pull context and act on your data.
- Cross-Platform Desktop App - Native apps for Windows, macOS (including Apple Silicon), and Linux via Tauri, with AppImage, deb, DMG, and Microsoft Store distributions.
- Context Memory (Coming Soon) - Future feature to retain user preferences, conversation history, and task context across sessions for personalized responses.
- Custom Assistants - Create and save specialized AI assistants tailored to specific tasks like design, research, or coding.
Common Use Cases
- Running a private AI assistant for sensitive research - A journalist uses Jan to analyze confidential documents with Llama 3 without uploading data to cloud providers.
- Integrating local LLMs into development workflows - A developer uses Jan’s OpenAI-compatible API to power a custom code assistant inside their IDE without cloud dependencies.
- Building AI-powered productivity tools - A knowledge worker connects Jan to Notion and Google Drive to auto-summarize meeting notes and generate project briefs.
- Educational use with full data control - A university professor runs Qwen locally to demonstrate LLM behavior in class without exposing student data to third parties.
Under The Hood
Architecture
- Modular monorepo structure with clear separation between core, web-app, and extensions, enabling isolated development and distributed packaging of extensions as self-contained assets
- Plugin-based architecture using BaseExtension subclasses and global dependency injection, with event-driven communication via centralized event system to decouple core logic from extension behavior
- Singleton patterns for shared state management in ModelManager and MCPExtension, backed by type-safe interfaces that enforce consistent contracts across extensions
- Tauri-based cross-platform packaging with Rust backend, dynamically loading WebAssembly-compatible extensions at runtime from pre-installed .tgz files
- OpenAI-compatible API endpoints providing standardized abstraction for model inference, allowing extensions to integrate without exposing low-level HTTP details
Tech Stack
- Node.js backend with Yarn workspaces managing a unified monorepo for core, web interface, and extensions
- Tauri framework with Rust backend and React frontend enabling high-performance desktop and mobile applications
- React 19 with Next.js and Nextra for a rich web interface and documentation UI, styled with Tailwind CSS
- Vitest as the primary testing framework with comprehensive coverage across UI, hooks, and core modules
- Rust toolchain integrated for system-level operations and cross-compilation to iOS, Android, macOS, and Linux
- Build automation via Makefile and custom Node.js scripts for asset handling, binary downloads, and platform-specific packaging
Code Quality
- Extensive test coverage with Vitest and React Testing Library, ensuring robust assertions on state, props, and user interactions
- Strong TypeScript type safety with precise interfaces and type guards, especially in file system abstractions and model filtering
- Clean separation of concerns with well-defined boundaries between UI, core APIs, and test runners
- Consistent naming conventions and component patterns, with descriptive props and well-structured Arrange-Act-Assert test suites
- Robust error handling through defensive programming, though relying on native error types rather than custom exceptions
- Comprehensive linting and test automation, reflecting mature development practices and CI-ready workflows
What Makes It Unique
- Native GGUF model loading and validation embedded within the app, eliminating external dependencies for local inference
- Bi-directional extension system with typed APIs and event hooks enabling runtime injection of custom inference logic
- Unified file system abstraction that harmonizes cross-platform file operations, including GGUF discovery, across web and desktop environments
- Integrated model downloading, verification, and installation workflows via Hub, removing manual file management
- Real-time hardware-aware model loading that adapts inference to CPU/GPU utilization dynamically
- Community-driven, local-first AI architecture designed for accessibility in low-resource and non-Silicon Valley environments