X (Twitter) analytics for people who post

Learn what works on your X account. And what to stop posting.

Crux reads your own X posts, from an archive or a read-only import, and finds the hooks, formats, topics and best times to post that work for your account. Then it drafts in your voice, for you to post yourself.

Free during invite-only early access: nothing is billed yet. Then one plan, $19 a month after a 7-day free trial, no card needed.

How it works

Your email, and your X handle if you add it, are used only to invite you. How the list is handled

Access is by invite: add your X handle, and once it is approved you sign in with that account. Signing in asks X for read-only access. Crux never posts for you, and it cannot like, follow or read your messages.

Today: each morning’s openings in the topics you track, scored against your own history.

Today · 5 openingsSample data

01

X API pay-per-use is breaking indie tools

Rising, ×3.2 a usual day. Your posts on this got 2.2× your usual reach. No repeated wording in 10 sampled posts.

Momentum94 — rising, ×3.2 a usual day
Your record96 — your posts on this got 2.2× your usual reach
Fit100 — 14 of your posts in the last year mention this
CrowdingLow — no repeated wording in 10 sampled posts

02

Postgres 19 beta benchmarks

Rising, ×2.6 a usual day. Not enough of your posts on this to know. 7 of 10 sampled posts use the same words.

Momentum89 — rising, ×2.6 a usual day
Your record– — not enough of your posts on this to know
Fit0 — nothing in your history backs this
CrowdingHigh — 7 of 10 sampled posts use the same words

Crux would not lead with this: nothing in your history backs this.

The first two of five openings, with sample data. Every score reads as a sentence, never a bare number.

What the film shows, with sample data:

  1. The film was recorded on an earlier build of Crux, whose second meter was called Audience; the product now calls it Your record.
  2. It starts from the scored opening “X API pay-per-use is breaking indie tools” (Momentum 94, Audience 96, Fit 91, Crowding low), with a data-driven angle suggested.
  3. Write this opens the composer, and a draft that does the maths nobody explained streams in, word by word.
  4. The draft is checked against your own rules: opens on a number, no hype phrases, and the window is still open, ahead of the crowd.
  5. Copy confirms the draft is copied, then Open on X hands it over: you publish the post on X yourself. An hour later Crux measures your post: its reach is 2.4 times your median, with 41 replies, 63 reposts and 208 bookmarks. Then the film loops.

A concept film with sample data, recorded on an earlier build: its second meter says Audience where Crux now says Your record. Crux never posts for you: you copy a draft and post it on X yourself.

The problem

Most tools optimise for volume. That is why your feed looks like everyone else’s.

Generators will happily write you five posts about whatever is trending. They do not know that your own posts on that subject did worse than usual, that the posts already out this morning repeat the same words, or that you have no history to back the take.

Crux starts from the opposite end: what has already worked, and what has not, on your own account. Often its most useful answer is that a topic or format you keep coming back to does worse than usual for you.

Account DNA

Account DNA: what works on your account, and what does not.

Account DNA is Crux’s report on your own X posts. It lists what does better than usual on your account and what does worse, in four parts, and it is where Crux’s answer to “when should I post?” comes from.

Hooks
7 kinds of opening line, from a question to a figure to a plain statement, classified in code from the first line of each post.
Formats
Length, media, links, line breaks, figures in the text, and replies against stand-alone posts.
Topics
The words and phrases you keep coming back to, judged by how the posts that use them did.
Posting times
Weekdays and 3-hour slots: the best times to post for your account, measured on your history rather than an average of other people’s.

How it works

How does Crux measure your X posts?

  1. Bring your post history

    Upload your X archive, or import your posts through X with read-only access. Crux needs your writing and its numbers, not your photos or messages.

  2. Each post is measured against your own baseline

    Reach grows with your follower count, so Crux divides each post’s engagement by the median of the 20 posts nearest it in time, not by your all-time average. An early post and last week’s post are judged on the same scale.

  3. Only patterns that hold up are reported

    Crux groups your posts by hook, format, topic, weekday and 3-hour slot. A group needs at least 5 posts, and it is reported only when its result falls outside what 500 random draws of your own posts produce. A small group that happens to look good is left out.

None of these steps posts anything for you. Read the full method, with a worked example

Today

A copilot that says “not this one”.

An opening is a topic you track in Radar, scored each morning on four meters: Momentum, Your record, Fit and Crowding. Crux dims the openings it scores badly instead of hiding them, and shows the numbers behind the verdict. You can always overrule it. But you will know what you are overruling.

A tool that only ever says yes is not giving you judgement. It is giving you volume.

Today · 5 openingsSample data

02

Postgres 19 beta benchmarks

Rising, ×2.6 a usual day. Not enough of your posts on this to know. 7 of 10 sampled posts use the same words.

Momentum89 — rising, ×2.6 a usual day
Your record– — not enough of your posts on this to know
Fit0 — nothing in your history backs this
CrowdingHigh — 7 of 10 sampled posts use the same words

