马自立12 downloadsWrite X threads, long posts, and Articles from your notes, with a live preview and a lively composer.
Write X posts, threads, long posts, and Articles from your Obsidian notes, in a composer that shows you what the timeline will show.
Thread Studio is a fork of NoteTweet by Christian Bager Bach Houmann, published with his consent (chhoumann/notetweet_obsidian#76). Everything NoteTweet does still works; Thread Studio adds:
TODO, DOING, …), wikilink brackets, emphasis marks, and %%comments%% are cleaned up. Once posted, the tweet tag goes on that block's first line.Until Thread Studio is listed in the Obsidian community plugin directory:
MatsuriMW/thread-studio.main.js, manifest.json, and styles.css from the latest release into <your vault>/.obsidian/plugins/thread-studio/, then enable Thread Studio under Settings → Community plugins.Thread Studio needs Obsidian 1.13.0 or newer, for its encrypted Secret Storage. It can be installed next to NoteTweet: the two keep separate settings and separate credentials.
You post through your own X developer app, so you need four keys from the X Developer Portal.
https://github.com/MatsuriMW/thread-studio in both URL fields and Web App, Automated App or Bot work fine. Save.Run Post tweet to open the composer. If text is selected, it comes along: a THREAD START / THREAD END block opens as a ready-made thread, and other text is split into posts at the length limit. Pasting long text splits it too. Pick the account at the top, switch between Write and Preview, and press Post (or Schedule, when scheduling is on).
Shortcuts inside a post:
Alt + Enter, Enter at the length limit, or three line breaks in a row: start a new postShift + Enter / Ctrl + Enter: insert a post above / belowCtrl + ↑ / Ctrl + ↓: go to the post above / belowCtrl + Shift + ↑ / Ctrl + Shift + ↓: move the post up / downBackspace in an empty post, or Ctrl + Shift + Delete: delete the postImages: hover a post and click the image button to pick one from your vault, paste an image straight in (it is saved to your vault, then uploaded), or type a [[wikilink]] to an image (gif, jpg, jpeg, png, webp, bmp). Up to four per post.
Run Post current block from the command palette, the ribbon, or the editor's right-click menu. In a list, the block is the item under the cursor with all of its children; elsewhere it is the paragraph. Child items keep a plain - or 1. marker so the structure survives on X.
If your accounts have X Premium, turn on X Premium long posts in settings. A post may then hold up to 25,000 characters; Auto-split tweets splits only past that limit. X shows the first 280 characters of a long post with Show more, and Preview folds it at the same place. Without Premium, X rejects posts longer than 280 characters, and Thread Studio shows X's reason.
Open a note and run Post note as X Article. Confirm the title and the account, then choose Publish, or Save draft to finish it in X's Articles editor (the notice links straight to the draft).
title property; else a # Heading on the note's first line (it is then left out of the body); else the file name.cover property, such as cover: "[[header.png]]".#, ##, and ###+ become X's three heading levels; lists, quotes (callout markers removed), bold, italic, and strikethrough carry over; ==highlights== become bold; links become links and wikilinks become plain text; images from your vault are uploaded; fenced code blocks and tables go in as Markdown blocks; --- becomes a divider. Nested lists are flattened, because Articles have no list depth. Frontmatter, %%comments%%, and block ids are left out.Articles need X Premium on the posting account.
THREAD START / THREAD END block in the active note, through the default account:THREAD START
The first post.
---
The second post. A line with only three dashes separates posts.
THREAD END
After posting, a dialog links to each post and lets you delete them again. If a Tweet tag is set, it is added to your note.
Optional and advanced: posts can go out later through a self-hosted scheduler, which posts with its own X credentials. See the scheduler guide.
https://api.x.com) only when you post, schedule, upload images, delete posts you just made, or test an account. It sends the text and images you choose to post. There is no analytics or telemetry.data.json. Thread Studio reads image files from your vault to upload them and writes the tweet tag into your notes; it touches nothing outside your vault.Not connected: 403 Client Forbidden (client-not-enrolled). The app is not attached to a Project. Create a fresh app (new apps are enrolled automatically) or attach yours to a Project, regenerate the Access Token and Secret, and paste the new values in.
Connected, but posting fails with 403. The connection test only reads, so it passes even when the app cannot write. Usually the Access Token is read-only: set Read and write, then regenerate the Access Token and Secret. Other causes: your plan's write limit is used up, or X rejects a duplicate post. The error notice shows X's own reason.
A long post or an Article fails with 403. The posting account has no X Premium, or X has not enabled the feature for it yet.
401 authentication errors. Check that the app is in a Project and has Read and write permission, that your computer's clock is right, and regenerate the tokens.
An image does not upload. Use gif, jpg, jpeg, png, webp, or bmp, and make sure the file is in your vault.
Thread Studio stands on NoteTweet by Christian Bager Bach Houmann, who wrote the composer, the X API client, Secret Storage handling, and the scheduler, and kindly agreed to this fork. Icons are Lucide (ISC), animated in the spirit of lucide-animated; the Preview follows X's own composer and Typefully's preview pane.
MIT, keeping the original NoteTweet copyright.