Offeline is a local-first AI desktop application that runs entirely on your machine. Have private, secure conversations with open-source AI models using Ollama or llama.cpp - no cloud, no tracking, just you and AI.
This is the electron build of offeline, see the web version here web-version
Offeline.mp4
- Multiple AI Backends - Choose between Ollama and llama.cpp for model inference
- 100% Local & Private - All conversations and inference happen on your machine
- Export Conversations - Save your chats as JSON or Markdown
- Easy Model Selection - Switch between different open-source models with one click
- Lightning Fast - Near-instant responses with local inference
- Dark Mode - Beautiful dark/light themes
- Keyboard Shortcuts - Power user features throughout
- Markdown Support - Rich formatting in messages with code highlighting
- Electron - Cross-platform desktop app
- React 18 - UI framework with TypeScript
- Monaco Editor - VSCode-powered code highlighting
- Ollama - Easy model management and inference
- llama.cpp - High-performance CPU/GPU inference
- Tailwind CSS - Styling
- Zustand - State management
- Node.js 18+ and npm
- Choose one or both:
- Clone the repository:
git clone https://github.com/iBz-04/offeline_app.git
cd offeline- Install dependencies:
npm installImportant: You must use npm. Other package managers are not currently supported.
- Install a backend (choose one):
Option A: Ollama (Recommended for beginners)
# macOS/Linux
curl -fsSL https://ollama.ai/install.sh | sh
# Windows: Download from https://ollama.aiThen pull a model:
ollama pull llama3.2Option B: llama.cpp
# Follow instructions at https://github.com/ggerganov/llama.cpp
# Download GGUF models to a folder- Run in development mode:
npm run dev- Build for production:
npm run build
npm run dist- Start a Conversation - Click "New Chat" or press
Cmd/Ctrl+N - Select a Model - Choose from available models in the sidebar
- Start Chatting - Type your message and press
Cmd/Ctrl+Enterto send - Export - Save conversations as JSON or Markdown from the menu
offeline/
├── src/
│ ├── main/ # Electron main process
│ │ ├── index.ts # Main entry point
│ │ ├── ollama.ts # Ollama backend integration
│ │ └── llamacpp.ts # llama.cpp integration
│ ├── renderer/ # React app
│ │ ├── components/ # UI components
│ │ ├── views/ # Page views
│ │ ├── stores/ # Zustand stores
│ │ ├── services/ # Backend services
│ │ └── utils/ # Utilities
│ └── preload/ # Preload scripts
├── dist/ # Compiled output
└── release/ # Packaged apps
npm run dev- Start development server with hot reloadnpm run build- Build for productionnpm run dist- Package the app for distributionnpm run test- Run tests
Cmd/Ctrl+N- New conversationCmd/Ctrl+Enter- Send messageCmd/Ctrl+M- Change modelCmd/Ctrl+E- Export conversationCmd/Ctrl+,- Open settingsCmd/Ctrl+K- Command paletteCmd/Ctrl+B- Toggle sidebar
Works with any model supported by your chosen backend:
Ollama Models:
- Llama 3.2, 3.1, 3
- Mistral & Mixtral
- Phi-3
- Gemma 2
- Qwen
- And many more at ollama.ai/library
llama.cpp Models:
- Any GGUF format model
- Optimized for CPU and GPU inference
- 100% Local - No data leaves your machine
- No Telemetry - We don't track anything
- Open Source - Audit the code yourself
- Your Data - All conversations stored locally
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - see LICENSE file for details
Built on the foundation of modern web technologies and the amazing open-source AI community.
- Ollama team for making local AI accessible
- llama.cpp contributors for performance optimization
- The entire open-source LLM community
Note: This is a complete rewrite/rebrand of Bottleneck, transforming it from a GitHub PR tool into a local AI chat application. See OFFELINE_MIGRATION.md for the full migration plan.
Cmd/Ctrl + B- Toggle sidebarCmd/Ctrl + Shift + B- Toggle right panelCmd/Ctrl + Shift + P- Command paletteCmd/Ctrl + /- Show keyboard shortcuts
Cmd/Ctrl + P- Go to PRCmd/Ctrl + T- Go to fileCmd/Ctrl + [- Previous PRCmd/Ctrl + ]- Next PRAlt + Up- Previous fileAlt + Down- Next file
Cmd/Ctrl + Enter- Submit commentCmd/Ctrl + Shift + A- Approve PRCmd/Ctrl + Shift + R- Request changesV- Mark file as viewedD- Toggle diff viewW- Toggle whitespace
- PR list render: <300ms from cache, <1.5s cold fetch
- First diff paint: <150ms for typical files
- Handle 1k+ files / 50k+ changed lines smoothly
- 60 FPS scrolling in all views
- Virtualized lists and diff rendering
- Web workers for diff computation
- Incremental syntax highlighting
- Smart caching with ETags
- Concurrent API requests with rate limiting
Contributions are welcome! Please feel free to submit a Pull Request.
MIT
- Built with Electron, React, and Monaco Editor
- Inspired by the need for faster PR reviews
- Optimized for teams using agent-based development