Update README.md
This commit is contained in:
@@ -254,108 +254,103 @@ bind = $mainMod, Q, exec, $capture-ai text
|
|||||||
## 🔎 ALL APP FEATURES
|
## 🔎 ALL APP FEATURES
|
||||||
<details>
|
<details>
|
||||||
<summary>For Nerds</summary>
|
<summary>For Nerds</summary>
|
||||||
|
1. For Nerds
|
||||||
|
|
||||||
1. Chat management
|
1. Chat management
|
||||||
Create new chats (chat_1.json, chat_2.json, …)
|
Create, switch, delete, rename, pin/unpin chats. Chats are sorted with pinned chats first, then by last modified time.
|
||||||
Switch between chats
|
|
||||||
Delete chat (with confirmation)
|
|
||||||
Rename chat (popover)
|
|
||||||
Pin/unpin chats (📌)
|
|
||||||
Sorting: pinned first, then most recently modified
|
|
||||||
|
|
||||||
2. Persistent settings (config.json)
|
2. Local chat storage
|
||||||
Remember last opened chat (last_chat)
|
All chats are stored locally on the machine under the app cache directory.
|
||||||
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)
|
|
||||||
|
|
||||||
3. Sidebar UI
|
3. Section-based chat loading
|
||||||
Collapse/expand sidebar (☰)
|
Chats use lazy loading. Only the latest 10 messages are loaded first, and older messages load while scrolling up.
|
||||||
Toggle Chats list
|
|
||||||
Toggle AI Models list
|
|
||||||
|
|
||||||
4. Model management (per chat)
|
4. Persistent configuration
|
||||||
Separate active model per chat
|
Uses one config.json file for settings such as theme, models, pinned chats, last chat, STT, RAG, colors, local providers, and language.
|
||||||
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)
|
|
||||||
|
|
||||||
5. Message selection mode
|
5. Per-chat model management
|
||||||
Click to select one or multiple messages
|
Each chat can have its own active AI model. Recently selected models move to the top of the list.
|
||||||
Selection counter bar
|
|
||||||
Clear selection (✕)
|
|
||||||
Selected bubbles get an outline
|
|
||||||
|
|
||||||
6. Reference trees (reference chain expansion)
|
6. Online and local model support
|
||||||
Expands used_refs recursively (references of references)
|
Supports OpenRouter models and local API-based text models such as Ollama.
|
||||||
Ensures context (including images/refs) isn’t lost
|
|
||||||
Stores:
|
|
||||||
used_refs (indices sent to AI)
|
|
||||||
refs_groups (UI reference preview groups)
|
|
||||||
|
|
||||||
7. Reference trees (reference chain expansion)
|
7. Local provider settings
|
||||||
Expands used_refs recursively (references of references)
|
Local providers can store base URL, startup command, stop command, system prompt, and model parameters.
|
||||||
Ensures context (including images/refs) isn’t lost
|
|
||||||
Stores:
|
|
||||||
used_refs (indices sent to AI)
|
|
||||||
refs_groups (UI reference preview groups)
|
|
||||||
|
|
||||||
8. Regenerate (♻)
|
8. Sidebar UI
|
||||||
Appears only when exactly one bubble is selected
|
Collapsible sidebar with separate Chats and AI Models sections.
|
||||||
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
|
|
||||||
|
|
||||||
9. Copy (📋)
|
9. Context mode switch
|
||||||
Appears only on the single selected bubble
|
Each chat can switch between Direct mode and RAG mode.
|
||||||
If message contains copy ... copy, copies only the inner block
|
|
||||||
Otherwise copies full message
|
|
||||||
|
|
||||||
10. Code block detection
|
10. Per-chat conversational RAG
|
||||||
Messages wrapped by copy markers render as a code-style block
|
Supports short-term memory, summary memory, simple retrieval, and code-aware context.
|
||||||
Code block includes a “Copy” button overlay
|
|
||||||
|
|
||||||
11. Image sending / preview
|
11. Reference tree support
|
||||||
Supports a pending image preview before sending
|
Selected references can expand recursively so previous context is not lost.
|
||||||
Saves image path into chat history
|
|
||||||
Shows a small image preview in message bubbles
|
|
||||||
Clears preview after sending
|
|
||||||
|
|
||||||
12. Typing indicator
|
12. Message selection mode
|
||||||
Animated “Thinking…” while AI is running
|
Users can select one or multiple messages, clear selection, copy, regenerate, or use them as references.
|
||||||
Removed when response arrives
|
|
||||||
|
|
||||||
13. Scroll behavior
|
13. Regenerate
|
||||||
Floating scroll-to-bottom button (↓) appears when not at bottom
|
Regenerates from selected user or assistant messages while keeping reference context.
|
||||||
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)
|
|
||||||
|
|
||||||
14. Input shortcuts
|
14. Copyable code blocks
|
||||||
Enter to send
|
Copy-marked content is rendered as a code-style block with a copy button.
|
||||||
Shift+Enter for newline
|
|
||||||
Added: Ctrl+C / Ctrl+V / Ctrl+X / Ctrl+A
|
|
||||||
|
|
||||||
15. Voice-to-text input
|
15. Image generation and image handling
|
||||||
🎤 to start recording, ⏹ to stop
|
Supports image generation, image previews, cached generated images, and image attachments.
|
||||||
Uses pw-record if available, otherwise arecord (Linux)
|
|
||||||
After stop, transcribes (offline/online) and appends text into input
|
|
||||||
|
|
||||||
16. Offline STT (whisper.cpp)
|
16. Document support
|
||||||
Uses whisper-cli + ggml-tiny.bin for low CPU transcription
|
Supports PDF, DOCX, XLSX, TXT, and MD file creation/output. Generated files are shown with downloadable buttons.
|
||||||
Reads .txt output (stdout fallback)
|
|
||||||
|
|
||||||
17. Online STT (OpenRouter)
|
17. PDF handling
|
||||||
If is_mic_online: true, transcribes via OpenRouter
|
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.
|
||||||
Sends base64 WAV as input_audio
|
|
||||||
Model selected via stt_model_online
|
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.
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|||||||
Reference in New Issue
Block a user