ct ← ct.42069.gg

Docs

Every control in ct, and what it actually does. ct reads the posts X already sends your browser and ranks them by rules you set. There is no ct account, no API key, and no server holding your data.

v0.0.4 — notes

Install

Two builds exist. The Chrome Web Store build is reviewed and updates itself — start there unless you specifically want to test new work.

From the Chrome Web Store

Add it, then pin it: click the puzzle-piece icon in Chrome's toolbar and pin ct, so it's one click away. Open x.com and click the ct icon — the side panel opens on the right.

The alpha build, from GitHub

The alpha runs ahead of the store: newest features, rougher edges. It installs unpacked, which means you keep the folder and Chrome loads it from there on every start.

  1. Clone or download monemetrics/ct-extension, and keep the folder somewhere permanent.
  2. Open chrome://extensions and switch on Developer mode, top right.
  3. Click Load unpacked and select the folder — the one with manifest.json directly inside it.

Unpacked extensions never auto-update. To take a new version, git pull into the same folder and press the reload icon on ct's card in chrome://extensions.

Chrome treats the two builds as separate extensions. Each gets its own ID, its own storage and its own settings. Installing one never updates or replaces the other, and they cannot see each other's frens, notes or keys.

Run one at a time. Before switching, export your frens list and your notes from the build you're leaving (Settings → Identity & privacy, and Backup at the foot of the notes tab), then import both into the other one.

Brave, Edge, Opera, Arc and Vivaldi all run the same build — only the extensions URL differs. Firefox and Safari are not supported: ct is Manifest V3 and uses offscreen documents and the side panel API, which don't exist there.

First run

ct starts empty, and it fills up from your own browsing. Open x.com and scroll for a few minutes — every post X sends your browser is captured, normalised and stored locally. Nothing is fetched from anywhere else.

Once you've visited x.com/home on the Following tab at least once, ct can also pull new posts in the background with no tab open. That's Settings → Identity & privacy → Pull new posts; it replays your own timeline request against your own session, so X sees the traffic it would have seen anyway, just less of it.

If the feed stays empty: the default rules show frens only, and you have no frens yet. Add a few, or switch that key off in the tuner to see everything captured.

The feed

The tuner at the top of the feed is the whole point of ct: it is the ranking, and it is yours to change. Every key applies instantly and nothing is remembered anywhere but here.

sort
time is newest first. trust puts your closest people at the top and uses recency only to break ties. heat ranks by likes, reposts and replies, damped by age so nothing stays pinned for days.
show
What gets through at all — replies, reposts, quotes. frens only is the big one: switch it off to see every account ct has captured rather than just your graph.
from
The lowest trust tier that still gets through. Picking one includes every tier above it.
last
Drops anything older. ct is a realtime tool — posts past the window are pruned, not archived.

The readout beside the tuner shows network, wallet and X identity health, and the signal bars show how many posts survive your filters. If the bars drop to nothing, the filters are the reason, not the capture.

Frens & trust tiers

Your graph is separate from who you follow on X. Every tier sits above plain following — none of them is a mute — and the tier decides how far someone's posts outrank everyone else's when you sort by trust, and how far down you can filter.

following
Watching them. Posts show up, ranked lowest.
trusted
The default for anyone you add. Their activity is worth seeing.
fren
Inner circle. Floats to the top of the feed.

Adding people

Press +ct beside the follow button on anyone's profile on x.com, or use the search box in the frens tab to pick from accounts ct has already captured. New frens land on trusted.

ct can also add people automatically when you switch on X post notifications for them — the bell is the strongest interest signal X exposes. That's optional, it happens once per account, and removing someone afterwards sticks.

The graph is keyed on X's numeric account id, not the handle, so it survives a rename. Someone added by handle alone shows as unresolved until ct sees a post of theirs.

Find

Free search over everything ct has captured — post text, author, $cashtags and #hashtags, including quoted and reposted text. Several words all have to match.

Search deliberately ignores the feed rules. The reason you look something up is usually that a filter hid it, so applying the tuner here would hide the result you came for.

Notes

Notes are ct's answer to bookmarks, which fail for a simple reason: a bookmark is a link to content X still owns. Delete the post, edit it, or lose the account, and the bookmark is a dead row — and there was never anywhere to write down why you saved it.

