https://github.com/eclaire-labs/eclaire
Local-first, open-source AI assistant for your data. Unify tasks, notes, docs, photos, and bookmarks. Private, self-hosted, and extensible via APIs.
https://github.com/eclaire-labs/eclaire
ai ai-assistant automation bookmark-manager bookmarks data-extraction document-processing llm local-first note-taking ocr on-device-ai open-source personal-knowledge-management privacy rest-api self-hosted task-management web-archiving
Last synced: 5 months ago
JSON representation
Local-first, open-source AI assistant for your data. Unify tasks, notes, docs, photos, and bookmarks. Private, self-hosted, and extensible via APIs.
- Host: GitHub
- URL: https://github.com/eclaire-labs/eclaire
- Owner: eclaire-labs
- License: mit
- Created: 2025-09-02T07:28:06.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2026-01-14T01:52:45.000Z (5 months ago)
- Last Synced: 2026-01-14T05:49:03.714Z (5 months ago)
- Topics: ai, ai-assistant, automation, bookmark-manager, bookmarks, data-extraction, document-processing, llm, local-first, note-taking, ocr, on-device-ai, open-source, personal-knowledge-management, privacy, rest-api, self-hosted, task-management, web-archiving
- Language: TypeScript
- Homepage: https://eclaire.co
- Size: 5.08 MB
- Stars: 748
- Watchers: 8
- Forks: 68
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
- my-awesome - eclaire-labs/eclaire - assistant,automation,bookmark-manager,bookmarks,data-extraction,document-processing,llm,local-first,note-taking,ocr,on-device-ai,open-source,personal-knowledge-management,privacy,rest-api,self-hosted,task-management,web-archiving pushed_at:2026-05 star:0.9k fork:0.1k Local-first, open-source AI assistant for your data. Unify tasks, notes, docs, photos, and bookmarks. Private, self-hosted, and extensible via APIs. (TypeScript)
README
ECLAIRE
Privacy-focused AI assistant for your data
Features •
Installation •
Selecting Models •
Architecture •
Development •
Contributing •
Docs •
API
---
## ⚠️ Important Notices
> [!IMPORTANT]
> **Pre-release / Development Status**
> Eclaire is currently in pre-release and under active development.
Expect frequent updates, breaking changes, and evolving APIs/configuration.
> If you deploy it, please **backup your data regularly** and review release notes carefully before upgrading.
> [!WARNING]
> **Security Warning**
> Do **NOT** expose Eclaire directly to the public internet.
> This project is designed to be self-hosted with privacy and security in mind, but it is **not hardened for direct exposure**.
>
> We strongly recommend placing it behind additional security layers such as:
> - [Tailscale](https://tailscale.com/) or other private networks/VPNs
> - [Cloudflare Tunnels](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/)
> - A reverse proxy with authentication
---
## Description
**Eclaire** is a local-first, open-source AI that organizes, answers, and automates across tasks, notes, documents, photos, bookmarks and more.
There are are lot of existing frameworks and libraries enabling various AI capabilities; few deliver a complete product allowing users to get things done. Eclaire assembles proven building blocks into a cohesive, privacy-preserving solution you can run yourself.
With AI gaining rapid adoption, there is a growing need for alternatives to closed ecosystems and hosted models, especially for personal, private, or otherwise sensitive data.
- **Self-hosted** - runs entirely on your hardware with local models and data storage
- **Unified data** - one place where AI can see and connect everything
- **AI-powered** - content understanding, search, classification, OCR, and automation
- **Open source** - transparent, extensible, and community-driven
### What's New in v0.6.0
- **Unified deployment**: frontend + backend + workers can run in a single container
- **Simplified Self-Hosting** - new one-command `setup.sh` flow, plus a streamlined `compose.yaml`
- **Better AI Support** - New vision models (including Qwen3-VL), llama.cpp router, improved MLX support.
- **Modern Frontend** - Migrated from Next.js to Vite + TanStack Router
- **SQLite Support**: Full SQLite database support alongside Postgres for simpler workloads
- **Database Queue Mode**: Support Postgres or SQLite for job processing instead of Redis/BullMQ
- **New Admin CLI** - Manage your instance from the command line
See the [CHANGELOG](./CHANGELOG.md) for full details.
## Features
- **Cross-platform**: macOS, Linux and Windows.
- **Private by default**: By default all AI models run locally, all data is stored locally.
- **Unified data**: Manage across tasks, notes, documents, photos, bookmarks and more.
- **AI conversations**: chat with context from your content; see sources for answers; supports streaming and thinking tokens.
- **AI tool calling**: The assistant has tools to search data, open content, resolve tasks, add comments, create notes, and more
- **Flexible deployment**: Run as a single unified container or separate services. SQLite or Postgres. Database queue or Redis. *(See [Architecture](#architecture) section below.)*
- **Full API**: OpenAI-compatible REST endpoints with session tokens or API keys. [API Docs](https://eclaire.co/docs/api)
- **Model backends**: works with llama.cpp, vLLM, mlx-lm/mlx-vlm, LM Studio, Ollama, and more via the standard OpenAI-compatible API. *(See [Selecting Models](#selecting-models).)*
- **Model support**: text and vision models from Qwen, Gemma, DeepSeek, Mistral, Kimi, and others. *(See [Selecting Models](#selecting-models).)*
- **Storage**: all assets (uploaded or generated) live in Postgres or file/object storage.
- **Integrations**: Telegram (more channels coming).
- **Documents**: PDF, DOC/DOCX, PPT/PPTX, XLS/XLSX, ODT/ODP/ODS, MD, TXT, RTF, Pages, Numbers, Keynote, HTML, CSV, and more.
- **Photos/Images**: JPG/JPEG, PNG, SVG, WebP, HEIC/HEIF, AVIF, GIF, BMP, TIFF, and more.
- **Tasks**: track user tasks or assign tasks for the AI assistant to complete; the assistant add comments to tasks or write to separate docs.
- **Notes**: plain text or Markdown format. Links to other assets.
- **Bookmarks**: Fetches bookmarks and creates PDF, Readable and LLM friendly versions. Special handling for Github and Reddit APIs and metadata.
- **Organization**: Tags, pin, flag, due dates, etc. across all asset types.
- **Hardware acceleration**: takes advantage of Apple MLX, NVIDIA CUDA, and other platform-specific optimizations.
- **Mobile & PWA**: installable PWA; iOS & Apple Watch via Shortcuts; Android via Tasker/MacroDroid.
## Sample use cases
- Dictate notes using Apple Watch (or other smartwatch).
- Save bookmarks to read later; generate clean “readable” and PDF versions.
- Create readable and PDF versions of websites
- Extract text from photos and document images (OCR).
- Bulk-convert photos from HEIC to JPG.
- Analyze, categorize, and search documents and photos with AI.
- Create LLM-friendly text/Markdown versions of documents and bookmarks.
- Save interesting content (web pages, photos, documents) from phone, tablet, or desktop.
- Ask AI to find or summarize information across your data.
- Schedule automations (e.g., “Every Monday morning, summarize my tasks for the week.”).
- Chat with AI from web, mobile, Telegram, and other channels.
- Process sensitive information (bank, health, etc.) privately on local models.
- De-clutter your desktop by bulk-uploading and letting AI sort and tag.
- Migrate data from Google/Apple and other vendors into an open, self-hosted platform under your control.
## Screenshots
## Installation
### Prerequisites
- **Docker** and **Docker Compose**
- **A local LLM server** - [llama.cpp](https://github.com/ggml-org/llama.cpp) recommended
### Quick Start
```bash
mkdir eclaire && cd eclaire
curl -fsSL https://raw.githubusercontent.com/eclaire-labs/eclaire/main/setup.sh | sh
```
The script will:
1. Download configuration files
2. Generate secrets automatically
3. Initialize the database (PostgreSQL)
After setup completes:
```bash
# 1. Start your LLM servers (in separate terminals)
# Models download automatically on first run if not already cached
llama-server -hf unsloth/Qwen3-14B-GGUF:Q4_K_XL --ctx-size 16384 --port 11500
llama-server -hf unsloth/gemma-3-4b-it-qat-GGUF:Q4_K_XL --ctx-size 16384 --port 11501
# 2. Start Eclaire
docker compose up -d
```
Open http://localhost:3000 and click "Sign up" to create your account.
See [AI Model Configuration](docs/ai-models.md) to use other AI providers and models.
### Configuration
Configuration lives in two places:
- **`.env`** - secrets, database settings, ports
- **`config/ai/`** - LLM provider URLs and model definitions
### Stopping
```bash
docker compose down
```
## Selecting Models
Eclaire uses AI models for two purposes:
- **Backend**: Powers the chat assistant (requires good tool calling)
- **Workers**: Processes documents and images (requires vision capability)
> **Apple Silicon**: Mac users can leverage MLX for optimized local inference. See the [configuration guide](docs/ai-models.md#mlx-on-apple-silicon) for details.
Use the CLI to manage models:
```bash
docker compose run --rm eclaire model list
```
See [AI Model Configuration](docs/ai-models.md) for detailed setup and model recommendations.
## Architecture
Eclaire follows a modular architecture with clear separation between the frontend, backend API, background workers, and data layers.
**📋 [View detailed architecture diagram →](docs/architecture.md)**
### Key Components
- **Frontend**: Vite web application with React 19, TanStack Router, and Radix UI
- **Backend API**: Node.js/Hono server with REST APIs
- **Background Workers**: Job processing and scheduling (runs unified with backend by default)
- **Data Layer**: PostgreSQL (recommended) or SQLite for persistence; database or Redis for job queue
- **AI Services**: Local LLM backends (llama.cpp, MLX, LM Studio, etc.) for inference; Docling for document processing
- **External Integrations**: GitHub and Reddit APIs for bookmark fetching
## Roadmap
- Support for more data sources and integrations
- More robust full text indexing and search
- Better extensibility and plugin system
- Improved AI capabilities and model support
- Evals for models and content pipelines
- More hardening and security
- Top requests from the community
## Development
For contributors who want to build from source.
### Additional Prerequisites
Beyond Docker and an LLM server, you'll need:
- **Node.js ≥ 24** with corepack enabled
- **pnpm** (managed via corepack)
**Document/image processing tools:**
**macOS:**
```bash
brew install --cask libreoffice
brew install poppler graphicsmagick imagemagick ghostscript libheif
```
**Ubuntu/Debian:**
```bash
sudo apt-get install libreoffice poppler-utils graphicsmagick imagemagick ghostscript libheif-examples
```
### Setup
```bash
git clone https://github.com/eclaire-labs/eclaire.git
cd eclaire
corepack enable
pnpm setup:dev
pnpm dev
```
Access the application:
- Frontend: http://localhost:3000
- Backend: http://localhost:3001/health
### Building Docker Locally
To build and test custom Docker images:
```bash
./scripts/build.sh
docker compose -f compose.yaml -f compose.dev.yaml -f compose.local.yaml up -d
```
## Contributing
We 💙 contributions! Please read the Contributing Guide.
## Security
See [SECURITY.md](./SECURITY.md) for our policy.
## Telemetry
There should be no telemetry in the Eclaire code although 3rd party dependencies may have. If you find an instance where that is the case, let us know.
## Community & Support
Issues: [GitHub Issues](https://github.com/eclaire-labs/eclaire/issues)



