<?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: GoodExts</title>
    <description>The latest articles on DEV Community by GoodExts (@goodexts).</description>
    <link>https://dev.to/goodexts</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%2F4225832%2F53c6713a-021a-42e3-893c-9119e828d456.png</url>
      <title>DEV Community: GoodExts</title>
      <link>https://dev.to/goodexts</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/goodexts"/>
    <language>en</language>
    <item>
      <title>Use the AI You Already Pay For in Your Own Tools: Official APIs vs. Local Client Bridges</title>
      <dc:creator>GoodExts</dc:creator>
      <pubDate>Wed, 04 Nov 2026 14:30:57 +0000</pubDate>
      <link>https://dev.to/goodexts/use-the-ai-you-already-pay-for-in-your-own-tools-official-apis-vs-local-client-bridges-18ki</link>
      <guid>https://dev.to/goodexts/use-the-ai-you-already-pay-for-in-your-own-tools-official-apis-vs-local-client-bridges-18ki</guid>
      <description>&lt;h1&gt;
  
  
  Use the AI You Already Pay For in Your Own Tools
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Official APIs vs. local client bridges — costs, limits, caveats, and a concrete walkthrough.&lt;/em&gt;&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%2Fuo1w3ar55njor1fp2ivi.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%2Fuo1w3ar55njor1fp2ivi.png" alt="Cover: put the AI you already use to work in your own tools — your tools connect through AgentRelay to Codex, Grok Bot and Antigravity" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Many developers now have at least one AI subscription and a signed-in AI client open all day. In that client sits a conversation that already knows your project brief, your product details and how you like things written.&lt;/p&gt;

&lt;p&gt;Then you build a small tool — a browser extension, a script, a scheduled job — and want it to use AI too. The usual answer is "get an API key". That is often correct, but it means a second bill, a second set of credentials, and re-explaining all the context your existing conversation already holds.&lt;/p&gt;

&lt;p&gt;This post walks through the options honestly: when the official API is the right choice, what a &lt;em&gt;local client bridge&lt;/em&gt; is, what it cannot do, and how the bridge approach works in practice with AgentRelay, a free local tool from GoodExts, and the XFollower extension.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem: your context lives in a chat window
&lt;/h2&gt;

&lt;p&gt;Here is a typical repeated job: every evening, take a handful of posts or sources, classify them, and draft replies or topics in a specific brand voice. Done by hand, it looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Collect the material in one tool.&lt;/li&gt;
&lt;li&gt;Copy it into an AI chat.&lt;/li&gt;
&lt;li&gt;Re-explain the brief if the chat lost track.&lt;/li&gt;
&lt;li&gt;Copy the answer back and record what happened to which item.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Steps 2–4 are pure transfer work. The interesting part — the judgment — happens in a conversation you already prepared. What you want is for your tool to send the next task &lt;em&gt;to that conversation&lt;/em&gt; and get the result back, tied to the original item.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 1: the official provider API
&lt;/h2&gt;

&lt;p&gt;The standard route is the provider's platform API with an API key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strengths:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Runs anywhere: servers, CI, cloud functions.&lt;/li&gt;
&lt;li&gt;Clear terms for programmatic use and designed for production scale.&lt;/li&gt;
&lt;li&gt;The right choice if you are building a product that serves &lt;em&gt;other&lt;/em&gt; people.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Tradeoffs:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Usage-based billing, separate from your chat subscription.&lt;/li&gt;
&lt;li&gt;Stateless by default: you resend instructions and history on each call, or build your own memory layer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One common confusion is worth clearing up. Some subscriptions come with API-related benefits, and some coding clients support both subscription sign-in and API keys. GoodExts has a separate explainer on &lt;a href="https://goodexts.com/blog/chatgpt-subscription-api" rel="noopener noreferrer"&gt;what a ChatGPT subscription does and doesn't give you for API access&lt;/a&gt;. In short, an official API integration, a signed-in client like Codex, and a local bridge each use different connections and credentials. Before comparing costs, check which one your tool actually uses.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 2: a local bridge to a signed-in AI client
&lt;/h2&gt;

