<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nam Tran</title>
    <description>The latest articles on DEV Community by Nam Tran (@gemkids).</description>
    <link>https://dev.to/gemkids</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3853874%2F8053ce60-3216-42e1-b263-4593f1b18e8d.jpg</url>
      <title>DEV Community: Nam Tran</title>
      <link>https://dev.to/gemkids</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gemkids"/>
    <language>en</language>
    <item>
      <title>I built a free system-wide AI writing assistant for Windows, macOS and Linux</title>
      <dc:creator>Nam Tran</dc:creator>
      <pubDate>Sat, 10 Oct 2026 19:48:21 +0000</pubDate>
      <link>https://dev.to/gemkids/i-built-a-free-system-wide-ai-writing-assistant-for-windows-macos-and-linux-48d</link>
      <guid>https://dev.to/gemkids/i-built-a-free-system-wide-ai-writing-assistant-for-windows-macos-and-linux-48d</guid>
      <description>&lt;p&gt;Every day, writing with AI often means tedious context switching: highlight text, copy it, switch to a browser tab, paste into a chat UI, wait, copy the result, and paste it back over your draft.&lt;/p&gt;

&lt;p&gt;Apple's writing tools showed a cleaner interaction: trigger AI directly where you type with a shortcut. But many of us work on Windows or Linux, or want to pick the model ourselves, such as Claude, Gemini, or an offline local model.&lt;/p&gt;

&lt;p&gt;That led me to build &lt;strong&gt;AI Shortcuts&lt;/strong&gt; (&lt;a href="https://github.com/gemkids275/AIShortcuts" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; / &lt;a href="https://aishortcuts.github.io/" rel="noopener noreferrer"&gt;Website&lt;/a&gt;), a free, open-source desktop app for Windows, macOS, and Linux that runs AI tasks directly on selected text across any application.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;The workflow stays out of your way until invoked:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Select text&lt;/strong&gt; in any app (browser, code editor, email client, notes).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Press your hotkey&lt;/strong&gt; (&lt;code&gt;Ctrl+Space&lt;/code&gt; on Windows and Linux, &lt;code&gt;Option+Space&lt;/code&gt; on macOS).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick a command&lt;/strong&gt; from the popup next to your cursor, or enter a custom prompt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Receive the output&lt;/strong&gt;: text replaces your selection directly (undo with &lt;code&gt;Ctrl+Z&lt;/code&gt; / &lt;code&gt;Cmd+Z&lt;/code&gt;) or opens in a response window where you can keep chatting.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If no text is selected when you press the shortcut, AI Shortcuts launches in chat mode, letting you ask questions from anywhere on your desktop.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwh6mpvk7krwkxbssee51.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwh6mpvk7krwkxbssee51.gif" alt="Windows: select text, press the hotkey, choose Proofread" width="760" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpaeghr9xgfkezfqgswzm.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpaeghr9xgfkezfqgswzm.gif" alt="macOS: select text, press the hotkey, choose a command" width="680" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Built-in commands and customization
&lt;/h2&gt;

&lt;p&gt;AI Shortcuts provides eight built-in commands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Proofread&lt;/strong&gt;: corrects grammar, spelling, and punctuation while preserving meaning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rewrite&lt;/strong&gt;: rephrases sentences for clearer expression.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Friendly / Professional / Concise&lt;/strong&gt;: adjusts tone or eliminates filler.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Summary / Key Points / Table&lt;/strong&gt;: condenses articles, notes, or transcripts into structured summaries.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With the &lt;strong&gt;Command Manager&lt;/strong&gt;, you can create custom prompts, reorder actions, assign dedicated shortcuts with conflict detection, and import or export configurations. You can also paste images (&lt;code&gt;Ctrl+V&lt;/code&gt; / &lt;code&gt;Cmd+V&lt;/code&gt;) or attach text files directly into the prompt for multimodal context.&lt;/p&gt;

&lt;h2&gt;
  
  
  A real example: Proofreading in action
&lt;/h2&gt;

