FURK4NGG 45a733c358 Add preparation section to README
Added a preparation section with details for nerds.
2026-03-01 00:36:27 +03:00
2026-02-13 23:45:27 +03:00
2026-02-13 23:42:36 +03:00
2026-02-13 23:40:04 +03:00
2026-03-01 00:36:27 +03:00
2026-02-13 23:42:36 +03:00

ai-controller

sudo pacman -S python3-gi gir1.2-gtk-4.0

~/.config/capture-ai/env.sh --> export OPENROUTER_API_KEY="sk-or-v..."

$capture-ai = /home/$USER/capture-ai/capture-ai.sh

bind = $mainMod SHIFT, Q, exec, $capture-ai image
bind = $mainMod, Q, exec, $capture-ai text

Offline Voice for Linux
🎤 pw-record / arecord

📄 WAV dosyası

🧠 whisper-cli

✍ Metin

sudo pacman -S --needed git cmake make gcc pipewire wireplumber alsa-utils

paket kontrol
command -v pw-record || echo "pw-record yok"
command -v arecord || echo "arecord yok"

git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp
cmake -B build
cmake --build build -j --config Release

ls build/bin
#... whisper-cli, main, whisper-server, ...

Tiny model indirme (hafif, düşük CPU)
mkdir -p ~/.local/share/whisper
wget -O ~/.local/share/whisper/ggml-tiny.bin \
https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-tiny.bin

paket test
ls -l ~/whisper.cpp/build/bin/whisper-cli
ls -lh ~/.local/share/whisper/ggml-tiny.bin

Manual test (çalıştığını doğruladık)
/home/bob/whisper.cpp/build/bin/whisper-cli \
-m /home/bob/.local/share/whisper/ggml-tiny.bin \
-f /tmp/capture-ai-mic-20260228-205753.wav \
-l tr



Roadmap

  • Use reference trees
  • Dark/Light themes
  • Copiable code blocks
  • Regenerate
  • Enter input with your voice -Speech to text(online or local)-

🔎 Preparation

For Nerds 1. Chat management Create new chats (chat_1.json, chat_2.json, …) Switch between chats Delete chat (with confirmation) Rename chat (popover) Pin/unpin chats (📌) Sorting: pinned first, then most recently modified
  1. Persistent settings (config.json) Remember last opened chat (last_chat) Dark/light theme (dark_mode) Pinned chats (pinned_chats) Model list (ai_models) Per-chat model mapping (chat_models) Store OpenRouter key (open_router_key) Mic mode online/offline (is_mic_online) Online STT model (stt_model_online) Offline whisper.cpp paths (whisper_cpp_bin, whisper_cpp_model)

  2. Sidebar UI Collapse/expand sidebar (☰) Toggle Chats list Toggle AI Models list

  3. Model management (per chat) Separate active model per chat Selecting a model assigns it to the current chat LRU behavior: recently chosen model moves to top Delete models (cannot delete the last remaining model) If a model is deleted, affected chats fall back to default (self-heal) “AI Models +” to add a model (dialog + OpenRouter models link)

  4. Message selection mode Click to select one or multiple messages Selection counter bar Clear selection (✕) Selected bubbles get an outline

  5. Reference trees (reference chain expansion) Expands used_refs recursively (references of references) Ensures context (including images/refs) isnt lost Stores: used_refs (indices sent to AI) refs_groups (UI reference preview groups)

  6. Reference trees (reference chain expansion) Expands used_refs recursively (references of references) Ensures context (including images/refs) isnt lost Stores: used_refs (indices sent to AI) refs_groups (UI reference preview groups)

  7. Regenerate (♻) Appears only when exactly one bubble is selected If user bubble: re-asks the same prompt If bot bubble: finds preceding user prompt + rewrites a similar answer Regenerated prompts are marked (regen) with a distinct style Keeps reference trees during regeneration

  8. Copy (📋) Appears only on the single selected bubble If message contains copy ... copy, copies only the inner block Otherwise copies full message

  9. Code block detection Messages wrapped by copy markers render as a code-style block Code block includes a “Copy” button overlay

  10. Image sending / preview Supports a pending image preview before sending Saves image path into chat history Shows a small image preview in message bubbles Clears preview after sending

  11. Typing indicator Animated “Thinking…” while AI is running Removed when response arrives

  12. Scroll behavior Floating scroll-to-bottom button (↓) appears when not at bottom Clicking scrolls to bottom and re-enables auto-scroll Button visibility updates based on scroll position (You also tuned behavior to scroll only on regenerate)

  13. Input shortcuts Enter to send Shift+Enter for newline Added: Ctrl+C / Ctrl+V / Ctrl+X / Ctrl+A

  14. Voice-to-text input 🎤 to start recording, ⏹ to stop Uses pw-record if available, otherwise arecord (Linux) After stop, transcribes (offline/online) and appends text into input

  15. Offline STT (whisper.cpp) Uses whisper-cli + ggml-tiny.bin for low CPU transcription Reads .txt output (stdout fallback)

  16. Online STT (OpenRouter) If is_mic_online: true, transcribes via OpenRouter Sends base64 WAV as input_audio Model selected via stt_model_online

S
Description
No description provided
Readme GPL-3.0 36 MiB
Languages
Python 99.2%
Shell 0.8%