Not every platform hands you a clean API for personal posting. X and Instagram are the obvious examples. So in Crossposter, those two are driven by a dedicated, isolated local headless browser instead of being faked through a brittle reverse-engineered endpoint.
How it works in practice:
- You log in once, like you would in a normal browser session.
- That session is stored locally, in its own profile directory on your machine (
.x-browser,.instagram-browser). - When you publish, Crossposter drives that browser to submit the post with your media.
Why isolated? The browser profile for X is separate from Instagram, and both are separate from whatever you browse with day to day. Sessions don't bleed into each other, and nothing leaves your machine.
This is the unofficial-integration side of the project, and I'm upfront about the tradeoff: browser-driven flows can break when a platform changes its UI, and they can trigger login challenges or rate limits. You should only point this at accounts you own. The README spells this out.
The upside is that the same compose-once dashboard handles official-API channels (LinkedIn, Bluesky, Mastodon, Dribbble) and the browser-driven ones (X, Instagram) behind one Publish button, with no third-party server holding your session.
This post went out through Crossposter.
Top comments (0)