Extension Icon

Threads

Quickly post to Threads, see recent updates, view raw analytics, and draw giveaway winners.
AvatarChris Messina
935 Installs
Overview
Threads

Threads

Raycast Store License MIT Follow @chrismessina Stars

Post to Threads, jump straight to any feed, download media from a post, check your analytics, and draw giveaway winners, all from Raycast.

Features • Requirements • Quick Start • Usage • Development


Features

  • Download media from a public post — images, videos, and voice posts, saved straight to your Downloads folder. Carousels download every item.
  • Paste a post link in any of its forms — a canonical post URL, one with tracking parameters, or a threads.com/share/… short link. A post Threads won't show to a signed-out visitor can't be downloaded.
  • Files are named correctly — the extension reads the format the server actually sent rather than trusting the URL, so an image that is really WebP does not land as a broken .jpg.
  • Nothing is ever overwritten — a download whose name is already taken saves alongside as name (1).ext, and a download's content is written to a .part file that takes its real name only once it finishes.
  • Optional format conversion — keep the original, or convert images to JPEG or PNG on the way in.
  • Analytics — raw account metrics for the last 7, 14, 30, or 90 days, and lifetime totals for your posts from that period, plus a menu bar item showing the metric of your choice.
  • Giveaways — draw winners from the replies to one of your posts, filtered by keywords, mentions, reply time, or excluded accounts.
  • Post and navigate — compose a post or follow an account and finish in Threads, or open a profile, a search, or any of your feeds or activity tabs.

Requirements

  • Raycast installed
  • macOS, for the optional Image Format conversion only. Everything else works on macOS and Windows alike.
  • A Threads Access Token, for Analytics, Analytics Menu Bar, and Giveaway only. It needs the threads_basic, threads_manage_insights, and threads_read_replies permissions. Follow the token guide, then paste the token into Threads Access Token in the extension preferences. Tokens expire after 60 days.

Quick Start

  1. Copy a Threads post link — from the share sheet, the address bar, or a /share/ link someone sent you.
  2. Open Raycast and search for "Download Threads Media".
  3. Paste the link. The media lands in your Downloads folder, or wherever you point Media Download Path.

If "Finding Media" is slow: Threads sometimes takes 10–30 seconds to answer a request it hasn't seen from you recently. Open the post in a browser where you're signed in to Threads, Instagram, or Facebook, then run the download. It is usually much faster after that.


Usage

Commands

CommandModeDescription
Download Threads Mediano-viewDownload images, videos, and voice posts from a post URL
Start a New ThreadviewCompose a post in a form, with an optional link
Quick Postno-viewPost straight from the Raycast bar
Quick Followno-viewFollow an account by username
View Profileno-viewOpen a profile
Searchno-viewSearch Threads by keyword or hashtag, sorted by top or recent
My Feedsno-viewOpen For You, Following, Liked, or Saved
Activityno-viewOpen any activity tab — replies, mentions, quotes, reposts, and more
Insightsno-viewView account insights over 7, 14, 30, or 90 days
AnalyticsviewRaw account and post metrics from the Threads API
Analytics Menu Barmenu-barA Threads metric in the menu bar, refreshed every 30 minutes
GiveawayviewDraw winners from the replies to one of your posts

Actions

ActionShortcutDescription
Show in Finder⌘ OReveal a completed download
Copy Path⌘ ⇧ CCopy the saved file's path
Copy Error—Copy the details of a failure, for a bug report (⌘ ⇧ C in the Analytics and Giveaway error views)

Preferences

PreferenceValuesDefault
Threads Access Tokena token—
Debug Loggingon / offoff
Strict Redactionon / offoff
Media Download Patha folder~/Downloads
Image FormatOriginal / JPEG / PNGOriginal

Media Download Path and Image Format are preferences of the Download Threads Media command — expand it in the extension's settings to find them. Analytics Menu Bar has its own Menu Bar Title (follower count by default, or views, likes, replies, your latest post, or icon only) and Period (last 7 days by default).


Development

Project Structure

raycast-threads/
├── src/
│   ├── download-thread-media.tsx   # downloads a post's media
│   ├── analytics*.tsx, giveaway.tsx  # Threads API commands (need a token)
│   ├── new-thread.tsx              # compose form
│   ├── *.tsx                       # URL-builder commands
│   └── lib/
│       ├── threads-post.ts         # resolves a link to its media
│       ├── threads-api.ts          # Threads Graph API client
│       ├── media-files.ts          # paths, conversion, extensions
│       ├── download-media.ts       # streams a download to disk
│       └── *.test.ts               # vitest, colocated
├── assets/                         # extension icon (runtime)
├── media/                          # README images
├── metadata/                       # Store screenshots
├── package.json
└── tsconfig.json

Scripts

ScriptDescription
npm run devStart in development mode with hot reload
npm run buildBuild for production
npm run lintRun Raycast ESLint config
npm run fix-lintAuto-fix lint issues
npm testRun the test suite — no network
npm run test:liveResolve real posts against threads.com
npm run publishPublish to the Raycast Store

Clone & Run

git clone https://github.com/chrismessina/raycast-threads.git
cd raycast-threads
npm install
npm run dev

See AGENTS.md for how media resolution works and why it is shaped the way it is.


Tech Stack

PackageRole
@raycast/apiRaycast extension primitives
@chrismessina/raycast-kitFailure toasts with a Copy Error action, byte formatting, plurals
@chrismessina/raycast-loggerStructured logging; Debug Logging adds detail, errors always log

MIT © Chris Messina