&lt;p&gt;The other route runs locally. A small service on your computer talks to an AI client you are &lt;em&gt;already signed in to&lt;/em&gt;, and exposes one local interface that your own tools can call.&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%2F09t6f5em1hm5wrnyt9ka.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%2F09t6f5em1hm5wrnyt9ka.png" alt="Architecture: your compatible tool owns the schedule and actions, AgentRelay runs locally on 127.0.0.1:8787 with a token and returns task IDs, and the signed-in AI client (Codex, Grok Bot, Antigravity) does the AI work" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The responsibilities split cleanly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Your tool&lt;/strong&gt; decides when to run, which account a task belongs to, where the material comes from, and where results go.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The bridge&lt;/strong&gt; passes the task to a chosen client and conversation, and gives you a task ID to follow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The AI client&lt;/strong&gt; does the AI work under your own account.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The honest caveats
&lt;/h3&gt;

&lt;p&gt;This approach has real limits, and you should know them before building on it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Your plan's limits still apply.&lt;/strong&gt; A bridge doesn't make a subscription unlimited, and it doesn't turn it into universally authorized API access. Every test message uses up your allowance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Terms matter.&lt;/strong&gt; Use supported clients within their terms. "It technically works" is not the same as "it is permitted".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local doesn't mean offline.&lt;/strong&gt; The bridge runs on your machine, but the AI client may still process prompts in the cloud under the provider's data policies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your computer must stay on.&lt;/strong&gt; The computer, the bridge and the selected client must remain available while a workflow runs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It suits personal workflows, not production backends.&lt;/strong&gt; If you serve other users, use the official API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security is your job.&lt;/strong&gt; A local token authorizes the bridge. Keep it out of source code, chats, screenshots and public repos.&lt;/li&gt;
&lt;/ul&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%2Fwrwdupbmomd0kt5j3fb0.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%2Fwrwdupbmomd0kt5j3fb0.png" alt="Comparison table: official provider API vs. local client bridge across credential, billing, where it runs, context, scale, terms and best use" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How AgentRelay implements the bridge
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://goodexts.com/agentrelay" rel="noopener noreferrer"&gt;AgentRelay, the free local AI hub&lt;/a&gt; from GoodExts, is a desktop service for Windows 10/11 (x64) and macOS (Apple Silicon). It connects compatible extensions, apps and workflows to three AI clients today:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Codex:&lt;/strong&gt; list conversations, create a new one, and continue the same chat. The Codex CLI must be installed and signed in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grok Bot:&lt;/strong&gt; choose an existing Bot and send repeated tasks to it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Antigravity:&lt;/strong&gt; discover IDE conversations, create a conversation, and send follow-up tasks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The site lists other tools, including Claude Desktop, ChatGPT Desktop, Gemini CLI, Cursor and Ollama, as &lt;em&gt;planned integration candidates&lt;/em&gt;. They are not part of the current download. So if your AI lives only in a ChatGPT or Claude browser tab, this tool doesn't cover that today.&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%2F19go4fmmfnbu3t3ifglz.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%2F19go4fmmfnbu3t3ifglz.png" alt="The AgentRelay page on goodexts.com: Free Local AI Hub, download for Windows and macOS" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some design details are worth borrowing even if you build your own bridge:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explicit conversations.&lt;/strong&gt; You choose an existing conversation or explicitly create a new one. A new chat is never a side effect of every message.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Task IDs instead of blocking requests.&lt;/strong&gt; A request creates a task and returns its ID. You check that ID to retrieve the reply, which handles work that takes longer than one browser request.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local state.&lt;/strong&gt; Configuration and task records stay on your computer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safe upgrades.&lt;/strong&gt; Updates wait for active work and back up service data. If validation of the new version fails, the previous version can be restored.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AgentRelay is free and doesn't sell model credits. The application source is private.&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%2F1vnpytzh5hyoo16h7j2j.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%2F1vnpytzh5hyoo16h7j2j.png" alt="AgentRelay section on goodexts.com showing tools connecting through one local connection to Codex, Grok Bot and Antigravity" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Walkthrough: connecting XFollower to AgentRelay
&lt;/h2&gt;

