diff --git a/README.md b/README.md
index 955f011..033947c 100644
--- a/README.md
+++ b/README.md
@@ -254,108 +254,103 @@ bind = $mainMod, Q, exec, $capture-ai text
## 🔎 ALL APP FEATURES
For Nerds
+1. 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
+Create, switch, delete, rename, pin/unpin chats. Chats are sorted with pinned chats first, then by last modified time.
-2. 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. Local chat storage
+All chats are stored locally on the machine under the app cache directory.
-3. Sidebar UI
-Collapse/expand sidebar (☰)
-Toggle Chats list
-Toggle AI Models list
+3. Section-based chat loading
+Chats use lazy loading. Only the latest 10 messages are loaded first, and older messages load while scrolling up.
-4. 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. Persistent configuration
+Uses one config.json file for settings such as theme, models, pinned chats, last chat, STT, RAG, colors, local providers, and language.
-5. Message selection mode
-Click to select one or multiple messages
-Selection counter bar
-Clear selection (✕)
-Selected bubbles get an outline
+5. Per-chat model management
+Each chat can have its own active AI model. Recently selected models move to the top of the list.
-6. Reference trees (reference chain expansion)
-Expands used_refs recursively (references of references)
-Ensures context (including images/refs) isn’t lost
-Stores:
-used_refs (indices sent to AI)
-refs_groups (UI reference preview groups)
+6. Online and local model support
+Supports OpenRouter models and local API-based text models such as Ollama.
-7. Reference trees (reference chain expansion)
-Expands used_refs recursively (references of references)
-Ensures context (including images/refs) isn’t lost
-Stores:
-used_refs (indices sent to AI)
-refs_groups (UI reference preview groups)
+7. Local provider settings
+Local providers can store base URL, startup command, stop command, system prompt, and model parameters.
-8. 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. Sidebar UI
+Collapsible sidebar with separate Chats and AI Models sections.
-9. Copy (📋)
-Appears only on the single selected bubble
-If message contains copy ... copy, copies only the inner block
-Otherwise copies full message
+9. Context mode switch
+Each chat can switch between Direct mode and RAG mode.
-10. Code block detection
-Messages wrapped by copy markers render as a code-style block
-Code block includes a “Copy” button overlay
+10. Per-chat conversational RAG
+Supports short-term memory, summary memory, simple retrieval, and code-aware context.
-11. 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. Reference tree support
+Selected references can expand recursively so previous context is not lost.
-12. Typing indicator
-Animated “Thinking…” while AI is running
-Removed when response arrives
+12. Message selection mode
+Users can select one or multiple messages, clear selection, copy, regenerate, or use them as references.
-13. 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. Regenerate
+Regenerates from selected user or assistant messages while keeping reference context.
-14. Input shortcuts
-Enter to send
-Shift+Enter for newline
-Added: Ctrl+C / Ctrl+V / Ctrl+X / Ctrl+A
+14. Copyable code blocks
+Copy-marked content is rendered as a code-style block with a copy button.
-15. 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. Image generation and image handling
+Supports image generation, image previews, cached generated images, and image attachments.
-16. Offline STT (whisper.cpp)
-Uses whisper-cli + ggml-tiny.bin for low CPU transcription
-Reads .txt output (stdout fallback)
+16. Document support
+Supports PDF, DOCX, XLSX, TXT, and MD file creation/output. Generated files are shown with downloadable buttons.
-17. Online STT (OpenRouter)
-If is_mic_online: true, transcribes via OpenRouter
-Sends base64 WAV as input_audio
-Model selected via stt_model_online
+17. 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.
+
+18. Document editing behavior
+AI can read, analyze, summarize, rewrite, and generate edited document outputs when permission is enabled.
+
+19. File create protocol
+DOCX, XLSX, PDF, TXT, and MD outputs can be generated from AI responses and returned as downloadable files.
+
+20. XLSX support
+Can create new XLSX tables and filter existing XLSX files with supported operations.
+
+21. Drag & drop attachments
+Files and images can be added via drag & drop or file picker.
+
+22. Editable file permission
+Attached files can be toggled editable. The AI only modifies files when permission is enabled.
+
+23. Voice-to-text input
+Supports microphone recording and transcription with online or local STT.
+
+24. Offline STT
+Uses whisper.cpp with configured binary and model paths.
+
+25. Online STT
+Uses OpenRouter audio-capable models and sends WAV audio as input_audio.
+
+26. Token usage display
+Shows input, output, and total token usage for each response when enabled.
+
+27. Token price display
+Can estimate message cost using a configurable token price value.
+
+28. Theme system
+Supports dark/light theme and custom UI colors.
+
+29. Language system
+Supports external language files such as Turkish and English, with cached language loading.
+
+30. Prompt chooser
+Prompt behavior blocks can be enabled/disabled, such as copyable, apply, PDF visual edit, file creation, structured output, and code mode.
+
+31. Terminal control
+The project also supports terminal usage, excluding STT and some GUI-only features.
+
+32. Linux compatibility
+Designed for Linux devices, including Arch and Debian/Ubuntu-based systems.