&lt;p&gt;Here is a real example from the project website guide:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hi Anna, i wanted to follow up on the meeting we had yesterday. Their were a few things we didnt finish, and I think we should of scheduled more time. Can you send me the slides befor friday so I can review them?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Selecting this draft and triggering &lt;strong&gt;Proofread&lt;/strong&gt; returns the corrected draft alongside an itemized list of fixes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hi Anna, I wanted to follow up on the meeting we had yesterday. There were a few things we didn't finish, and I think we should have scheduled more time. Can you send me the slides before Friday so I can review them?

Corrections made:
- "i" → "I"
- "Their" → "There"
- "didnt" → "didn't"
- "should of" → "should have"
- "befor" → "before"
- "friday" → "Friday"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The response window shows the corrected text and the list of fixes:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs5ch09o978zvbtqrsz7w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs5ch09o978zvbtqrsz7w.png" alt="Response window showing the corrected text and the list of corrections" width="600" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Bring your own model (Cloud or offline Ollama)
&lt;/h2&gt;

&lt;p&gt;AI Shortcuts works with your preferred model without recurring subscriptions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cloud providers&lt;/strong&gt;: Google Gemini (free tier), Anthropic Claude, OpenAI-compatible APIs, Mistral AI, and OpenRouter (100+ models).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local &amp;amp; offline models&lt;/strong&gt;: Ollama, LM Studio, and llama.cpp. On Apple Silicon, on-device MLX models run natively.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can set custom providers per command. For instance, route quick proofreads to a lightweight local Ollama model to stay offline, and reserve a larger cloud model for complex rewrites.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy and key storage
&lt;/h2&gt;

&lt;p&gt;Because desktop writing tools interact directly with your text, privacy is essential:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No telemetry&lt;/strong&gt;: zero analytics, trackers, or ads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Direct requests&lt;/strong&gt;: your text goes only to your chosen AI provider when you trigger a command.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Key storage facts&lt;/strong&gt;: on macOS, API keys are stored in the system Keychain. On Windows and Linux, provider keys are stored in the local settings file with light obfuscation (not encryption); per-command overrides use the operating system keyring when available. For complete offline privacy, pair the tool with local Ollama models.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Limitations and platform details
&lt;/h2&gt;

&lt;p&gt;To be transparent about current constraints:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Windows&lt;/strong&gt;: pre-built binaries are not code-signed, so Windows SmartScreen may show a one-time prompt ("More info" → "Run anyway"). Binaries include SHA-256 checksums and GitHub build provenance attestations (&lt;code&gt;gh attestation verify&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Linux&lt;/strong&gt;: requires an X11 session and &lt;code&gt;xclip&lt;/code&gt; or &lt;code&gt;xsel&lt;/code&gt;. Global hotkeys do not work under Wayland.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;macOS&lt;/strong&gt;: requires macOS 14 (Sonoma) or newer, and needs Accessibility and Screen Recording permissions in System Settings to capture selected text.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Credits and download links
&lt;/h2&gt;

&lt;p&gt;AI Shortcuts is a fork of &lt;a href="https://github.com/theJayTea/WritingTools" rel="noopener noreferrer"&gt;WritingTools&lt;/a&gt; by &lt;a href="https://github.com/theJayTea" rel="noopener noreferrer"&gt;theJayTea&lt;/a&gt; (Jesai), with initial native macOS work by &lt;a href="https://github.com/Aryamirsepasi" rel="noopener noreferrer"&gt;Arya Mirsepasi&lt;/a&gt;. Distributed under &lt;a href="https://www.gnu.org/licenses/gpl-3.0.html" rel="noopener noreferrer"&gt;GPL-3.0&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://aishortcuts.github.io/" rel="noopener noreferrer"&gt;https://aishortcuts.github.io/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/gemkids275/AIShortcuts" rel="noopener noreferrer"&gt;https://github.com/gemkids275/AIShortcuts&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Releases&lt;/strong&gt;: &lt;a href="https://github.com/gemkids275/AIShortcuts/releases" rel="noopener noreferrer"&gt;https://github.com/gemkids275/AIShortcuts/releases&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I maintain this project in my spare time. If you find it helpful, please share your thoughts, bug reports, and suggestions on &lt;a href="https://github.com/gemkids275/AIShortcuts/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>ai</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
