A Chrome extension that automatically saves Threads posts to Obsidian as structured Markdown notes.
This extension requires the Obsidian Local REST API plugin. Without it, the extension cannot communicate with your vault.
27123)HTTP (default) — works out of the box for local useHTTPS — if enabled, you may need to accept the self-signed certificate by visiting https://localhost:27123 in your browser onceOpen 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)
chrome://extensionsHTTP or HTTPSlocalhost (default)27123 (default)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:
| 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 |
| 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)
threads.net / threads.comBuild a Chrome Web Store zip with preflight checks:
./scripts/package-cws.sh
Output:
release/threads-clipper-for-obsidian-cws-v<version>.zipspec/architecture.md for component boundaries and data flow.MIT License