# Fluent — Full Documentation > Fluent is a native, full-featured AI assistant for macOS that works on top of any app — with deep context awareness, your choice of AI models and providers, MCP integrations, a private on-device memory and knowledge base (RAG), customizable and scheduled actions, multi-model AI Councils, and a privacy-first design. This file concatenates Fluent's help documentation for machine reading. --- # Quick Start ![Fluent Onboarding – Welcome Screen](/help-assets/fluent-onboarding-welcome-screen.webp) Fluent is best described by its users as the **simplest AI assistant for your Mac**. It's a lightweight Spotlight-like context-aware AI companion that works on top of virtually any Mac app. Supercharged with MCP & RAG – a fully local, private Knowledge Base. ----- ## Key Features - Native macOS app - Quickly accessible in any app - Lightweight, energy-efficient - Global context-awareness - Custom actions for repetitive tasks - Selected text formatting persistence - Automation features - BYOK (Bring Your Own API Key) - Can run fully offline (with local models) - 500+ models supported - 12 built-in MCP integrations and a directory of 16,000+ external MCP servers - Built-in hybrid RAG (Knowledge Base) engine ----- ## How It Works - You can call Fluent's floating panel (Smart Panel) with a globally assigned shortcut, to execute custom actions, or custom AI prompt - Depending on whether you had text selected, file or picture attached, and context enabled, you can instantly run the action with those right there in the context - AI model of your choice, be it cloud or local one, will process all the context attached along with your request > Depending on your task, Fluent will act either as a quick AI chatbot that answers your questions, writing assistant that refines your texts, or intelligent AI agent that executes complex tasks on your Mac. ----- ## Installation ![Fluent Onboarding – Tweaking the Smart Panel](/help-assets/fluent-installation.webp) Download latest version of Fluent from our official website by clicking on button in the top-right corner of this webpage. Open the **dmg** file and move Fluent into the Applications folder. That's it! ----- ## Onboarding ![Fluent Onboarding – Tweaking the Smart Panel](/help-assets/fluent-onboarding-tweak-smart-panel.webp) In the first onboarding step you're offered to tweak Smart Panel appearance. Here you can change the color theme, font family, and size. There will be more visual tweaks available in the Settings, such as Liquid Glass, monochrome action icons, etc. ### Smart Panel Mode ![Fluent Onboarding – Smart Panel Mode](/help-assets/fluent-onboarding-smart-panel-mode.webp) Here you can choose the desired Smart Panel Mode. There are two modes: - **Follow Mouse**. This mode opens the Smart Panel right above your mouse pointer, whenever it is. This is the default mode. - **Spotlight**. If you like to see Fluent at exactly the same position it each time you open the Smart Panel, choose this mode. This is similar to how Spotlight, Alfred, Raycast, etc. work. ### Accessibility Permissions ![Fluent Onboarding – Accessibility Permissions](/help-assets/fluent-onboarding-accessibility.webp) Fluent needs Accessibility permissions in order to react on hotkeys you press and see the text you select, or context you attach. Open your **macOS Settings → Privacy & Security → Accessibility**, and enable Fluent in the app list. Restart Fluent after that. This is the only core permission. **Fluent will ask you for the necessary permissions along the work**, only if it needs to. Some of such permission are: - **Automation**. To allow Fluent interact with browsers, Notes, Calendar, Reminders, etc. - **Mail**. Fluent integrates with native Mail app directly in such a way that it needs to access it's underlying storage. This allows for ultra-fast thread aggregations in huge mailboxes (hundreds of thousands of letters). - **Location**. Only when using Location integration. ### Cloud Models ![Fluent Onboarding – Setup Cloud Models](/help-assets/fluent-onboarding-setup-cloud-models.webp) Here you are offered to set up the API keys for the cloud providers. Besides OpenAI, Google and OpenRouter, here are the other cloud providers also supported by Fluent natively: - Anthropic - Grok (xAI) - Mistral - Perplexity - Straico - Apple Intelligence Fluent also supports adding custom providers that are OpenAI-compatible. Among those are: LM Studio, Ollama, Groq, Cerebras, DeepSeek, Qwen (Alibaba), Inception, Poe, Open WebUI and many others. ### Local Models ![Fluent Onboarding – Setup Local Models](/help-assets/fluent-onboarding-setup-local-models.webp) **Fluent natively supports local MLX models**. There is more than a hundred of models pre-supplied with Fluent (you would still have to download them). Models are downloaded from Hugging Face. You can also download the model files manually and load from the disk into Fluent. Of course, Ollama and LM Studio are also supported as custom providers. ### Finish Setup ![Fluent Onboarding – One More Thing...](/help-assets/fluent-onboarding-last-step.webp) In the last step you're offered to assign a global shortcut with which you call Fluent's Smart Panel, and select your native language, which will be used for translation actions, and to let AI better know what language to speak with you. ----- ## Privacy Basics - **Fluent does not collect, process or store any of your data, even telemetry** - API keys for AI providers are stored securely in your macOS Keychain - History is encrypted and stored on disk, and can be disabled or pruned by age - Memory files are stored on disk without duplication, non-encrypted by design - Images generated with Fluent are stored on disk, non-encrypted - You can blacklist applications to prevent Fluent activation while using them --- # Use Cases Fluent keeps you focused on the task, by helping you where your work happens. You can use it for anything from polishing a Reddit comment to comparing Amazon product pages or generating a daily brief of key inbox messages and tasks. While Fluent is a handy writing assistant, its context features, MCP support and RAG (which is essentially a Knowledge Base) allow for powerful automation workflows – written in natural language. ----- ## Write !video(https://cdn.fluentmac.app/help-assets/use-cases-write.mp4) Fluent's core feature is text processing. Whether you're writing an email, Slack message, WhatsApp reply, blog draft, note, support answer, or social post – Fluent comes handy right in the app you're working in. Select the text, call the Smart Panel, and run an action like **Magic Refine**, **Fix Grammar**, **Summarize**, **Translate**, etc. You can also assign custom shortcut to any action and call that action directly with that shortcut. Some of the default actions already have shortcuts assigned, e.g. **Fix Grammar** has `Ctrl+Cmd+G`. > Actions like grammar fix, translation, or "make shorter" are usually the safest ones to use with **Auto Insert** enabled. This feature lets you run actions "in background" without opening the Smart Panel. ----- ## Reply !video(https://cdn.fluentmac.app/assets/fluent-rag-writing-emails-with-style.mp4) Fluent gets more interesting when the task is not just "rewrite this", but "help me reply on this quickly". That is where **context** comes into play. If you have a Gmail thread open, a chat conversation in Slack, or a note with some context, Fluent can use the surrounding context to enhance its response with some details. This works especially well for email replies, customer support answers, client follow-ups, etc. Make sure you have either app or browser context enabled. Read more about Context to learn how it works and how to configure it. And once you combine that with **Memory**, the results will get even more better. Small Memory groups like `My Email Replies`, `My Support Replies`, `Product Facts`, or `Team Style Guide` can give Fluent some **grounding** to work with. On top of that, you can load your writing style examples into the Memory and have a custom action use that knowledge, so that your AI-generated writing hops on a completely new level, which is essentially **ghostwriting**. > First play around with context to understand how it helps you. When you're comfortable with actions infusing your context, you can jump into Memory. ----- ## Summarize !video(https://cdn.fluentmac.app/help-assets/use-cases-summarize.mp4) Summarization in Fluent is not limited to plain text. You can summarize a browser tab, the current app, a PDF, a document, a note, a screenshot, an attached image, or a **mix of several things at once**. Sometimes the output you need is a classic summary. Sometimes it is a short brief, a clean list of key points, a meeting recap, or only the parts that matter. This works especially well when the source material is already open in front of you. Instead of copying everything into a separate tool, you can call Fluent, attach the right context, and ask for the exact shape of summary you want. > Good idea is to have custom summarize actions for different types of data, e.g. "Summarize Text" that is already a default one, "Summarize Reddit Thread" that focuses on extracting user feedback and general post meaning. ----- ## Research !video(https://cdn.fluentmac.app/help-assets/use-cases-research.mp4) Say you are reading several web pages, a PDF, maybe a document on the side, and you need one clean output from all of it. Fluent is very good at combining multiple different context together. You can easily merge several browser tabs along with multiple applications and attached files. The only limit is the model you use. ----- ## Web Search !video(https://cdn.fluentmac.app/help-assets/use-cases-web-search.mp4) **Agentic web search** is one of the main power use cases of Fluent, because it can be used along with your context and data. You can call the Smart Panel on an Amazon product page, attach a few similar products from the other tabs, and ask Fluent to research the web as well. Instead of only comparing the pages you opened yourself, it can look for reviews, complaints, benchmarks, and general sentiment, then turn all of that into one practical verdict. This is especially good when you want to decide between products, tools, services, or subscriptions and do not feel like manually opening twenty more tabs to spend an hour on comparing yourself. > Identifying "TOP 1" or "clear winner" works best when you ask for a verdict and the reasoning behind it. Otherwise LLM may just give you a neutral comparison table without any clear "winner points". ----- ## Learn !video(https://cdn.fluentmac.app/help-assets/use-cases-learn.mp4) This is another use case that fits Fluent very naturally. A lot of people use AI not only to write, but to understand things faster. That can be a scientific article, a study material, a YouTube video transcript, documentation, or even just a single paragraph that is more complicated than it needs to be. Instead of opening a separate tutor or notes app, you can call Fluent right there and ask it to explain, simplify, summarize, or turn the material into something easier to work with. One clever use case is to feed Fluent with the context of your material and get it to create study notes for you. ----- ## Sound Like You !video(https://cdn.fluentmac.app/help-assets/use-cases-sound-like-you.mp4) This has already been touched briefly, but ghostwriting with Fluent's Memory (RAG) engine is surprisingly powerful. You can create Memory groups for your own blog posts, social media or email replies, product docs, and personal notes. Fluent can augment this data not only for amplifying your writing with the appropriate context, but to actually **write in your style**. This goes far beyond just "humanizing" the text, rather getting the models really understand how you write. > Good idea is to create separate Memory groups for different voices. Your blog voice, support voice, and social media communication voice are probably not the same thing. ----- ## Continue !video(https://cdn.fluentmac.app/help-assets/use-cases-continue.mp4) With the **follow-up tabs** and **History** Fluent helps you keep iterating without losing what happened before, and you can come back later, reopen an old thread of work, and continue from there instead of starting over. The follow-up tabs were intentionally designed to keep your focus on what matters, instead of spreading it all over in a long chat. However, as many users have already requested for that, traditional chat-like flow will also be supported soon. > You can re-open last chat with `Cmd+Shift+T` hotkey, and use full-text search across all your chats in the History menu. ----- ## Plan !video(https://cdn.fluentmac.app/help-assets/use-cases-plan.mp4) AI can be exceptionally good at organizing things. Say you have rough scattered notes or thoughts, a meeting summary, or a list of things to do. Fluent can help turn that mess into something clearer, and it's not just about making a more organized list of things, but actually about **doing things**. It is one of those use cases that doesn't come into mind, but becomes very valuable once you start using it every day. ----- ## Automate !video(https://cdn.fluentmac.app/help-assets/use-cases-automate.mp4) Finally, Fluent is not only about generating text. With built-in integrations and external MCP servers, it can also help you automate the boring parts for you. For example, Fluent can automatically check your Gmail inbox for urgent letters, clean up your Downloads folder or help to sort it out. Create daily briefs in Obsidian, set up reminders and calendar events. All of that either manually, or on a scheduled basis, thanks to Scheduled actions feature. > Small automations are usually the best ones. "Summarize my morning financial news sources" is a much better starting point than "run my whole day". Though, with a proper model, Fluent can do hundreds of steps in a single flow without losing the context. ----- ## Final Note Fluent is a particularly good fit if you: - Write in many different Mac apps - Answer similar questions over and over - Spend a lot of time reading and summarizing - Want AI to sound more like you and less like a template - Want one shortcut for repetitive tasks - Care about keeping work local with Memory, History, and local models It is also one of those apps that gets better the moment you stop using it like a chatbot and start using it like a part of your actual workflow. If you only use Fluent to ask random questions, it will still be useful. But the real value starts when you create a custom action for a task you repeat often, assign a shortcut to it and run it on schedule or manually. Simple like that. --- # Models & Providers ![Fluent Onboarding - Built-in Providers, OpenAI](/help-assets/fluent-models.webp) This page explains how Fluent organizes models and providers, and how to choose a practical setup. In Fluent: - A **Model** is the AI itself - A **Provider** is the service or runtime that serves that model Fluent supports cloud providers, local models, Apple Intelligence, and custom OpenAI-compatible providers. You can keep several providers configured at the same time and switch between them when needed. ----- ## Supported Providers Fluent supports these providers natively: - OpenAI - Google - Anthropic - Grok - Mistral - Perplexity - OpenRouter - NanoGPT - Straico - Apple Intelligence - Local (MLX) Fluent also supports custom OpenAI-compatible providers such as Ollama, LM Studio, Open WebUI, Groq, Cerebras, DeepSeek, Qwen, Poe, and similar endpoints. Fluent can expose more than 500 models across these sources. ----- ## Cloud Cloud providers are the simplest place to start. Open **Settings → Models**, add the API key for the provider you want, then choose a model. Fluent highlights recommended models first. Practical starting points: - **OpenAI** for a straightforward general-purpose setup - **Google** if you prefer Gemini models - **OpenRouter** if you want one key with a large multi-provider catalog Use the other native providers when you already know you want those model families. ----- ## NanoGPT ![Fluent - NanoGPT Provider](/help-assets/fluent-nanogpt.webp) [NanoGPT]!(https://nano-gpt.com) is a privacy-focused AI gateway — much like Fluent itself. A single connection opens up hundreds of providers and models, with **zero commission** on top-ups, so what you pay is what you actually spend. NanoGPT is a **native built-in provider** in Fluent. To use it, create a NanoGPT account, then add your API key in **Settings → Models**. As an official NanoGPT partner, Fluent shows a **Get 10% Discount** link in the NanoGPT API key section (available once you have purchased Fluent). Opening it: - Takes you to NanoGPT and **automatically generates an API key** set up for Fluent - Applies an exclusive **10% token discount** to that key — on every model, including the latest models like Opus 4.8 and GPT-5.5 - Credits a one-time **$5–$10 gift** for new customers who purchased Fluent between June 1 and September 30 A NanoGPT account is required. Once the generated key is in **Settings → Models**, you can use any model right away. ----- ## Local ![Fluent Onboarding - Setup Local Models](/help-assets/fluent-local-mlx-models.webp) **Local (MLX)** is Fluent's native on-device model path on Apple Silicon. Use it when you want: - On-device execution - Lower cloud usage - Better privacy for certain tasks - Offline-capable local workflows Fluent includes a large supplied MLX catalog that you can browse and download. You can also load a local model folder from disk. ----- ## Apple Intelligence Apple Intelligence is another on-device option. If it is available and enabled on your Mac, Fluent can use it directly. No provider API key is required. Use it when you want a lightweight on-device path for simple tasks, or when you want to keep a private fallback available alongside cloud and MLX models. ----- ## Custom Providers Use a custom provider when your model setup already exists somewhere else. Open **Settings → Models**, add a custom OpenAI-compatible provider, enter the base URL, add the API key if needed, and let Fluent fetch the model list. This is useful for: - Ollama - LM Studio - Open WebUI - Internal gateways - Unusual providers Fluent does not support natively API keys are stored in the macOS Keychain. ----- ## Choosing A Setup Recommended starting points: - If you want the shortest setup, start with **OpenAI** or **Google** - If you want the widest catalog, use **OpenRouter** - If you want one key with a large catalog plus an exclusive Fluent discount, use **NanoGPT** - If privacy matters most, use **Local (MLX)** or **Apple Intelligence** - If you already use Ollama or LM Studio, add them as **Custom Providers** You do not need one provider for every task on day one. One good default is enough. ----- ## Default Model Fluent uses a **global default model** for most requests. Choose a model that is stable and fast enough for your everyday work. Then use **per-action overrides** only where a specific action needs a different model. Typical pattern: - One faster default model for everyday writing and editing - One stronger model for research or complex prompts - One local model for private notes or on-device work This is usually easier than switching the whole app to a different model every time. ----- ## Favorites If you switch models often, mark the useful ones as favorites. Favorites reduce the amount of scrolling in model menus and make quick switching more practical inside the Smart Panel. For most people, a small set is enough: - One or two cloud favorites - One local favorite - One model reserved for a heavier task type --- # Smart Panel ![Fluent – The Smart Panel](/help-assets/fluent-smart-panel.webp) The Smart Panel is the main Fluent interface. Use it to enter prompts, run actions, switch models, attach context, open history, use integrations, and continue work in tabs. ----- ## Open The Smart Panel supports two position modes: - **Follow Mouse** opens near the pointer - **Spotlight** opens at a fixed position Choose the mode in **Settings → Smart Panel**. The panel can also be pinned, minimized, expanded, copied from, or used to insert the result back into the active app. If you forget a shortcut, use the help button inside the panel to open the shortcuts helper. ----- ## History ![Fluent – Smart Panel History Menu](/help-assets/fluent-smart-panel-history.webp) Press `Cmd+Y` to open the History menu from the Smart Panel. Use it to: - Search previous chats - Reopen an older thread - Continue work from an earlier result Tabs and follow-up tabs are managed from the same area of the Smart Panel, so short tasks and longer threads can stay separate. ----- ## Actions ![Fluent – Smart Panel Action Search](/help-assets/fluent-smart-panel-action-search.webp) Press `/` in the Smart Panel to open action search. This menu includes: - Built-in actions - Custom actions - Favorite actions Use it when you already know the operation you want and do not need to browse settings. ----- ## Models ![Fluent – Smart Panel Model Search](/help-assets/fluent-smart-panel-model-search.webp) Press `#` to open model search. Use this to switch models without leaving the Smart Panel. This is useful for quick comparisons between: - Cloud and local models - Fast and stronger models - Different providers for the same task ----- ## Memory ![Fluent – Smart Panel Memory Search](/help-assets/fluent-smart-panel-memory-search.webp) Press `@` to open Memory group search. Use it to attach the Memory group that should influence the current request. This is more precise than keeping a large amount of memory attached all the time. Small, focused Memory groups usually work better than broad ones. ----- ## Context ![Fluent – Smart Panel Context Popover](/help-assets/fluent-smart-panel-context-popover.webp) Use the context popover to attach browser tabs and apps manually. This is useful when the request depends on: - Several browser tabs - One app plus one or more tabs - A specific app that is not frontmost Automatic context is useful for quick work. Manual context is better when the source set should be deliberate. ----- ## Integrations ![Fluent – Smart Panel Integrations Popover](/help-assets/fluent-smart-panel-integrations-popover.webp) Use the integrations popover to attach or access enabled tools such as: - Finder - Notes - Reminders - Calendar - Web Search - File attachments This is the entry point when the request should use tools instead of only generating text. ----- ## Settings The Smart Panel has its own settings section in Fluent. ![Fluent – Smart Panel Settings Position](/help-assets/fluent-smart-panel-settings.webp) Use the first settings group for: - Global shortcut - Theme - Liquid Glass - Follow Mouse vs Spotlight - Minimized position - Toggle minimized behavior Use the second group for: - Font family - Font weight - Font size - Colored icons - Simplified buttons - Streaming animation - Auto-scroll - Expand to maximum available space - Integration tools workflow style Use the third group for: - Always show footer - Snap points - Auto create follow-up tab - Auto pin on open - Loading cursor for auto-insert actions - Show text selection as attachment - Attach selected files automatically - Hide help button --- # Actions ![Fluent – Actions Management](/help-assets/fluent-actions-management.webp) Actions are reusable prompts and workflows. Use them for tasks you repeat often: translation, grammar fixes, concise rewrites, summaries, follow-up replies, or context-aware workflows that should behave the same way every time. Fluent includes **34 default actions**. The current default set is mostly text-focused, and later versions will expand further into Context, MCP, and Knowledge Base workflows. You can run actions from the Smart Panel, from `/` search, from the Favorites bar, or from a dedicated shortcut. ----- ## Favorites The **Favorites** bar can hold up to **8 actions**. These are the actions shown directly in the Smart Panel. Open the Actions window and drag action cards into the top row to add them. Drag to rearrange. Drag an action out of the row to remove it. Use Favorites for the actions you run constantly. A smaller set usually works better than filling all 8 slots too early. ----- ## Create ![Fluent – Action Editor](/help-assets/fluent-action-editor.webp) Open Fluent from the menu bar, go to **Actions**, and click **Create Action**. In the action editor you can configure: - Name - Prompt - Variables - Model override - Auto Insert - Grammar Mode - Shortcut - Icon and color - Schedule Start with a prompt that already proved useful in real work. Then make it reusable by replacing fixed values with variables and by keeping the instruction narrow. Examples: - Use `{{ nativeLanguage }}` instead of hardcoding one language - Use `{{ currentApp }}` if the action should react to the current app - Use `{{ @My Writing Style }}` or `{{ @Product Docs }}` if the action depends on Memory ----- ## Shortcuts You can assign a dedicated shortcut to any action from the edit window. Use shortcuts for actions you run frequently enough that opening Fluent and searching for them feels unnecessary. This works especially well for grammar fixes, translation, concise rewrites, and other high-frequency editing tasks. Keep the set small. A few good shortcuts are useful. Too many quickly become hard to remember. ----- ## Auto Insert ![Fluent – Auto Insert Loading Cursor](/help-assets/fluent-auto-insert-loading.webp) Enable **Auto Insert** when the result should go back into the current app immediately. This is best for predictable actions such as translation, grammar fixes, or simple rewrites. Fluent takes the selected text, processes it, and inserts the result back into the active text field without waiting in the Smart Panel first. While the action is running, Fluent shows a small loading cursor around the current selection. This indicates that the selection was captured and is being processed. If the action usually needs review, leave Auto Insert off and review the result in the Smart Panel instead. ----- ## Grammar Mode ![Fluent – Grammar Mode Tooltip](/help-assets/fluent-grammar-mode-tooltip.webp) Enable **Grammar Mode** for actions that should return an edited version of the input with highlighted corrections. This is the right setting for grammar fixes, spelling corrections, and similar editing workflows where Fluent should highlight the changes. For ad-hoc prompts, Fluent can also switch into grammar diff mode automatically when the request contains "fix grammar" or "fix spelling" phrases in prompt. Use Grammar Mode when the action should always behave that way. ----- ## Schedule ![Fluent – Action Schedule Settings](/help-assets/fluent-action-schedule.webp) Actions can also run on a schedule. In the action editor, choose a schedule if the action should run in the background. Fluent can notify you when it finishes. This is useful for recurring checks, summaries, or other small workflows that should happen without manual input each time. The same view lets you set the action icon and color. That helps once the action appears in Favorites or in the Smart Panel often. ----- ## Examples These examples are short on purpose. The prompt stays small, and the useful part comes from Context, Memory, or MCP. **Product Reviewer** Use this with browser context and a few attached comparison tabs. ```text Use the current browser page as the main product I am considering. Use any attached tabs as comparison products. Research the web for similar products, real reviews, repeated complaints, and strong positive signals. Then give me a final verdict: - Who this product is good for - Who should avoid it - Whether this is the one to buy or a better alternative exists Keep it practical and decisive. ``` **Inbox To Reminders** Use this with selected email text, meeting notes, or a messy task list. ```text Review the selected text and extract only real action items. Create them in Reminders if that integration is available. Use short and clear task titles. Only add due dates when they are explicitly mentioned. If something is vague, leave it without a date instead of guessing. Then show me what was created and what was skipped. ``` **Reply From My Docs** Use this when the answer should follow your own documentation and tone. ```text Draft a reply based on the current context. Use {{ @Product Docs }} and {{ @My Support Style }}. If helpful, also search my Knowledge Base for relevant details. Be clear, warm, and direct. Do not invent facts, policies, or product behavior. If something still needs confirmation, say that plainly at the end. ``` **Project Pulse** Use this when the current page or document should be combined with project tools. ```text Use the current context as the starting point. If project MCP tools are available, gather the latest related issues, pull requests, or notes. Then write a short project update in the style of {{ @Team Update Style }}. Include: - What changed - What is blocked - What needs attention next Keep it short enough to send to a team chat. ``` --- # Attachments ![Fluent – Attachments](/help-assets/fluent-attachments.webp) Attachments let you include files directly in your Fluent conversations. Use them when you want the AI to analyze documents, review spreadsheets, process images, or work with any other file content without copying and pasting the text manually. ----- ## What It Is Fluent supports a wide range of file formats for attachments: **Plain Text Formats:** - `.txt` Plain text files - `.md` Markdown documents - `.json` JSON data files - `.xml` XML files - `.csv` CSV data files - `.log` Log files - `.yaml` / `.yml` YAML files - `.toml` TOML files - `.html` HTML files - `.css` CSS files - `.js` JavaScript files - And other common code and text formats **Documents:** - `.doc` / `.docx` Microsoft Word documents - `.pdf` PDF files **Spreadsheets:** - `.xls` / `.xlsx` Microsoft Excel spreadsheets **Images:** - `.jpg` / `.jpeg` JPEG images - `.png` PNG images - `.gif` GIF images - `.webp` WebP images - `.bmp` Bitmap images - `.tiff` TIFF images - And other common image formats ----- ## Use Attachments Add attachments from the Smart Panel by: - Clicking the attachment button - Dragging and dropping files directly into the panel - Using keyboard shortcuts if available Once attached, files appear in the conversation and the AI can reference their content. ----- ## When To Use Good use cases for attachments: **Documents:** - Summarize long reports - Extract key information - Rewrite or format documents - Compare multiple documents **Spreadsheets:** - Analyze data - Generate insights - Create summaries - Transform data formats **Images:** - Describe image content - Extract text from images - Analyze visual information - Compare images **Code and Text:** - Review code - Find issues - Refactor or improve structure - Generate documentation ----- ## Privacy Attachments are sent to the selected AI provider along with your prompt. If you are using cloud models, the attachment content leaves your device. If you are using local models (MLX or Apple Intelligence), attachments stay on your Mac. Choose the model type based on the sensitivity of the content you are attaching. --- # Context ![Fluent – Smart Panel Context Selector](/help-assets/fluent-smart-panel-context-popover.webp) Context is the information Fluent attaches from what you are working on right now. That can be the active browser tab, several selected browser tabs, the frontmost app window, manually selected apps, or the current text selection. Good context usually improves the result more than a longer prompt. ----- ## What It Is Fluent can attach: - The active browser tab - Several selected browser tabs - The active app - Several selected apps - Selected text You can attach this automatically, choose it manually from the Smart Panel, or combine both approaches. Context is separate from files and separate from Memory. Files are manual attachments. Memory is long-term reusable knowledge. Context is the current working surface. ----- ## Choose Open the context selector from the Smart Panel to search browser tabs and apps and attach exactly what you want. Use this when automatic context is not enough. Typical cases: - Compare several tabs - Write in one app while using reference tabs from the browser - Keep one app and one browser tab attached at the same time Use **Clear** to remove the current selection. Use **Done** to keep it attached. ----- ## Browser Browser context uses the current page title, URL, and page content. If you select several tabs, Fluent can use them together instead of only the active tab. This is useful for: - Summaries - Comparisons - Research - Turning several tabs into one brief Supported browsers include Safari, Chrome, Arc, Brave, Edge, Opera, Vivaldi, Chromium, Helium, and Comet. For richer browser context and browser automation, browser scripting must be allowed: - Safari: **Settings → Advanced → Show features for web developers** - Safari: **Settings → Developer → Allow JavaScript from Apple Events** - Chrome-style browsers: **View → Developer → Allow JavaScript from Apple Events** The **Show browser tabs context in apps** setting is useful if you work in another app while keeping research tabs open in the browser. ----- ## Apps App context uses the focused window of the current app, or any app you attach manually from the context selector. In Apple apps such as Mail, Notes, Messages, Pages, Keynote, Numbers, and Finder, Fluent can often extract richer context. In other apps, Fluent uses what macOS Accessibility exposes from the focused window. If app context is empty, check **Accessibility** permission first. ----- ## Automatic Enable **Automatically attach active tab** if Fluent should follow the current browser tab. Enable **Automatically attach active app** if Fluent should follow the frontmost app. Enable **Lock automatically attached context** if Fluent should keep that context fixed after the Smart Panel opens. This prevents the attached source from changing while you switch windows during the task. ----- ## Selected Text Only If **Use selected text only** is enabled, Fluent ignores app and browser context whenever text is selected. Use this for editing actions such as: - Grammar fixes - Translation - Rewrites - Short in-place transformations Turn it off when Fluent should consider the full page or app around the selection. ----- ## Settings ![Fluent – Context Settings](/help-assets/fluent-context-settings.webp) Open **Settings → Context** to configure: - App context - Browser context - Automatic attachment for apps and tabs - Locking of automatically attached context - Browser tab visibility while working in other apps - Selected-text-only behavior Recommended starting points: - For text editing: enable selected-text-only behavior - For research: enable browser context and manual tab selection - For mixed app and browser work: enable browser tabs in apps --- # Variables ![Fluent – Variables Settings](/help-assets/fluent-variables-settings.webp) Variables are reusable values used inside actions. They remove repeated prompt details such as a preferred language, the current date, a product name, or another short value that should be inserted automatically when the action runs. ----- ## Built-In Variables Fluent includes these built-in variables: - `{{ nativeLanguage }}` Uses the selected native language - `{{ dateTime }}` Uses the current date and time - `{{ currentApp }}` Uses the active app name - `{{ randomNumber }}` Generates a number inside the configured range - `{{ clipboard }}` Uses current clipboard text - `{{ selectedText }}` Uses the current selected text In **Settings → Variables**, you can configure the format for `{{ dateTime }}` and the range for `{{ randomNumber }}`. ----- ## Custom Variables Use custom variables for short values you reuse often. Typical examples: - Company name - Product name - Team name - Audience label - Support email - Standard sign-off Create them in **Settings → Variables**, then reference them in actions with the same `{{ variableName }}` syntax. ----- ## Use In Actions In the action editor, click **Insert variables** if you do not want to type the variable tokens manually. When the action runs, Fluent replaces the variable with its current value. This keeps the action reusable without hardcoding details into the prompt. Examples: - Translation actions should use `{{ nativeLanguage }}` - Dated workflows should use `{{ dateTime }}` - App-aware workflows can use `{{ currentApp }}` ----- ## Examples **Translate Into My Language** ```text Translate the input text into {{ nativeLanguage }}. Preserve formatting and return only the translated text. ``` **Dated Status Update** ```text Today is {{ dateTime }}. Turn the selected notes into a short project update I can send to the team. ``` **App-Aware Explanation** ```text I am currently in {{ currentApp }}. Explain the selected text in a way that fits this app context. ``` **Brand-Safe Rewrite** ```text Rewrite this for {{ productName }}. The target audience is {{ targetAudience }}. Keep the tone aligned with {{ brandTone }}. ``` **Clipboard Cleanup** ```text Clean up the following copied text and turn it into neat bullet points: {{ clipboard }} ``` ----- ## Variables Vs Memory Use Variables for short reusable values. Use Memory when the material is longer, more nuanced, or should be searched semantically. That includes writing samples, docs, profiles, and project notes. Simple rule: - Variables for short values - Context for what is on screen now - Memory for larger reusable knowledge --- # History ![Fluent – Smart Panel History Menu](/help-assets/fluent-smart-panel-history.webp) History stores Fluent chats locally so you can reopen them later. Use it to search older chats, continue a previous thread, or recover a useful result without recreating the same prompt and context from scratch. ----- ## In The Panel Press `Cmd+Y` in the Smart Panel to open the History menu. From there you can: - Search previous chats - Reopen a previous thread - Continue work from an older result Recent items are grouped by time, which makes same-day and same-week retrieval easy even before you search. ----- ## What It Stores History keeps the Fluent conversation itself: prompts, replies, and follow-up structure. This matters most when you work in several passes. You can return to the previous result, continue in a new follow-up tab, or review what Fluent already produced before asking for the next revision. ----- ## Privacy History is stored locally as encrypted chat history. If you do not want Fluent to keep chat history, turn it off in **Settings → History**. If you want the continuity but not long retention, keep History enabled and configure automatic cleanup. ----- ## Retention ![Fluent – History Settings](/help-assets/fluent-history-settings.webp) Open **Settings → History** to configure retention. The **Automatically clean items** setting supports: - Never - Older than 1 day - Older than 1 week - Older than 1 month - Older than 3 months - Older than 6 months - Older than 1 year Choose a shorter retention window if you only want short-term continuity. Leave it on **Never** if you want long-running searchable history. ----- ## Cleanup The same settings page lets you: - See current storage used - Remove items older than a selected range - Clear all history This is separate from automatic retention. Use it when you want manual control. ----- ## Export And Import History can be exported and imported from **Settings → History**. Use export for backup or transfer. Use import to restore an existing History database. --- # Blacklist ![Fluent – Blacklist Settings](/help-assets/fluent-blacklist-settings.webp) Use **Blacklist** to disable Fluent in specific apps. When an app is blacklisted and enabled, Fluent ignores it while that app is frontmost. This prevents the Smart Panel, text selection handling, and related Fluent behavior from activating there. ----- ## Why Blacklist is useful for apps where Fluent should stay completely inactive. Typical examples: - Password managers - Banking or finance apps - Games and full-screen apps - Presentation or screen-sharing situations - Apps with heavy keyboard shortcut use If an app should never be part of a Fluent workflow, add it here. ----- ## Add ![Fluent – Add Application to Blacklist](/help-assets/fluent-add-application-blacklist.webp) Open **Settings → Blacklist** and click **Add Application**. Fluent shows a searchable list of installed apps. Select the app you want and add it. The app then appears in the blacklist table. This is an app-level setting. You do not need to write rules or patterns. ----- ## Enable Each blacklist entry has its own **Enabled** toggle. Turn the entry off if you want to allow Fluent in that app again without removing the app from the list. Turn it back on later if needed. --- # Setup & Usage ![Fluent – Built-in Integrations](/help-assets/fluent-integrations.webp) MCP is the tool layer behind **Integrations** in Fluent. It lets Fluent do more than generate text. With MCP enabled, Fluent can search the web, fetch pages, read files, work with apps such as Notes or Calendar, create reminders, use Memory tools, control the browser, or run shell commands. ----- ## What It Is In Fluent, MCP is not a separate UI. It is configured in **Settings → Integrations**. Enable an integration, and Fluent exposes its tools to the model. Disable it, and those tools are not available. This keeps MCP tied to concrete integrations instead of turning it into a separate system the user has to manage by hand. ----- ## Start Recommended first setup: 1. Open **Settings → Integrations** 2. Enable one built-in integration or click **Add Integration** 3. Open the integration settings 4. Leave only the tools you actually need enabled 5. Set approval behavior for tools that write or delete 6. Test with a small request Good first integrations: - **Finder** for file workflows - **Web Search** for research - **Reminders** or **Calendar** for creation workflows ----- ## Built-In ![Fluent – Integration Tools](/help-assets/fluent-integration-tools.webp) Fluent includes built-in integrations for: - Finder - Reminders - Notes - Calendar - Web Search - Web Fetch - Browser Automation - YouTube - Shell - Location - Memory Built-in integrations are enabled directly from **Settings → Integrations**. After enabling one, open its settings and review: - Which tools are enabled - Which tools ask for approval - Whether you need any custom tools in that integration Each integration is configured separately. Open its settings to view the available tools, disable the ones you do not want, and set approval behavior where needed. Fluent asks for macOS permissions only when that integration needs them. ----- ## Approvals Approval settings matter most for tools that can write, edit, remove, or trigger actions outside Fluent. Typical pattern: - Allow read-only tools more freely - Keep write or destructive tools behind approval This is configured per tool, not only per integration. ----- ## External ![Fluent – External Integrations](/help-assets/fluent-external-integrations.webp) For external MCP servers, click **Add Integration**. Use the catalog if the server is listed. Use **Configure Manually** if you already know the server details. Manual setup usually requires: - Command and arguments for local process servers - URL for remote servers - Environment variables or credentials After saving, Fluent connects to the server and discovers the tools it exposes. ----- ## Custom Tools ![Fluent – Custom Tools](/help-assets/fluent-custom-tools.webp) Built-in integrations can be extended with custom tools. Custom tools are useful when you want a narrow, repeatable operation instead of relying on the model to improvise each step. A custom tool can run: - JavaScript in the browser - AppleScript on macOS - Shell script in Terminal You can also define parameters and have them injected into the tool automatically. ----- ## Usage Use normal prompts. You do not need a separate MCP syntax for everyday work. Examples: - "Turn these meeting notes into reminders" - "Research these competitors and list the important differences" - "Read this folder and tell me what changed" If the workflow repeats, turn it into an Action. If it should run in the background, schedule that Action. Context still matters. Tool access is most useful when the request also includes the right page, selection, file, or Memory group. ----- ## Tool Set A smaller tool set usually works better than a larger one. Disable tools you do not need. Keep destructive tools behind approval unless you trust the workflow completely. This makes MCP behavior easier to predict and easier to troubleshoot. ----- ## Why Use MCP Use MCP when the task should read, fetch, search, create, update, or automate something. Without MCP, Actions stay prompt-based. With MCP, the same action can inspect a page, search the web, read a folder, create a reminder, update a note, or search Memory before it answers. > Start with one integration, one small task, and one approval setting you understand. Expand only after that works. --- # Built-In Integrations ![Fluent – Built-in Integrations](/help-assets/fluent-integrations.webp) There are currently 12 built-in integrations that ship with Fluent and can be enabled in **Settings → Integrations**. They are the easiest way to start using MCP because the setup process is straightforward – just enable it and use it. ----- ## macOS Integrations Fluent currently includes these built-in Mac integrations: - **Finder** for reading, searching, creating, editing, moving, and removing files and folders - **Reminders** for task creation and list workflows - **Notes** for note retrieval and updates - **Calendar** for reading and managing events - **Location** for tasks that depend on the current location - **Maps** for searching Apple Maps for places and addresses Use these when the workflow is mostly inside macOS apps and files. ----- ## Web Integrations Fluent also includes: - **Web Search** for research and discovery - **Web Fetch** for reading known URLs - **Browser Automation** for live browser workflows - **YouTube** for video metadata and transcripts Use **Web Search** when Fluent needs to discover sources. Use **Web Fetch** when you already know the URL. Use **Browser Automation** when the task depends on live tabs or interactive pages. ----- ## System Integrations Two built-ins extend Fluent more directly: - **Shell** for terminal-backed workflows - **Memory** for tool access to Memory groups, notes, and retrieval These are useful when an action needs either local command execution or structured retrieval from Memory during MCP workflows. ----- ## Tool Configuration ![Fluent – Integration Tools](/help-assets/fluent-integration-tools.webp) For each integration you can: - Enable or disable specific tools - Set **Ask for Approval** behavior per tool - Add custom tools in many integrations > A smaller tool set is easier to trust and easier for AI to use correctly. ----- ## Custom Tools ![Fluent – Custom Tools](/help-assets/fluent-custom-tools.webp) Built-in integrations in Fluent can be extended by creating custom tools, which can run custom JavaScript, AppleScript or Shell scripts. Treat them as "small skills" which happen to be very handy sometimes. ----- ## Final Note If you are starting with MCP, enable one built-in integration, keep only the tools you need, and test a small task first. --- # External Integrations ![Fluent – External Integrations](/help-assets/fluent-external-integrations.webp) Fluent supports external MPC servers and offers a catalog of 16,000+ servers available. Supported services or apps include Notion, Gmail, Slack, Asana, Obsidian, Telegram, or any other MCP compatible server. > External integrations currently require advanced knowledge and configuration. However, Fluent aims to simplify the process as much as possible. ----- ## Catalog The easiest path to find a necessary integration is the catalog. Open **Settings → Integrations**, click **Add Integration**, search for the server you want, and add it from there. Fluent can prefill much of the configuration for catalog integrations, which makes setup faster. You can also click the "Instructions" button to open the GitHub repository webpage of that integration for setup & configuration details. ----- ## Manual Setup ![Fluent – Configure An Integration Manually](/help-assets/fluent-manual-integration.webp) Use **Configure Manually** when you already know the server details. Fluent supports: - Stdio servers - HTTP - SSE - OpenAPI, which is currently more experimental Manual setup usually requires one of these: - Command and arguments - Server URL or run command with arguments - Environment variables - Tokens or credentials Use **Allow Insecure SSL** only for trusted local or internal endpoints that require it. ----- ## Connected State ![Fluent – Connected Integration](/help-assets/fluent-connected-mcp.webp) After saving the integration, Fluent connects to the server and discovers the tools it exposes. If the connection succeeds, you can: - Review the tool list - Disable tools you do not want - Set approval behavior per tool If it fails, Fluent shows connection status, an error message, and logs. Check those first before changing the settings. ----- ## Local Servers If you're using local process servers, Fluent spawns them as child processes and keeps control over them. If the server is launched through `npx`, `uvx`, or another local runtime (e.g. `docker`), make sure that runtime is installed and available in your shell environment. Most local connection failures come from: - Wrong command - Wrong arguments - Missing environment variables - Missing runtime ----- ## When To Use Them Use an external integration when the workflow depends on a third-party service or app. If the same task is already covered by a built-in integration, use the built-in one first. Setup is usually shorter and troubleshooting is simpler. --- # Troubleshooting Most MCP problems come from one of these causes: - The integration is disabled - The tool is disabled - The server is not connecting - A required permission was denied - The runtime or environment is missing ----- ## First Checks First of all, ensure you are running a model that is capable of using MCP tools. Then start with the smallest possible test. 1. Confirm the integration is enabled in Settings → Integrations 2. Confirm the exact tool you need is enabled and verify it's approval setting 3. Reconnect the integration 4. Test with a very small request Small requests are better for debugging than large actions. Examples: - "List my reminder lists" - "Calculate this folder size" ----- ## Permissions Some integrations need macOS permission before they can work. Common cases: - Calendar - Reminders - Notes - Location - Browser Automation through Apple Events For browser-related workflows, also confirm **Allow JavaScript from Apple Events** in the browser if richer context or browser automation is expected. If Fluent itself is not reacting properly to hotkeys or selected text, also check Accessibility. ----- ## Local Servers If a local external server does not connect, check the launch configuration first. Most failures come from: - Wrong command - Wrong arguments - Missing environment variables - Missing runtime such as `npx` or `uvx` If the server starts and exits immediately, open the integration logs. ----- ## Remote Servers If the server is remote, treat it as a connection problem first. Check: - Server URL - Server availability - Tokens or credentials - Environment variables - SSL settings for trusted local or internal endpoints If you are using OpenAPI mode, keep in mind that it is currently the most experimental path. ----- ## Connected But No Tools If the integration connects but tools do not appear, reconnect once and then inspect the status and logs in the integration editor. ![Fluent – Integrations Troubleshooting](/help-assets/fluent-mcp-troubleshooting.webp) If the tools are visible but Fluent still does not use them, make the request more explicit. For example: - "Use Reminders to create tasks from this" - "Use Web Search to compare these products" - "Read this folder and tell me how many images are in it" ----- ## Too Many Tools If a model chooses the wrong tool or behaves inconsistently, reduce the available tool set. Disable integrations and/or tools that are unrelated to the task. Also check whether the workflow is waiting for approval rather than failing. --- # Setup & Usage ![Fluent – Memory Overview](/help-assets/fluent-memory.webp) Memory is Fluent's local long-term knowledge layer. In other words – a fully local, private Knowledge Base. Use it for information that should stay available across many tasks: writing style, product documentation, project notes, profiles, reference material, and similar reusable context. ----- ## How It Works Fluent's Memory is powered by a native hybrid RAG engine that retreives semantically relevant data based on request. When you add notes or files, Fluent indexes them locally so it can search them later and pull out the relevant parts during a request. You do not have to manage the retrieval details manually. ----- ## Groups Memory is organized into groups. A group should represent one domain, such as: - A writing style - One project - Product documentation - Support material - Personal profile information Fluent starts with a few practical examples such as `My Profile`, `My Writing Style`, and `My Projects`. ----- ## Start Open **Settings → Memory** and create a group. Good first groups: - `My Writing Style` - `Current Project` - `Product Docs` - `Support Answers` Choose a group name that already tells you what belongs there. ----- ## Add Content ![Fluent – Memory Group Expanded](/help-assets/fluent-memory-group-expanded.webp) Memory can contain both notes and files. You can add: - Notes - Individual files - Entire folders Use files for stable reference material. Use notes for information that changes over time and should be easy to edit. This split is important because not all useful memory belongs in a document. Drag and drop works, and you can also use the file picker. Folder imports are capped, so use them for focused collections rather than large archives. ----- ## Use Notes Use notes for information that changes often. Good examples: - Personal profile details - Writing style rules - Project priorities - Product facts that change over time - Client or team preferences Notes are usually easier to maintain than trying to keep the same information inside a document. ----- ## Use Memory In Requests ![Fluent – Memory Usage in the Smart Panel](/help-assets/fluent-memory-usage-smart-panel.webp) There are two common ways to use Memory: either directly in the Smart Panel by typing a `@` notation, or written in the actions like: ```text My action prompt... Use {{ @"My Writing Style" }} to generate a response that sounds 100% like myself. Use {{ @"Product Docs" }} for reference about my product. ``` The syntax is similar to Variables. If your memory group has whitespaces in name, you have to wrap the whole name in double quotes: `{{ @"My Style"}}`. Memory is not only storage. Fluent can search it. You can: - Reference a specific group directly in prompts and actions - Enable the **Memory** integration and let Fluent use Memory tools during MCP workflows Direct group references are good when you already know which group should be used. Tool-based retrieval is useful when Fluent needs to search more flexibly. > Enable the **Memory** integration in **Settings → Integrations** if you want Fluent to use Memory tools. ----- ## Why Use It Memory improves tasks that depend on continuity or internal reference material. Examples: - Replies that should follow your usual tone - Answers grounded in product documentation - Project work that depends on current priorities - Actions that would otherwise need a long repeated prompt ----- ## Reindex Reindex the group after file changes. This step matters for file-based memory. If the source material changed and the group was not reindexed, retrieval may still use older content. ----- ## Disable Items If an item is temporarily irrelevant, disable it instead of deleting it. This keeps the group cleaner without removing the source completely. --- # Best Practices Memory works best when it stays small, focused, and current. Use this page as the maintenance checklist for Memory. ----- ## Keep Groups Lean Create groups around one topic or one job. Good examples: - `My Writing Style` - `My Reddit Posts` - `My LinkedIn Replies` - `Product Docs` - `Current Project` - `Support Replies` Avoid large mixed groups unless you have a clear reason for them. Narrow groups usually retrieve better, and help model with focus and consistency. ----- ## Prefer Notes For Dynamic Information Use notes for information you expect to update over time. Good note candidates: - Personal profile details - Project priorities - Client-specific information Use files for more stable source material such as docs, PDFs, markdown files, and transcripts. ----- ## Reindex After File Changes If a source file changes, reindex the group. Fluent does not automatically reindex changed files yet. ----- ## Disable Before Deleting Disable an item when you want to exclude it temporarily. This is useful when: - The material is outdated for now - You want to compare retrieval with and without one source - You are cleaning a group without losing the item completely Delete only if you know the item should be removed entirely. ----- ## Avoid Duplicates Do not store the same information across several overlapping groups or notes unless there is a clear reason. One clear source of truth is easier for Fluent to retrieve correctly than several near-duplicates with slightly different names. ----- ## Import Less Import only what the workflow needs. Large dumps usually lower retrieval quality and make AI decision or maintenance harder. Folder imports are capped for a reason (the limit is `1000` files). Memory is intended to be a curated working set, rather than a raw archive of everything. --- # Settings ![Fluent – Settings](/help-assets/fluent-settings.webp) Fluent settings are organized into tabs that cover everything from basic preferences to advanced customization. Access settings from the menu bar or with the keyboard shortcut. ----- ## General The General tab contains the most common settings. **Language Settings:** Choose your native language. Fluent uses this to improve responses and UI elements when appropriate. **Global AI Model Selection:** Set the default model for all conversations. This is the model Fluent uses unless you manually select a different one in the Smart Panel. You can override this default on a per-conversation basis or when running specific actions. **Appearance:** Choose between System, Light, or Dark theme: - **System** follows macOS appearance settings - **Light** always uses light mode - **Dark** always uses dark mode **System Settings:** - **Launch at login** – Start Fluent automatically when you log in to macOS - **Keep dock icon on** – Show Fluent in the Dock (disable for a cleaner Dock) - **Hide menu bar icon** – Hide the menu bar icon if you prefer keyboard-only access ----- ## Advanced ![Fluent – Advanced Settings](/help-assets/fluent-advanced-settings.webp) The Advanced tab contains settings that change Fluent behavior and are intended for users who want more control. > **Warning:** These settings can change Fluent behavior, proceed at your own risk. **System Prompt:** The system prompt defines how Fluent behaves across all conversations. Click **Customize** to modify the default instructions that guide the AI's responses. The default system prompt is carefully designed. Only customize it if you have specific requirements and understand how system prompts work. **MCP Prompt:** The MCP prompt controls how Fluent uses Model Context Protocol tools. Click **Customize** to modify the instructions that guide tool selection and usage. This is separate from the system prompt and focuses specifically on MCP behavior, such as: - When to use MCP tools - How to select the right server - How to chain tool executions **Experimental Features:** - **Expressive responses** – Enable AI model to respond more expressively, using formatted layouts (e.g., lists, tables, etc.) - **Include emojis** – When enabled, the model may include emojis in responses - **No em dashes in response** – Instruct AI to avoid em dashes unless provided or explicitly requested These features are experimental and may change or be removed in future versions. **PopClip:** Install a PopClip extension that opens Fluent or its actions with the selected text. This is useful if you use PopClip for text editing workflows. Click **Install** to add the extension to PopClip. ----- ## Other Settings Tabs In addition to General and Advanced, Fluent has dedicated tabs for: - **Smart Panel** – Position mode, shortcuts, and panel behavior - **Models** – Provider API keys, model selection, and custom providers - **Context** – App and browser context settings - **Integrations** – MCP integrations and tool management - **Memory** – Memory groups and knowledge management - **Variables** – Custom variables and built-in variable configuration - **History** – Retention, cleanup, export, and import - **Blacklist** – Apps where Fluent should not activate Each tab focuses on a specific Fluent feature and contains all related settings in one place. ----- ## Restore Defaults Most customizable settings include a **Restore to built-in** option that resets them to the original default. Use this if you've made changes and want to go back to the standard behavior. --- # Permissions ![Fluent Onboarding - Accessibility Permissions](/help-assets/fluent-onboarding-accessibility.webp) Fluent uses one core permission and several feature-specific permissions. Accessibility is the only core permission. Everything else is requested only when the relevant feature is used. ----- ## Accessibility Accessibility is required for: - Global shortcuts - Selected text capture - App context extraction Open **macOS Settings → Privacy & Security → Accessibility**, enable Fluent, then restart the app. If Fluent opens but cannot see selections, cannot react to the shortcut, or app context stays empty, check Accessibility first. ----- ## Automation Automation permission is required when Fluent needs to control or read from other apps through Apple events. Typical cases: - Browser automation - Notes workflows - Calendar workflows - Reminders workflows macOS requests this permission when a workflow first needs it. ----- ## Browsers For richer browser context and browser automation, browsers also need to allow JavaScript from Apple Events. Setup: - Safari: **Settings → Advanced → Show features for web developers** - Safari: **Settings → Developer → Allow JavaScript from Apple Events** - Chrome-style browsers: **View → Developer → Allow JavaScript from Apple Events** If browser context is incomplete, check this before changing other settings. ----- ## Calendar And Reminders Calendar and Reminders permissions are requested only when those integrations are used. If you never use those integrations, Fluent never needs those permissions. ----- ## Location Location permission is required only for the Location integration or workflows that depend on current location. For many users, this permission is optional. ----- ## Mail Some Mail workflows require access to the local Mail storage so Fluent can extract thread context efficiently. If you use those workflows, Fluent asks for that access when needed. If you do not use Mail workflows, you may never see this request. ----- ## Troubleshooting If you never get permission request from Fluent, check if you are using the official Fluent. Cracked versions may often break the configuration or silently be blocked by Gatekeeper. You can reset all the permissions with the following command: ``` tccutil reset All net.epicbits.FluentStandalone ``` --- # Privacy Principles This page explains the main privacy decisions behind Fluent. ----- ## No Authentication Fluent does not have any authentication by design. There is no need in your Email or any similar idenfitier. ----- ## No Telemetry Fluent does not collect personal data or telemetry. ----- ## API Keys Cloud provider API keys are stored locally in the macOS Keychain. ----- ## Model Traffic If you use a cloud model, the encrypted request goes to that provider under your own API key account. If you use a local model, provider or Apple Intelligence, the request stays on-device. ----- ## History History is stored locally and encrypted on disk. You can: - Disable History entirely - Set automatic cleanup by age - Clean it manually - Export and import it Use **Settings → History** for these controls. ----- ## Memory Memory is also local. Fluent does not duplicate your original source files into a separate hidden document store. It keeps local indexing data so retrieval can work, and it uses the original files and notes as the source material. Memory is not intended to be an encrypted secret store. Use it for reusable knowledge, not for information that should never be part of retrieval. ----- ## Images Images generated by Fluent are stored locally non-encrypted. Though currently image generation is only supported with Google provider. --- # FAQ Short answers to the questions that come up most often. ----- ## Basics **What is Fluent best at?** Fluent is best for in-place AI work on Mac: rewriting selected text, drafting replies, comparing tabs, summarizing files, and running repeated workflows through Actions: with Context, Memory, and MCP. **Do I need an API key to use Fluent?** Only for cloud providers. Local models and Apple Intelligence do not need a provider API key. **Can Fluent work offline?** Yes, if you use local models or Apple Intelligence. Cloud providers, web search, and many external integrations still need network access. However, please note: Fluent uses online license key verification from time to time. Therefore, Internet is required at least once a week to validate your key. **How do I migrate my license key to another Mac?** License Manager will be available soon. Currently you can write us at [support@epicbits.net](mailto:support@epicbits.net). ----- ## Models **Can I use more than one provider?** Yes. You can setup and use as many providers as you want. It's convenient to add most used models to Favorites. **What is the difference between Local (MLX) and a custom provider such as Ollama or LM Studio?** Local (MLX) is Fluent's native local model path specifically for Apple Silicon Macs. It comes handy when you don't want any external software to run your models. Ollama, LM Studio, Open WebUI, and similar tools can be added as custom OpenAI-compatible providers. **How do I setup Ollama or LM Studio?** Create a Custom Provider in Fluent settings. Refer to the official documentation of these providers for API URL. You generally don't need an API key for these. **Can you recommend the best models?** Sure. It's always the latest models out there, because they are trained better and designed with all the past flaws in mind. There is also no silver bullet sometimes, as one model can be excellent at writing, while bad in agentic workflows. ----- ## Actions And Workflow **What is the difference between Actions, Context, Memory, and Integrations?** Actions are reusable prompts or workflows. Context the application or browser context that Fluent can use to amplify your AI request with relevant data. Memory is long-term reusable knowledge you keep locally. Integrations are tools Fluent can use through MCP. **When should I use Variables instead of Memory?** Use Variables for short reusable values such as a language, a company name, or a repeated phrase. Use Memory for longer material that should be searched semantically, such as writing examples, product docs, or project notes. ----- ## Permissions And Privacy **Do I need Accessibility permission?** Yes. Accessibility is the only core permission. It enables global shortcuts, selected text capture, and app context. **Does Fluent collect my data?** No. Fluent does not collect personal data or telemetry. **Where are API keys stored?** In the macOS Keychain. **Can I keep Fluent away from certain apps?** Yes. Use Blacklist to disable Fluent in specific apps. ----- ## MCP And Memory **Do I need Integrations (MCP) to use Fluent?** No. Fluent is already useful for writing, rewriting, and context-aware tasks without MCP. MCP adds tools such as search, files, app integrations, and automation. **Does Memory require MCP?** Built-in Memory integration needs to be enabled in order for Fluent to work with your Memory. **Can I schedule things in Fluent?** Yes. Actions can run on a schedule and notify you when they finish. --- # Common Issues ## It Does Not Open If Fluent does not open with the global or action shortcuts: 1. Check the assigned shortcut 2. Check **macOS Settings → Privacy & Security → Accessibility** 3. Restart Fluent if you just granted Accessibility 4. Make sure the shortcut is not already used by another app If Fluent still does not open, test with a different shortcut. ----- ## No Selected Text If Fluent opens but the current selection is missing, check Accessibility permissions first. Make sure Fluent is enabled under **Privacy & Security → Accessibility**. Then test the same selection in a simple app such as Notes. This tells you whether the issue is global or specific to one app. If selection capture fails in every app, restart Fluent and test again. ----- ## No Insertion If an action runs but nothing is inserted back into the current app: - Confirm that the target field is a normal editable text field - Confirm that the action is configured for **Auto Insert** if that is the expected behavior - Test the same action in Notes or another simple editor If the action inserts correctly in a simple app but not in the original one, the issue is usually the target app, not Fluent itself. ----- ## Missing Context If browser or app context is missing, open **Settings → Context** first. Check these items: - **Enable app context** - **Enable browser context** - **Automatically attach active app** or **Automatically attach active tab** if you expect automatic attachment - **Use selected text only** if Fluent should ignore the surrounding app and page when text is selected For browser context, also confirm that browser scripting is allowed. Safari and Chromium-style browsers need **Allow JavaScript from Apple Events** for richer browser context and browser automation workflows. Make sure you are not in Incognito mode in your browser, as it always uses default settings, and AppleScript is usually disabled in this mode by default. ----- ## AppleScript Issues Fluent might not ask you for Automation permissions that require AppleScript. The most common reason for this is using a cracked version of Fluent that was quarantined by macOS Gatekeeper. Another possible reason: check if you have AU components in your user folder. macOS `osascript`, which is responsible for AppleScript interaction, has a bug that might prevent Fluent from asking for Automation permissions due to the AU plugins folder being present in the user folder. ----- ## Model Empty Response If the model is returning an empty response or loading for too long, first check if it's capable enough for the context you attach to it. For example, Apple Intelligence or tiny models like Qwen3 0.6B struggle with anything beyond basic questions or a few paragraphs – they will definitely not handle attached files, browser or app context, not to mention MCP. Another popular reason for an empty response is the "Use structured JSON" option. Some models do not support it; some struggle when routed via third-party providers. Disable this feature either on a provider model or (preferred) via the model card in Models settings. One less common reason for an empty response can be censoring. Models that tend to censor a lot can silently fail and not return a response. Check if your request contains a question or data that your model might not accept. ----- ## It Looks Like A Provider Error If the request fails with messages about API keys, billing, missing models, or rate limits, refer to [Provider Errors](/help/provider-errors). Those problems usually come from the selected provider, not from Fluent itself. --- # Provider Errors ## Common Status Codes Fluent currently maps these provider errors directly: - `400` Bad request - `401` Invalid API key - `402` Payment required - `403` Access forbidden - `404` Model not found - `429` Rate limit exceeded - `500` Server error - `502` Bad gateway - `503` Service unavailable - `504` Gateway timeout ----- ## 401 And 403 Check these first: - The API key is saved for the correct provider - The key is still valid - The provider account has access to the selected model - The endpoint is the correct one for that provider `401` usually means the key is wrong or expired. `403` usually means the key exists but does not have access to that model or route. Most common resolution is to recreate the API key, ensuring it has the correct project and/or organization – if that applies. ----- ## 402 `402` is usually a billing problem. Check the provider account directly for: - Missing credits - Failed billing - Paused usage - Account restrictions ----- ## 404 `404` usually means the selected model is not available on that provider. Check: - The exact model name - Whether the model exists on that provider - Whether your account has access to it ----- ## 429 `429` means rate limiting. Wait a moment and try again. If it happens often: - Reduce heavy parallel requests - Use a faster or lighter model - Switch to another provider for that workflow ----- ## 400 `400` is a general request error. This can mean: - Malformed input - Unsupported parameter - Model-specific restriction - Partial incompatibility on a custom OpenAI-compatible endpoint If the same task works on one provider or model, but fails with `400` on another, the difference is usually provider compatibility or configuration. Most common resolution to this error is to explicitly enable or disable certain features in the model card settings. In particular, "Use structured JSON", "Streaming" or "Use tools". It solely depends on the model. ----- ## 5xx `500`, `502`, `503`, and `504` usually indicate temporary provider-side problems. Typical causes: - Provider instability - Maintenance - Timeouts - Temporary overload Try again later or switch to another model temporarily. ----- ## Custom Providers For custom OpenAI-compatible providers, also check: - Base URL - Required API key format - Model list availability - Provider-specific compatibility limits If the same prompt works on a native provider but fails only on one custom endpoint, check the endpoint setup first. See [Use Cases](/help/use-cases) and [Common Issues](/help/common-issues).