Quote tweet
Input
text requiredYour commentary on the quoted tweet (≤280 chars, as X weighs it — a URL counts as 23 regardless of length). If X's composer rejects the text, the script throws before publishing instead of hanging. Any @handle in the text is validated against a real, non-suspended X account before anything is posted — the run throws naming the bad handle if one doesn't resolve. Every call posts immediately and irreversibly in public, with no preview or confirmation step inside the script, so show the exact tweet_url being quoted and this exact text (and any media_path) to the user and get their explicit approval for this specific content before running — approval from an earlier or unrelated message does not carry over.
tweet_url requiredFull URL of the tweet to quote, e.g. https://x.com/handle/status/123. Confirm the exact URL with the user before running.
media_path optionalOptional absolute path to an image or video to attach to the quote (e.g. /Users/me/pic.png), read from the machine running the browser. Attaching a local file is only supported on a local (reduck local / CLI) device: a browser paired through the extension refuses it, and no run on any device kind has attached media successfully yet, so treat this field as unproven. To attach a file from an extension-paired browser, serve it over http://127.0.0.1:<port>/ on that same machine and pass the URL instead. Media is part of the published, irreversible content, so confirm the exact file with the user before running, the same as the text field.
Output
url requiredtext requiredhandle requiredquoted requiredid of the quoted tweet
tweet_id requiredaccount_used requiredhandle of the logged-in account that performed the action, read from the account switcher UI (not assumed from input).
already_present requiredtrue if this text already appears on the most recent page of the account's own posts (~20, read from X's own profile-timeline payload), so publishing was skipped and tweet_id/url are null. Comparison strips URLs and emoji from both sides, since the submitted text carries the original link while X stores a shortened t.co one. A duplicate older than that first page is not detected here and surfaces instead as X's own "Status is a duplicate. (187)" refusal.
verified_on_page requiredtrue if the script navigated to the new tweet's URL after publishing and confirmed the article is actually present.
media_count optionalNumber of media attachments on the posted quote (0 if text-only).