&lt;p&gt;XFollower is a GoodExts Chrome extension for daily X operations: followers, follow-up queues, saved posts and writing knowledge. It's a good concrete example because it uses the bridge for several separate jobs. The full guide is in &lt;a href="https://goodexts.com/blog/xfollower-agentrelay" rel="noopener noreferrer"&gt;Connect XFollower to AgentRelay&lt;/a&gt;. Condensed:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Start AgentRelay and your AI client.&lt;/strong&gt; Install and sign in to the client you want to use. On the AgentRelay home screen, confirm the service is running and copy its base address and access token. The default is &lt;code&gt;http://127.0.0.1:8787&lt;/code&gt;, but use the port actually shown.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Allow the extension to reach the local service.&lt;/strong&gt; The default &lt;em&gt;Allow all origins&lt;/em&gt; setting usually means no per-extension setup, though API requests still need the token. If you turn that setting off, add the extension's origin (&lt;code&gt;chrome-extension://&amp;lt;extension-id&amp;gt;&lt;/code&gt;) to AgentRelay's allowed origins.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Enter the connection and pick a conversation.&lt;/strong&gt; In XFollower, open &lt;em&gt;System settings → AI engines&lt;/em&gt;. Enter the base address and token without appending &lt;code&gt;/codex&lt;/code&gt;, &lt;code&gt;/grokbot&lt;/code&gt; or &lt;code&gt;/antigravity&lt;/code&gt;. Then choose an engine and read its conversations. The three engines share the address and token, but each keeps its own conversation selection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Test, save, reopen.&lt;/strong&gt; Use a dedicated test conversation and click &lt;em&gt;Test and save&lt;/em&gt; once. This sends a real verification message and uses your allowance. Then reopen the settings and confirm the engine, conversation and verified status.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Route each feature to its own conversation.&lt;/strong&gt; For example, use one conversation for collecting and classifying posts and another for brand replies. Inspect a small batch before enabling anything automatic. A successful connection doesn't enable posting.&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%2Fzv53vgptnmkdsp5zjayr.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%2Fzv53vgptnmkdsp5zjayr.png" alt="GoodExts guide: Connect XFollower to AgentRelay, from X posts to an AI workflow" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens when a scheduled task runs
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;XFollower prepares the post text, account instructions and writing references.&lt;/li&gt;
&lt;li&gt;It submits them to the selected engine and conversation.&lt;/li&gt;
&lt;li&gt;AgentRelay creates a task and returns its ID.&lt;/li&gt;
&lt;li&gt;XFollower stores the task ID with the original post and &lt;em&gt;queries that task&lt;/em&gt;. It doesn't open a new chat on every poll.&lt;/li&gt;
&lt;li&gt;When the full result arrives, XFollower records the tags or comment draft against the post.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the panel closes or the service restarts, query the original task first. Pending doesn't mean failed, and blindly resending creates duplicates.&lt;/p&gt;

&lt;p&gt;Troubleshooting is mostly predictable:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symptom&lt;/th&gt;
&lt;th&gt;What to check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cannot connect&lt;/td&gt;
&lt;td&gt;Service status, base address, port, browser local-access permission&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;401&lt;/td&gt;
&lt;td&gt;The current AgentRelay token, not one from an old instance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;403&lt;/td&gt;
&lt;td&gt;Extension origin in the allowlist (if &lt;em&gt;Allow all origins&lt;/em&gt; is off)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engine unavailable&lt;/td&gt;
&lt;td&gt;Client running and signed in; engine status in AgentRelay&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Renamed conversation&lt;/td&gt;
&lt;td&gt;Bindings use the conversation ID, not the editable title&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Connecting your own project
&lt;/h2&gt;

&lt;p&gt;To wire your own extension or app to AgentRelay, the &lt;a href="https://goodexts.com/agentrelay" rel="noopener noreferrer"&gt;AgentRelay page&lt;/a&gt; offers an integration skill to download: a ZIP containing a &lt;code&gt;SKILL.md&lt;/code&gt;, a client, and test tools that need Node.js 22+. You give it to a coding assistant that can read local files. The assistant checks the service, binds a conversation, and sends two harmless test messages. Those messages verify that context carries over, that bindings survive a reopen, and that recovery works by querying the original job instead of resending.&lt;/p&gt;

&lt;p&gt;That test plan is worth copying even if you never use the tool.&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%2Fp9nmyz9iygzr9gjn9iez.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%2Fp9nmyz9iygzr9gjn9iez.png" alt="Bridge setup checklist: client signed in, address and token kept private, one conversation per job, two test requests, poll instead of resending" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Count the whole cost
&lt;/h2&gt;

&lt;p&gt;The bridge is free, but the workflow isn't automatically cheaper. Count the time to prepare batches, any model costs or plan upgrades, and the time spent correcting results. No fixed savings percentage fits everyone. A bridge is worth it when it removes enough repeated transfer work for &lt;em&gt;your&lt;/em&gt; task. GoodExts has a longer guide on &lt;a href="https://goodexts.com/blog/agentrelay-ai-workflows" rel="noopener noreferrer"&gt;designing an AI workflow that runs while you're away&lt;/a&gt;, covering how to separate the schedule, business context and AI connection.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Building for other users or need scale?&lt;/strong&gt; Use the official API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automating your own repeated tasks with a client you already use?&lt;/strong&gt; A local bridge can save a lot of copy-paste, as long as you respect plan limits and terms, keep the token private, and poll task IDs instead of resending.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start small:&lt;/strong&gt; one job, one conversation, two test requests, then a small batch you actually review.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;What repeated AI task do you still do by copy-paste? Tell me in the comments.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: I'm the developer behind GoodExts. The split between tool, bridge and AI client, and the habit of tracking task IDs instead of resending, work just as well if you build your own bridge or use the official API.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>automation</category>
      <category>tools</category>
    </item>
    <item>
      <title>A Practical Chrome Toolkit for X (Twitter): Save Videos, Read Tall Images, Keep Threads and Tame Your Feed</title>
      <dc:creator>GoodExts</dc:creator>
      <pubDate>Wed, 04 Nov 2026 09:29:40 +0000</pubDate>
      <link>https://dev.to/goodexts/a-practical-chrome-toolkit-for-x-twitter-save-videos-read-tall-images-keep-threads-and-tame-4jbc</link>
      <guid>https://dev.to/goodexts/a-practical-chrome-toolkit-for-x-twitter-save-videos-read-tall-images-keep-threads-and-tame-4jbc</guid>
      <description>&lt;p&gt;&lt;em&gt;Save videos, read tall images, keep threads and tame your feed — without paying for X Premium.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you use X (formerly Twitter) for work — following your industry, collecting product ideas, or promoting something you built — you probably repeat the same small actions every day. You right-click a video and find there is no "save" option. You squint at a screenshot of a changelog that X has cropped into a tiny preview. You bookmark a brilliant thread and never find it again.&lt;/p&gt;

&lt;p&gt;None of these are big problems on their own. Together they eat a surprising amount of attention. This post walks through five of them, the manual way to solve each, and the browser extensions I use when the manual way gets old. Most of the extensions mentioned are free tools from &lt;a href="https://goodexts.com" rel="noopener noreferrer"&gt;GoodExts&lt;/a&gt;, a small independent project building focused Chrome extensions for X, but the checklist at the end applies to any extension you are considering.&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%2F60c7loofq9d8yqmyw90j.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%2F60c7loofq9d8yqmyw90j.png" alt="Five everyday X problems and the GoodExts extension that fixes each" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Saving an X video (or GIF) you actually want to keep
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The problem:&lt;/strong&gt; X does not offer a download button for videos. GIFs are actually stored as MP4 files, so "Save image as" does nothing useful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The manual way:&lt;/strong&gt; Copy the post URL and paste it into one of the many web-based "Twitter video downloader" sites. It works, but these sites are often full of ads and redirects, and you are pasting links into a third-party server every time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The extension way:&lt;/strong&gt; A downloader extension adds a button directly to the post. The GoodExts &lt;strong&gt;X Video Downloader&lt;/strong&gt; saves videos at up to 1080p (when the original was uploaded at that quality), converts GIFs, grabs full-size photos, and can save the media from a whole profile at once. No X Premium is required.&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%2Fk0udm709601dau809kct.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%2Fk0udm709601dau809kct.png" alt="X (Twitter) Video Downloader listing on the Chrome Web Store" width="799" height="571"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tips:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quality is capped by what the uploader provided. A 720p upload will not become 1080p.&lt;/li&gt;
&lt;li&gt;Keep the author and post link with the file. Renaming downloads to &lt;code&gt;author_date_topic.mp4&lt;/code&gt; saves you later when you need to credit someone.&lt;/li&gt;
&lt;li&gt;Respect copyright: saving for reference or offline viewing is different from reposting someone else's work.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Reading small text in tall images and screenshots
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The problem:&lt;/strong&gt; People post long screenshots — release notes, charts, code, infographics. X shows a cropped thumbnail, and the full-screen viewer often still renders text too small to read on a laptop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The manual way:&lt;/strong&gt; Open the image in a new tab, then edit the URL. X images are served from &lt;code&gt;pbs.twimg.com&lt;/code&gt;, and changing the &lt;code&gt;name=&lt;/code&gt; parameter to &lt;code&gt;orig&lt;/code&gt; (for example &lt;code&gt;...?format=jpg&amp;amp;name=orig&lt;/code&gt;) usually loads the largest available version. Then zoom with your browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The extension way:&lt;/strong&gt; &lt;strong&gt;XZoom&lt;/strong&gt; adds wheel zoom centered on your cursor and click-and-drag panning inside X's own photo viewer, plus a button to download the available original. It is free and open source, has no background service and no analytics, and only runs on x.com and twitter.com. I like that its permissions are this narrow: it is the kind of extension you can audit in ten minutes. GoodExts has a short &lt;a href="https://goodexts.com/blog/twitter-images-original-size" rel="noopener noreferrer"&gt;guide to viewing Twitter images at original size&lt;/a&gt; if you want the details and limits.&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%2Fg98jy961i7ql74wptgp1.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%2Fg98jy961i7ql74wptgp1.png" alt="GoodExts guide to installing XZoom in Chrome" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Keeping long threads and X Articles for later
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The problem:&lt;/strong&gt; Bookmarks on X are a list of links, not a library. Threads get deleted, accounts go private, and searching your bookmarks is painful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The manual way:&lt;/strong&gt; Use the browser's "Print → Save as PDF". It works for a single post, but long threads break across pages, replies get mixed in, and images often fail to load before printing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The extension way:&lt;/strong&gt; &lt;strong&gt;X Article to PDF&lt;/strong&gt; exports X Articles and threads into clean PDFs for reading and reference. Once you have PDFs, you can store them with the rest of your notes and search them with whatever tool you already use.&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%2Fxdilal8bos1th9eacsbw.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%2Fxdilal8bos1th9eacsbw.png" alt="X Article to PDF listing on the Chrome Web Store" width="799" height="571"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tips:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a single folder like &lt;code&gt;x-reading/2026-11/&lt;/code&gt; so exports do not scatter across Downloads.&lt;/li&gt;
&lt;li&gt;Note the original URL on the first page or in the filename — sources matter when you quote something later.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Reducing noise in your feed
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The problem:&lt;/strong&gt; The "For you" timeline mixes useful posts with engagement bait, repeated promotions, and topics you never asked for. Muting keywords one by one in X settings is slow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The manual way:&lt;/strong&gt; X's built-in mute words and "Not interested in this post" help, and you should use them. Switching to the "Following" tab and building a few X Lists for focused topics helps even more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The extension way:&lt;/strong&gt; &lt;strong&gt;X Blocker&lt;/strong&gt; lets you manage unwanted posts and accounts in your feed from within the page, which is faster when you are cleaning up a noisy timeline. Combine it with Lists: Lists for reading, the main timeline for discovery, and the blocker to keep discovery from drowning you.&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%2Flvkyrdz5h3uw02w69wtw.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%2Flvkyrdz5h3uw02w69wtw.png" alt="X Blocker listing on the Chrome Web Store" width="799" height="571"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Keeping up with followers, posts and replies as a solo creator
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The problem:&lt;/strong&gt; If you are building in public or promoting a product, X becomes a small CRM. Who followed you this week? Which posts deserve a reply? Which conversations did you promise to come back to?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The manual way:&lt;/strong&gt; A spreadsheet with columns for handle, post link, status and next action. Honestly, this works well for the first few weeks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The extension way:&lt;/strong&gt; &lt;strong&gt;XFollower&lt;/strong&gt; is a Chrome extension workspace for exactly this: tracking followers and follow-back candidates, follow-up queues, saved posts and authors, and drafts kept next to the original content. It can optionally connect to AI assistants through &lt;strong&gt;AgentRelay&lt;/strong&gt;, a free local service from the same developer that bridges your extensions to AI clients you already use (Codex, Grok Bot or Antigravity). The idea is a sensible division of labor: let the extension do the fixed, repeatable steps (collecting, queueing, saving), let AI help with understanding and drafts, and keep yourself as the one who reviews and decides what gets posted. You can read how that workflow fits together on the &lt;a href="https://goodexts.com/" rel="noopener noreferrer"&gt;GoodExts homepage&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%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8viq490sassehmed6fem.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%2F8viq490sassehmed6fem.png" alt="XFollower workspace section on goodexts.com, showing feed replies and follow-up queues" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whatever tool you use here, stay within X's rules: assisted drafting is fine, mass automated replies are not, and your account's reputation is worth more than any time saved.&lt;/p&gt;

&lt;h2&gt;
  
  
  A checklist before installing any X extension
&lt;/h2&gt;

&lt;p&gt;Extensions run inside a site where you are logged in, so be picky. Before installing anything — from GoodExts or anyone else — check:&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%2Flrz563jkq66fxcopzo2c.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%2Flrz563jkq66fxcopzo2c.png" alt="Safety checklist for choosing any X extension: permissions, network requests, source code, developer identity, one job each" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Permissions:&lt;/strong&gt; Does it only request access to &lt;code&gt;x.com&lt;/code&gt; / &lt;code&gt;twitter.com&lt;/code&gt;, or "all websites"? Narrow is better.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network requests:&lt;/strong&gt; Does it send data to its own server? A media downloader should only need to talk to X's media domains.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source code:&lt;/strong&gt; Open-source extensions (like XZoom) can be inspected. Closed-source ones should at least explain what they collect in a privacy policy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer identity:&lt;/strong&gt; Is there a real website, a contact page, and a changelog? Anonymous extensions that appear and disappear are a red flag.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One job each:&lt;/strong&gt; Small, focused extensions are easier to trust and easier to remove than one giant "Twitter suite" that wants every permission.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;Here is the short version:&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%2Fhzia0sa0fv1rwjnwpuaw.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%2Fhzia0sa0fv1rwjnwpuaw.png" alt="Cheat sheet: manual fallback vs. extension for each X task" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Manual fallback&lt;/th&gt;
&lt;th&gt;Extension&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Save videos/GIFs&lt;/td&gt;
&lt;td&gt;Web downloader sites&lt;/td&gt;
&lt;td&gt;X Video Downloader&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Read tall images&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;name=orig&lt;/code&gt; URL trick + browser zoom&lt;/td&gt;
&lt;td&gt;XZoom&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Keep threads/articles&lt;/td&gt;
&lt;td&gt;Print to PDF&lt;/td&gt;
&lt;td&gt;X Article to PDF&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Clean up the feed&lt;/td&gt;
&lt;td&gt;Mute words, Lists&lt;/td&gt;
&lt;td&gt;X Blocker&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manage followers &amp;amp; follow-ups&lt;/td&gt;
&lt;td&gt;Spreadsheet&lt;/td&gt;
&lt;td&gt;XFollower (+ AgentRelay for AI)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Start with the one problem that annoys you most, solve it, and only add another tool when you feel the next annoyance. If you want to browse the full set of free tools mentioned here, they are all collected at &lt;a href="https://goodexts.com" rel="noopener noreferrer"&gt;goodexts.com&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%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foz1j6wg327fyw1jkg6v0.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%2Foz1j6wg327fyw1jkg6v0.png" alt="The GoodExts homepage: free Google Chrome extensions and AgentRelay" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What small X annoyance costs you the most time? Let me know in the comments — it might become the next guide.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: I'm the developer behind GoodExts. The manual fallbacks above work without any of my tools.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>chromeextensions</category>
      <category>twitter</category>
      <category>productivity</category>
      <category>tools</category>
    </item>
  </channel>
</rss>
