Vibe Check for X
Chrome extension that scores draft posts and reply context before posting; optional media descriptions come from a separate vision model.
# Vibe Check for X (powered by Jev)
A Chrome and Firefox extension that runs your draft post through [TypeSafe's Jev](https://docs.typesafe.ai) before you hit **Post**. It renders a scorecard under the composer with virality, funniness, informativeness, clarity, insult level, ragebait, cringe, "sounds AI-written", regret risk, typo detection, and the most likely crowd reaction, plus an overall "Send it / Fine, mid / Probably don't / Sleep on it" verdict.
Works in the `/compose/post` modal, the inline composer on Home, reply composers, quote posts, and multi-post threads. The tweet you're replying to is sent along as `reply_to` and a quoted tweet as `quoting` (text, author, and described photos), so insult level, virality and likely reaction are judged against that context. Plain retweets have no compose step, so there's nothing to check.
**Images and video:** Jev is text-only. If you add an OpenAI API key, every attached image (and the first frame of each video/GIF) is described by an OpenAI vision model and the description is passed to Jev as `media`. Photos on the tweet you're replying to are described too. Two extra rubrics ("Media helps", "Media risk") are asked only when media is present. Descriptions are cached per attachment, so you pay for each image once, not on every keystroke.
## Install
Download or clone this repository first. No build step is needed.
### Chrome (121+)
1. Open `chrome://extensions`, turn on **Developer mode** (top right).
2. Click **Load unpacked** and select this `vibecheck` folder.
### Firefox desktop (140+)
1. Open `about:debugging#/runtime/this-firefox`.
2. Click **Load Temporary Add-on…** and select `manifest.json` in this folder.
Temporary add-ons are removed when Firefox restarts; reload the manifest to use it again. A persi