A ct note carries what you wrote, when you wrote it, and — for a note on a post — a frozen copy of that post: its text, author, media and counts as they stood at that moment. The original being edited or deleted leaves your note intact.

Writing one

on a profile
Press +note beside the follow button on x.com, or on any row in the frens and find tabs.
on a post
Press in the post's action bar on x.com, or on any card in the feed.
already written
The button shows a count once notes exist — 3 — and opening it shows what you said last time before you add more.

Finding them again

The notes tab searches everything you've written, filters by tag, and groups three ways: by time to read a week back, by tag to follow a theme end to end, or by who — which ranks accounts by how often you've written about them, and is the only view of your own attention that exists anywhere.

Notes are filed under an account's numeric X id, so a rename doesn't orphan them, and a note on someone's post files under that person too — everything you've written about somebody stays together.

Backup

At the foot of the notes tab: json writes everything including the frozen posts and is what an import reads; md writes a plain Markdown archive for reading anywhere else. Import merges by note, keeps the most recently edited version, and can never delete a note you already have.

Unlike captured posts, notes are never pruned. The post corpus is a cache of X and expires on the retention window you set; notes are the one thing in ct that only you could have produced.

Comms & the network

ct clients can talk to each other directly over WebRTC — signed broadcasts to everyone, and direct messages to one peer. Nothing routes through a server that can read it, and nothing is stored after it expires.

Clients can also pool the posts they captured, so you see posts you never loaded yourself. That's Share captured posts, and it's off until you turn it on. What goes out is posts — never your likes, follows, or a record of what you read.

Beacons

Two browsers cannot find each other unaided, so ct ships relay beacons that introduce peers and carry traffic until a direct connection forms. You can replace them with your own in Settings → Network.

Muting

The mute button on any broadcast disconnects that peer and keeps them disconnected until you unmute them in Settings → Moderation. It's closer to a block than a hide: nothing of theirs reaches you, direct messages included.

Broadcast identities are self-asserted. A signature proves which peer key sent a message, not which human owns an X account.

$CT and the broadcast gate

Reading is open to everyone. Broadcasting requires holding 1,000,000 $CT in a linked wallet — an open publish verb on a gossip network is a spam surface, and the gate is the only thing standing on it.

Linking signs a plain message that binds your wallet to your ct peer key. It never spends, approves or moves tokens, and holding is all that's checked. Signing happens on ct.42069.gg/link.html rather than inside the extension, because wallets don't inject a provider into extension pages.

chain
Robinhood Chain (4663)
contract
0x63EcF3a907049bD6A5cf25a90842c9a7c66c4Ef2
supply
1,000,000,000 — all of it in the pool.
Swap $CT on pools.trade →

Every node enforces its own gate. Turning it off in your settings only changes what you accept — it cannot open the gate for anyone else, and it's worth doing when testing against a local beacon where nobody holds anything.

Your data

Everything ct holds — captured posts, your graph, your notes, your keys, your settings — lives in the browser profile on this machine. There is no ct account and no server holding a copy, which also means nothing is recoverable if you delete the extension.

posts
A cache of X, pruned on the retention window in the tuner. Shared between X accounts signed in to the same browser, since they're public data.
frens, notes, keys
Per X account. Two personas signed in to one browser keep separate graphs, separate notes and separate signing keys, and ct follows whichever account X is showing.
backups
Frens and notes both export to a file and merge back in. That's how you move to another browser or machine — and why an install is disposable.

Uninstalling from chrome://extensions deletes all of it. Take your backups first. Full detail on what is stored and what leaves your device is in the privacy policy.

When something looks wrong

empty feed
frens only is on by default and you may have no frens yet. Switch it off, or lower the tier floor and raise the age window.
feed stopped
X allows a fixed number of requests per 15 minutes, shared with your own browsing. ct pauses polling rather than erroring, and Settings → Stats shows what's left and when it resets.
no peers
Check the network is on in Settings → Network, then use Full reload — beacons are only read when the node is built, so editing them needs a restart.
can't broadcast
The gate needs a valid pass for the peer key you're running as. Switching X account changes that key, so each persona links its wallet once.

Still stuck, or found a bug? The Telegram group is the fastest way to reach us, and issues go on GitHub.

← Back to ct.42069.gg