Removed outdated demo video link and retained image link.
👀 capture-ai Overview
Capture AI is not just a simple chat application.
It is a hybrid AI platform that combines:
💬 Conversational AI
📄 Document processing & editing
⚙️ Intelligent pipelines
All in a single system.
Unlike traditional chat tools, Capture AI can understand, transform, and generate real files — not just text.
From a single prompt, it can:
PDF → Extract → Transform → Rebuild → Download
It supports both online models (OpenRouter) and local AI providers, giving full control over performance, privacy, and behavior.
❌ Not just a chat app
✅ A hybrid AI platform (chat + document editor + pipeline engine)
🚀 Features
- Compatible with Linux(Arch,Debian/Ubuntu) devices
- Model management per chat
- Per-chat conversational RAG system with enable/disable support(short-term memory + summary memory + embedding-based retrieval + code-aware context)
- Run local AI providers (Ollama, LM Studio, vLLM, etc.)
- Shows how many tokens are consumed for each message
- AI can read, analyze, modify your documents (within permission)
- AI-generated files are automatically created, saved, and shown with download buttons
- Supports PDF, DOCX, XLSX, TXT, and MD (read & generate)
- Editable file permission system (safe file editing control)
- Unlimited reference tree support
- Image generation and image-based workflows
- Regenerate
- Modular prompt system (Prompt Chooser)
- Enter input with your voice -Speech to text(online or local)-
- Copyable code blocks
- Control via Terminal (excluding STT and some UI features)
- Customize how the AI responds
- Adding documents via drag & drop
- Lazy Loading, Chat Loading System (Loads latest messages first,older messages load on scroll)
- Change UI colors
- Dark/Light themes
- Keep all your chats in your machine
- Just one configure file
- Streaming response system (real-time output)
- Easy access with keyboard shortcuts
- Language support [Turkish, English]You can easily create your own language file
- Caching the language file to avoid repeated file reads
- Web Search (supports online and local models)
- Compatible with macOS, Windows
📦 Setup
Go to theOpen Routerand create your own api keyGo to theTavilyand create your own api key
?
OpenRouter: Provides access to online AI models through a single API.Tavily: Provides web search results and current online information for AI models.
3. Make sure you place your files in the following directories.
~/capture-ai/ui.py~/capture-ai/ai.py
~/capture-ai/cli.py
~/capture-ai/capture-ai.sh
~/capture-ai/memory.py
~/capture-ai/language/en.json
~/capture-ai/language/tr.json
~/.config/capture-ai/config.json
~/.config/capture-ai/requirements.txt
~/.config/scripts/screenprint.sh
4. Download Packages
Arch Packages
cd ~/.config/capture-ai/
🧩 Core System & Python
sudo pacman -S --needed python python-virtualenv git
Environment
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
🖥️ GTK4 UI Dependencies
sudo pacman -S --needed gtk4 libadwaita python-gobject gobject-introspection
🎨 Rendering & Graphics
sudo pacman -S --needed cairo pango gdk-pixbuf2
🌐 Network & Runtime
sudo pacman -S --needed wget
📄 File Processing (DOCX / XLSX / PDF)
sudo pacman -S --needed poppler libreoffice ttf-dejavu
🎧 Audio / Voice
🎙️ voice record -> 📄 WAV file -> 🧠 whisper-cli -> ✍ Text input
🎙️ Offline Voice Input,voice record (Speech → Text)
sudo pacman -S --needed pipewire wireplumber pipewire-audio pipewire-pulse libpulse alsa-utils
📄 Build Offline Speech to Text
sudo pacman -S --needed cmake make gcc
Packages Check
command -v pw-record || echo "pw-record not found"
command -v arecord || echo "arecord not found"
🧠 Install whisper.cpp (Offline Speech Recognition Engine)
git clone https://github.com/ggml-org/whisper.cpp.git ~/whisper.cpp
cd whisper.cpp
cmake -B build
cmake --build build -j --config Release
ls build/bin
#Should see these -> ... whisper-cli, main, whisper-server, ...
Download 'Tiny' Model
mkdir -p ~/.local/share/whisper
wget -O ~/.local/share/whisper/ggml-tiny.bin https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-tiny.bin
Packages Check
ls -l ~/whisper.cpp/build/bin/whisper-cli
ls -lh ~/.local/share/whisper/ggml-tiny.bin
Manual Test
~/whisper.cpp/build/bin/whisper-cli \
-m ~/.local/share/whisper/ggml-tiny.bin \
-f /tmp/capture-ai-mic-20260228-205753.wav \
-l tr
📸 Screenshot
sudo pacman -S --needed grim slurp mako libnotify
🧰 System Utilities
sudo pacman -S --needed glib2 xdg-utils noto-fonts-emoji
Debian/Ubuntu/Raspberry Pi OS
cd ~/.config/capture-ai/
🧩 Core System & Python
sudo apt update
sudo apt install -y python3 python3-venv git
Environment
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
🖥️ GTK4 UI Dependencies
sudo apt install -y python3-gi gobject-introspection gir1.2-gtk-4.0 gir1.2-adw-1 libgtk-4-1 libadwaita-1-0
🎨 Rendering & Graphics
sudo apt install -y libcairo2 libpango-1.0-0 gir1.2-pango-1.0 gir1.2-gdkpixbuf-2.0
🌐 Network & Runtime
sudo apt install -y wget
📄 File Processing (DOCX / XLSX / PDF)
sudo apt install -y poppler-utils libreoffice fonts-dejavu
🎧 Audio / Voice
🎙️ voice record -> 📄 WAV file -> 🧠 whisper-cli -> ✍ Text input
🎙️ Offline Voice Input,voice record (Speech → Text)
sudo apt install -y pipewire wireplumber pipewire-pulse libpipewire-0.3-0 libspa-0.2-modules alsa-utils pulseaudio-utils libpulse0
📄 Build Offline Speech to Text
sudo apt install -y cmake make gcc
Packages Check
command -v pw-record || echo "pw-record not found"
command -v arecord || echo "arecord not found"
🧠 Install whisper.cpp (Offline Speech Recognition Engine)
git clone https://github.com/ggml-org/whisper.cpp.git ~/whisper.cpp
cd ~/whisper.cpp
cmake -B build
cmake --build build -j --config Release
ls build/bin
#Should see these -> ... whisper-cli, main, whisper-server, ...
Download 'Tiny' Model
mkdir -p ~/.local/share/whisper
wget -O ~/.local/share/whisper/ggml-tiny.bin https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-tiny.bin
Packages Check
ls -l ~/whisper.cpp/build/bin/whisper-cli
ls -lh ~/.local/share/whisper/ggml-tiny.bin
Manual Test
~/whisper.cpp/build/bin/whisper-cli \
-m ~/.local/share/whisper/ggml-tiny.bin \
-f /tmp/capture-ai-mic-20260228-205753.wav \
-l tr
📸 Screenshot
sudo apt install -y grim slurp scrot dunst libnotify-bin
🧰 System Utilities
sudo apt install -y xdg-utils fonts-noto-color-emoji
🎉 Run
bash capture-ai.sh (image,text,cli)
------------------HYPRLAND.CONF------------------
$capture-ai = /home/$USER/capture-ai/capture-ai.sh
bind = $mainMod SHIFT, Q, exec, $capture-ai image
bind = $mainMod, Q, exec, $capture-ai text
🔎 ALL APP FEATURES
For Nerds
-
Chat management
Create, switch, delete, rename, pin/unpin chats. Chats are sorted with pinned chats first, then by last modified time. -
Local chat storage
All chats are stored locally on the machine under the app cache directory. -
Section-based chat loading
Chats use lazy loading. Only the latest 10 messages are loaded first, and older messages load while scrolling up. -
Persistent configuration
Uses one config.json file for settings such as theme, models, pinned chats, last chat, STT, RAG, colors, local providers, and language. -
Per-chat model management
Each chat can have its own active AI model. Recently selected models move to the top of the list. -
Online and local model support
Supports OpenRouter models and local API-based text models such as Ollama. -
Local provider settings
Local providers can store base URL, startup command, stop command, system prompt, and model parameters. -
Sidebar UI
Collapsible sidebar with separate Chats and AI Models sections. -
Context mode switch
Each chat can switch between Direct mode and RAG mode. -
Per-chat conversational RAG
Supports short-term memory, summary memory, simple retrieval, and code-aware context. -
Reference tree support
Selected references can expand recursively so previous context is not lost. -
Message selection mode
Users can select one or multiple messages, clear selection, copy, regenerate, or use them as references. -
Regenerate
Regenerates from selected user or assistant messages while keeping reference context. -
Copyable code blocks
Copy-marked content is rendered as a code-style block with a copy button. -
Image generation and image handling
Supports image generation, image previews, cached generated images, and image attachments. -
Document support
Supports PDF, DOCX, XLSX, TXT, and MD file creation/output. Generated files are shown with downloadable buttons. -
PDF handling
If a PDF contains text, it is sent as text content. If it has little/no text, the first pages are converted to PNG images and sent as image_url. -
Document editing behavior
AI can read, analyze, summarize, rewrite, and generate edited document outputs when permission is enabled. -
File create protocol
DOCX, XLSX, PDF, TXT, and MD outputs can be generated from AI responses and returned as downloadable files. -
XLSX support
Can create new XLSX tables and filter existing XLSX files with supported operations. -
Drag & drop attachments
Files and images can be added via drag & drop or file picker. -
Editable file permission
Attached files can be toggled editable. The AI only modifies files when permission is enabled. -
Voice-to-text input
Supports microphone recording and transcription with online or local STT. -
Offline STT
Uses whisper.cpp with configured binary and model paths. -
Online STT
Uses OpenRouter audio-capable models and sends WAV audio as input_audio. -
Token usage display
Shows input, output, and total token usage for each response when enabled. -
Token price display
Can estimate message cost using a configurable token price value. -
Theme system
Supports dark/light theme and custom UI colors. -
Language system
Supports external language files such as Turkish and English, with cached language loading. -
Prompt chooser
Prompt behavior blocks can be enabled/disabled, such as copyable, apply, PDF visual edit, file creation, structured output, and code mode. -
Terminal control
The project also supports terminal usage, excluding STT and some GUI-only features. -
Linux compatibility
Designed for Linux devices, including Arch and Debian/Ubuntu-based systems. -
Streaming response system
AI responses are streamed in real-time. The assistant message appears gradually as it is being generated instead of waiting for the full response. -
Advanced PDF processing pipeline
pdf_text → extract text from the PDF → AI generates DOCX → app converts DOCX back to PDFpdf_image → if PDF Image mode is selected, convert PDF pages to PNG → AI analyzes the image or returns a PNG
→ if a PNG is returned, the app converts it into a PDFpdf_image + mixed/image block → extract image blocks from the PDF → AI returns edited PNG
→ app places the new image back into the original PDF at the same positionpdf_text_image → extract layout as JSON + extract images as PNG
→ AI returns text_replacements JSON (and optionally images)
→ app rebuilds the PDF using the original layout with updated text and images -
Generated files system
AI can return generated files (PDF, DOCX, XLSX, etc.), which are automatically saved in the app cache and displayed in chat with download buttons. -
Structured file generation protocol
AI responses can include structured file_create blocks, allowing the app to generate real files programmatically without manual parsing. -
Editable file safety system
Files can be marked as editable or read-only. AI is strictly prevented from modifying files unless explicit permission is enabled. -
Smart PDF type detection
Automatically detects whether a PDF is text-based, image-based, or mixed, and applies the appropriate processing pipeline. -
Mixed PDF layout reconstruction
For PDFs containing both text and images, the app extracts layout structure and rebuilds the document after AI modifications. -
Image-to-PDF auto conversion
If the AI returns image outputs (e.g., PNG), the app automatically converts them into PDF format when needed. -
Generated image caching
All generated images are cached locally and can be reused without re-generation. -
AI-returned file handling
Supports file outputs returned as base64 or URLs and converts them into downloadable files automatically. -
Modular prompt system
System prompts are divided into selectable blocks, allowing dynamic control over AI behavior without modifying core logic. -
Local provider startup automation
Local AI providers can be automatically started or stopped using configured commands. -
Chat-aware context building
The system intelligently builds context using recent messages, summaries, code context, and relevant memory chunks.
Bilgi Hastaları için
-
Chat yönetimi Chat oluşturma, değiştirme, silme, yeniden adlandırma, sabitleme/sabitten çıkarma. Chatler önce sabitlenenler, sonra son değiştirilme zamanına göre sıralanır.
-
Yerel chat saklama Tüm chatler uygulamanın cache klasörü altında yerel olarak saklanır.
-
Bölümlü chat yükleme Chatler lazy loading kullanır. İlk olarak sadece son 10 mesaj yüklenir, yukarı kaydırıldıkça eski mesajlar yüklenir.
-
Kalıcı yapılandırma Tema, modeller, sabit chatler, son chat, STT, RAG, renkler, local provider’lar ve dil ayarları tek bir config.json dosyasında tutulur.
-
Chat başına model yönetimi Her chat kendi aktif AI modeline sahip olabilir. En son seçilen modeller listenin en üstüne alınır.
-
Online ve local model desteği OpenRouter modelleri ve Ollama gibi local API tabanlı modeller desteklenir.
-
Local provider ayarları Base URL, başlatma komutu, durdurma komutu, system prompt ve model parametreleri tanımlanabilir.
-
Sidebar arayüzü Açılıp kapanabilen sidebar içinde ayrı Chat ve AI Model listeleri bulunur.
-
Context modu geçişi Her chat Direct mode ve RAG mode arasında geçiş yapabilir.
-
Chat başına RAG sistemi Kısa süreli hafıza, özet hafıza, basit retrieval ve kod farkındalıklı context desteği vardır.
-
Reference tree desteği Seçilen referanslar recursive olarak genişletilir, böylece context kaybı yaşanmaz.
-
Mesaj seçme modu Kullanıcı bir veya birden fazla mesaj seçebilir, temizleyebilir, kopyalayabilir, yeniden oluşturabilir veya referans olarak kullanabilir.
-
Regenerate (yeniden oluşturma) Seçilen user veya bot mesajlarından yeniden üretim yapılır ve referans context korunur.
-
Kopyalanabilir kod blokları Copy ile işaretlenen içerikler, kopyalama butonu olan kod blokları olarak gösterilir.
-
Görsel üretimi ve yönetimi Görsel üretimi, önizleme, cache’lenmiş görseller ve image attachment desteği bulunur.
-
Doküman desteği PDF, DOCX, XLSX, TXT ve MD dosyaları oluşturma ve çıktı alma desteklenir. Üretilen dosyalar indirilebilir olarak sunulur.
-
PDF işleme PDF metin içeriyorsa text olarak gönderilir. Metin yoksa ilk sayfalar PNG’ye çevrilerek image_url olarak gönderilir.
-
Doküman düzenleme davranışı AI, izin verildiğinde dosyaları okuyabilir, analiz edebilir, özetleyebilir, yeniden yazabilir ve düzenlenmiş çıktı oluşturabilir.
-
Dosya oluşturma protokolü DOCX, XLSX, PDF, TXT ve MD dosyaları AI çıktısından oluşturulabilir ve indirilebilir olarak sunulur.
-
XLSX desteği Yeni tablolar oluşturabilir ve mevcut XLSX dosyaları filtreleyebilir.
-
Drag & drop dosya ekleme Dosyalar ve görseller sürükle-bırak veya dosya seçici ile eklenebilir.
-
Düzenlenebilir dosya izni Eklenen dosyalar editable olarak işaretlenebilir. AI sadece izin verildiğinde değişiklik yapar.
-
Voice-to-text girişi Mikrofon ile kayıt ve online/local STT ile metne çevirme desteklenir.
-
Offline STT whisper.cpp kullanarak yerel ses tanıma yapılır.
-
Online STT OpenRouter üzerinden ses modeli kullanılarak WAV verisi input_audio olarak gönderilir.
-
Token kullanım gösterimi Her mesaj için input, output ve toplam token kullanımı gösterilebilir.
-
Token maliyet hesaplama Mesaj maliyeti, ayarlanabilir token fiyatına göre tahmin edilebilir.
-
Tema sistemi Dark/light tema ve özelleştirilebilir UI renkleri desteklenir.
-
Dil sistemi Türkçe ve İngilizce gibi dış dil dosyaları desteklenir ve cache’lenerek performans artırılır.
-
Prompt chooser copyable, apply, PDF edit, file create, structured output ve code gibi prompt blokları açılıp kapatılabilir.
-
Terminal kontrolü STT ve bazı UI özellikleri hariç terminal üzerinden kullanım desteklenir.
-
Linux uyumluluğu Arch ve Debian/Ubuntu dahil Linux sistemler için tasarlanmıştır.
-
Streaming yanıt sistemi AI yanıtları gerçek zamanlı olarak akış halinde gösterilir. Asistan mesajı, tamamının oluşmasını beklemek yerine yazılırken kademeli olarak ekranda görünür.
-
Gelişmiş PDF işleme pipeline’ı pdf_text → PDF’ten metin çıkarılır → AI DOCX üretir → uygulama DOCX’i tekrar PDF’e çevirir
pdf_image → PDF Image modu seçiliyse sayfalar PNG’ye çevrilir → AI görseli analiz eder veya PNG döndürür → PNG dönerse uygulama bunu PDF’e çevirir
pdf_image + mixed/image block → PDF’ten görsel bloklar çıkarılır → AI düzenlenmiş PNG döndürür → uygulama yeni görseli PDF içinde aynı konuma yerleştirir
pdf_text_image → layout JSON olarak çıkarılır + görseller PNG olarak alınır → AI text_replacements JSON (ve opsiyonel görseller) döndürür → uygulama orijinal layout’u kullanarak PDF’i yeniden oluşturur
-
Üretilen dosya sistemi AI tarafından oluşturulan dosyalar (PDF, DOCX, XLSX vb.) otomatik olarak uygulama cache dizinine kaydedilir ve sohbet içinde indirme butonlarıyla gösterilir.
-
Yapılandırılmış dosya üretim protokolü AI yanıtları, manuel parse gerektirmeden doğrudan dosya üretimini sağlayan yapılandırılmış file_create blokları içerebilir.
-
Düzenlenebilir dosya güvenlik sistemi Dosyalar düzenlenebilir veya salt okunur olarak işaretlenebilir. Açık izin verilmeden AI’ın dosyaları değiştirmesi kesin olarak engellenir.
-
Akıllı PDF türü tespiti PDF’in metin tabanlı, görsel tabanlı veya karışık olup olmadığı otomatik olarak tespit edilir ve uygun işleme pipeline’ı uygulanır.
-
Karışık PDF layout yeniden oluşturma Hem metin hem görsel içeren PDF’lerde, layout yapısı çıkarılır ve AI düzenlemelerinden sonra belge yeniden oluşturulur.
-
Görselden PDF’e otomatik dönüşüm AI görsel (örneğin PNG) çıktısı verdiğinde, uygulama bunu otomatik olarak PDF formatına dönüştürür.
-
Üretilen görsel cache sistemi Oluşturulan tüm görseller yerel olarak cache’lenir ve tekrar üretmeye gerek kalmadan yeniden kullanılabilir.
-
AI tarafından dönen dosya işleme sistemi Base64 veya URL olarak dönen dosyalar desteklenir ve otomatik olarak indirilebilir dosyalara dönüştürülür.
-
Modüler prompt sistemi Sistem prompt’ları bloklara ayrılmıştır ve dinamik olarak açılıp kapatılarak AI davranışı kontrol edilebilir.
-
Local provider başlatma otomasyonu Yerel AI sağlayıcıları, tanımlı komutlar ile otomatik olarak başlatılabilir veya durdurulabilir.
-
Sohbet farkındalıklı context oluşturma Sistem; son mesajlar, özetler, kod context’i ve ilgili hafıza parçalarını kullanarak akıllı bir context oluşturur.