Crux would not lead with this: nothing in your history backs this.

A sample opening, scored and set aside.

Where we stand

Four things Crux will not do.

Post for you

Crux never publishes, replies, reposts, likes, follows or schedules anything on X. Every draft ends with you publishing it on X yourself.

Automate replies or engagement

No reply bots, no follow-unfollow, no hooks engineered to bait a quote post. Crux has no reply features and we do not plan any.

Show you only the good news

Crux reports what does worse than usual on your account as plainly as what does better, and dims the openings it would not lead with instead of hiding them.

Sell or pool your data

Your posts are used for your account only. We do not sell data, we do not train a model on your posts, and Crux never reads your messages.

FAQ

Questions about Crux

Answers updated

What is Crux (Cruxpost)?

Crux, also called Cruxpost after its domain cruxpost.com, is a copilot for people who post on X (formerly Twitter). Instead of generating more posts, it measures what already works on your own account. You upload your X data archive or import your posts through X with read-only access, and Crux compares every post with the median of the 20 posts published nearest to it in time, so follower growth does not skew the result. It then reports which hooks, formats, topics and posting times do better or worse than usual for you, but only when a pattern holds across at least 5 posts and passes a significance test. On top of that measure, Radar counts posts on topics you track, Today scores each morning’s openings, and Crux drafts posts in your voice for you to publish yourself. Crux will cost $19 a month, one plan, after a 7-day free trial that needs no card. Billing is not open yet: during invite-only early access, approved accounts use Crux for free. Crux is not affiliated with X Corp.

How does Crux decide a pattern is real?

Crux reports a pattern on your X account only when luck is unlikely to explain it. First comes a fair baseline: each post’s engagement (impressions where X provides them, otherwise likes plus 3 times reposts) is divided by the median of the 20 posts published nearest to it in time, giving a multiplier such as 2× your usual. Follower count barely moves across 20 consecutive posts, so early and recent posts stay comparable. Next, posts are grouped by hook, format, topic, weekday and time slot, and a group needs at least 5 posts. Then comes a permutation test: Crux draws the same number of your posts at random 500 times, takes each draw’s median multiplier, and keeps the 5th to 95th percentile as the range chance produces. A group above that range is reported as working for you, one below it as doing worse than usual, and anything inside it is not presented as a finding. If 35% or more of your posts got no engagement, Crux reports no patterns at all.

What tool tells me when to post on X?

Crux tells you when to post on X from your own history, not from industry averages. Most “best time to post” charts pool posts from many other accounts, so they show when the average account does well, not when yours does. Crux groups your own posts by weekday and by 3-hour time slot, and measures each post against the median of the 20 posts you published nearest to it, which keeps an old post and a recent one on the same scale while your follower count changes. A slot is reported only when it holds at least 5 posts and its median result falls outside the range produced by 500 random draws of the same number of your posts: above it is a time that works for you, below it a time that does worse than usual. Slots that chance alone could explain are left out. Your Account DNA page names the time zone the slots are read in.

How do I analyze my X archive?

First download it: on X, open Settings and privacy, then Your account, then Download an archive of your data, confirm your password and request the archive. X sends an email and an in-app notification when it is ready. The archive is a .zip. Your posts are in data/tweets.js (large accounts also get tweets-part1.js and so on), long posts in note-tweet.js and account details in account.js. Each post carries its text, timestamp, likes and reposts as of the export, but no impressions: X leaves those out of archive downloads. Comparing raw likes across years misleads, because reach grows with your follower count. Crux handles this for you: upload the .zip (up to 500 MB) or just those files, and it scores each post against the 20 posts nearest it in time, then reports the hooks, formats, topics and posting times that do better or worse than usual for your account.

How do I get access to Crux?

Crux is invite-only while it is in early access. Request access with the form on this page and include your X handle: approval is given to an X handle, and once your request is approved you sign in with that X account. Requests are read by hand. A request without a handle cannot be approved, because sign-in has nothing to match it to.

What does Crux need from my X account?

To sign in, read-only access through the X permissions tweet.read, users.read, offline.access. They let Crux read your posts and profile and stay connected without asking you to sign in again. Crux never asks for permission to like, follow or read direct messages. You can also upload your X archive instead of importing through X.

Does Crux post for me?

No. Crux never publishes, replies, likes or follows on your behalf, and signing in gives it read-only access. Anything you post, you post yourself on X.

Does Crux use AI?

For drafts and Radar topic ideas, when you ask for them, and for the short sentence under each of Today’s openings. Crux sends those requests to an AI model on Groq’s free plan. Other people’s posts are never sent to it, and the analysis of your posts and every score are computed in code, not by a model.

How much does Crux cost?

Crux will cost $19 a month, one plan, after a 7-day free trial that needs no card. Billing is not open yet: during invite-only early access, approved accounts use Crux for free.

Stop guessing what works for your account.

Crux is in early access. Ask for an invite with your X handle, and bring your X archive.

Your email, and your X handle if you add it, are used only to invite you. How the list is handled