A Chrome extension that automatically saves Threads posts to Obsidian as structured Markdown notes.
- Auto-save on Like/Bookmark — posts are captured the moment you like or bookmark them
- Markdown conversion — posts become Obsidian-compatible Markdown with YAML frontmatter
- Image download — attached images saved locally to your vault (optional)
- AI transformation — summarize, analyze, and restructure posts using AI (optional)
- Dynamic folder paths — auto-organize notes by year/month
- Topic & tag extraction — automatic subject and hashtag detection
- Multi-post support — single posts, threads, reposts, quotes, and carousels
This extension requires the Obsidian Local REST API plugin. Without it, the extension cannot communicate with your vault.
- Open Obsidian
- Go to Settings > Community Plugins
- If not already done, turn off Restricted Mode to enable community plugins
- Click Browse and search for "Local REST API"
- Click Install, then Enable
- In Obsidian, go to Settings > Community Plugins > Local REST API
- Note the port number (default:
27123) - (Recommended) Set an API Key for authentication
- Ensure the HTTPS option matches your preference:
HTTP(default) — works out of the box for local useHTTPS— if enabled, you may need to accept the self-signed certificate by visitinghttps://localhost:27123in your browser once
Open your browser and visit:
http://localhost:27123
If you see a JSON response or the API documentation page, the plugin is running correctly. If you set an API Key, the browser may prompt for authentication.
Important: Obsidian must be open and the Local REST API plugin must be enabled for the extension to save notes.
(Coming soon)
- Download or clone this repository
- Open Chrome and navigate to
chrome://extensions - Enable Developer Mode (toggle in the top-right corner)
- Click Load unpacked and select this folder
- The extension icon will appear in your toolbar
- Click the extension icon > Settings
- Enter the Local REST API connection info:
- Protocol:
HTTPorHTTPS - Host:
localhost(default) - Port:
27123(default) - API Key (if configured in the plugin)
- Protocol:
- Click Connection Test to verify
- Configure save paths and options
- (Optional) Enable AI transformation and configure an AI provider
- Visit threads.net
- Like or Bookmark any post you want to save
- The post is automatically saved to your Obsidian vault
Note: Only the initial activation triggers a save. Unliking or unbookmarking does not save the post.
The Chrome extension is desktop-only. For iOS there is a companion Scriptable
script that turns the iOS share sheet into a one-tap "save to Obsidian" flow
(default folder: mobiletip/). See mobile/README.md.
When enabled, AI analyzes posts and generates structured notes with:
- Executive Summary — key message in one sentence + 3 main points
- Key Concepts — extracted terms in a table
- Detailed Notes — expanded analysis with context
- Action Items — actionable checklist
- Feynman Explanation — simplified explanation for easy understanding
| Provider | Default Model | Notes |
|---|---|---|
| OpenAI | gpt-4o | |
| Google Gemini | gemini-2.0-flash | |
| Anthropic | claude-3-5-sonnet | |
| Grok (xAI) | grok-3 | |
| zai | GLM-4.5 | Custom endpoint |
| Custom | — | Any OpenAI-compatible API |
- Per-provider API Key, model, and endpoint configuration
- Connection Test button per provider
- Custom prompt template support
| Option | Description | Default |
|---|---|---|
| Trigger (Like) | Save on like | On |
| Trigger (Bookmark) | Save on bookmark | On |
| Notes folder | Save path in vault | Threads |
| Year/Month folders | Auto-create subfolders (e.g. Threads/2026/03) |
Off |
| Download images | Save images locally | Off |
| Image folder mode | Centralized / Per-note subfolder | Centralized |
| AI transformation | AI-powered content conversion | Off |
| Collect comments | Save replies under the post into the note | Off |
| Comment max count | Up to N comments per post | 20 |
| Comment scope | All / Author replies only | All |
| Comment min length | Filter out short noise comments | 0 |
---
source: threads
type: single
author: "@username"
post_url: "https://threads.net/..."
saved_at: "2026. 03. 23. 14:30"
tags:
- threads
---
# @username's post
> Post content here
---
*Original: [View on Threads](https://threads.net/...)*---
source: threads
type: single
author: "@username"
topic: "topic name"
post_url: "https://threads.net/..."
saved_at: "2026. 03. 23. 14:30"
tags:
- threads
- topic
---
## 1. Executive Summary
...
## 2. Key Concepts
| Term | Description | Context |
...
## 3. Detailed Notes
...
## 4. Action Items
- [ ] ...
## 5. Feynman Explanation
...
## 6. Original Text
> ...threads-clipper-for-obsidian/
├── manifest.json # Extension manifest (MV3)
├── background/
│ ├── service-worker.js # Background service worker
│ └── ai-service.js # AI API call module
├── content/
│ ├── content.js # Content script (DOM detection & extraction)
│ └── styles.css # Toast notification styles
├── popup/
│ ├── popup.html / js / css # Popup UI
├── options/
│ ├── options.html / js / css # Settings page
└── assets/icons/ # Extension icons (PNG + SVG)
- All data is stored locally in Chrome storage
- API keys are stored only in your browser, never sent to any third-party server (except the configured AI provider)
- No analytics, tracking, or data collection
- The extension only activates on
threads.net/threads.com
Build a Chrome Web Store zip with preflight checks:
./scripts/package-cws.shOutput:
release/threads-clipper-for-obsidian-cws-v<version>.zip
- See
spec/architecture.mdfor component boundaries and data flow.
MIT License