What you learn from a handle
From that full public surface, Xintel builds a picture you can act on — not a screenshot of a feed.- How the account performs — what lands, what doesn’t, and how engagement and amplification actually distribute across posts.
- How it posts — bursty or steady, which hours and weekdays matter, where the long silences are.
- What it is made of — originals vs replies vs quotes vs reposts; media and links; language mix.
- Who it talks to — the accounts it mentions, quotes, and replies to most, derived from the posts themselves.
- What it cares about — recurring subjects and the domains it links out to.
- How it sounds — a register: cadence, diction, stance, rhetoric, texture, and the devices it leans on.
Working in the app
Intel has three tabs that form one loop:
Add a handle in Others and Xintel gathers it: profile, outbound posts, inbound mentions, then a local network graph. You do not need to connect X to analyze a public account. Connecting X is optional and additive — it unlocks your own accounts, publishing, richer connection fields, and likes/bookmarks on the You tab. See OAuth is additive.
Gathered data stays encrypted on your device. When the deployment has a shared library configured, the public parts of a gather can be published so others on the same deployment can pull them — and so agents can buy finished reports. Device-private fields (cost, watch state, per-account synthesis settings) never leave your machine.
Day-to-day use is covered in Using the app. Setup and billing live in Connections & billing.
Reports you can trust over time
A report is an immutable snapshot with two layers:- Analytics — computed in code from the corpus you hold: fundamentals, composition, engagement, cadence, topics, information diet, network, and style features.
- Narrative — the AI’s reading of those facts: executive summary, strategic assessment, themes, a voice/register profile, audience read, contradictions, notable posts, engagement hooks, and conclusions.
How a profile is built
There is no background crawler. Work is orchestrated in the client when you gather, refresh, watch a target, or generate a report.- Resolve auth. If you are connected to X for that context, gathers use your OAuth user token through the app’s proxy. Otherwise public reads use the deployment’s app bearer on an allowlisted path — username lookup, user by id, tweets, mentions, affiliates, and tweet-by-ids. No writes, DMs, bookmarks, or
/users/meon the public path. - Pull the corpus. Profile first, then outbound posts and inbound mentions in parallel. Posts are incremental when you already hold own posts (
since_idfrom the max own post id, so empty incremental pulls are avoided). A mentions failure is non-fatal: the timeline still lands. Self gathers additionally pull likes and bookmarks when OAuth is available. - Normalize and derive edges. Raw X payloads become internal profile and post shapes. Network edges (mention / reply / quote / retweet weights) are derived locally from the post graph — free, deterministic, no extra API call.
- Persist. The dossier updates the on-device encrypted store and a client cost meter. If shared library KV is configured, a best-effort push publishes the public corpus (profile, posts, edges, report history). Self data never enters that shared bucket.
- Report (separate step). Generation uses the stored corpus. It may re-hydrate X Articles before synthesis; it does not re-run a full gather. Analytics are computed, optional deltas against the prior snapshot are computed, then Venice streams a structured narrative grounded in packed post transcript plus the analytics JSON.
What is computed vs synthesized
This split is the trust model. Computed in code (ReportAnalytics and style features) — exact and repeatable for the same corpus:
- Fundamentals (account age, velocity, follower ratios, listed count, pinned post)
- Composition (kind mix, media/link rates, language mix) and scope (own vs inbound counts)
- Engagement distributions and rates (impressions, likes, reposts, replies, quotes, bookmarks; engagement / bookmark / amplification rates; best and worst posts; performance by kind)
- Cadence (burst vs steady, variance, hourly and weekday histograms, peak windows, longest gap)
- Topics and entities from context annotations; information diet from expanded link hosts
- Network top-mentioned / quoted / replied
- Deterministic style features used as inputs to register and compose — never invented by the model
ReportNarrative) — interpretation grounded in those frozen facts and a packed transcript:
- Executive summary and strategic assessment
- Weighted themes with evidence
- Register sheet (cadence, diction, stance, rhetoric, texture, format flex, constraints) plus devices
- Narrative arcs, audience read, contradictions, notable posts, engagement hooks, analyst conclusions
Snapshots, deltas, and gates
Each report is anIntelReportSnapshot: a self-contained artifact with id, creation time, model and synthesis settings, meta (post count, date range, post ids analyzed, token cost), frozen analytics, narrative, optional changeSummary, and a pointer to the previous report.
Because snapshots are append-only, historical analytics stay frozen even if live post metrics later change. The change summary on later reports is measured first — volume added (own and inbound), date ranges of new material, metric shifts with percent deltas, composition and cadence drift lines, emerging / fading / sustained topics, network appeared / disappeared — then given a short narrative interpretation. The baseline (first) report has no change summary.
A deliberate gate prevents stale churn: you must refresh the profile after the last report before generating another, so consecutive narratives are not copies of the same stale state.
Local corpus, shared library, and privacy
For people, the source of truth is the device. Full dossiers live in encrypted browser storage bound to that device. Purging and privacy controls live in the app settings. The shared library (Upstash Redis / KV when configured) is optional and best-effort. Without it, local use still works; the shelf and agent inventory are simply empty. With it:- Published bundles include the public corpus only. Cost meters, watch flags, and synthesis settings are stripped before push.
- Pulls merge last-write-wins by gather time. Report histories are unioned by report id, so a thinner push cannot erase reports another client already contributed.
- The library is what agents browse and buy from — but only after a human (or first-party sync) has gathered and generated into it.
Access modes and cost shape
People use the app three ways, and can layer X on top:- Alpha (free) — the deployment’s shared Venice key fronts inference while Alpha is on; short-lived app token; no login or wallet.
- BYOK — your own Venice key (and optionally your own X developer credentials); bills your account.
- Credits — prepaid USDC over SIWE, debited for paid in-app actions.
What people get, and what agents buy
One report library, two interfaces — covered in depth in Humans vs agents. People work in the app with the full corpus: profiles, feeds, networks, report history, generation, compose, and dashboards. That is the high-resolution product. Agents use plain HTTP. Browsing is free: the shared handle list and per-handle report menus (ids, dates, model, post counts). Paying with x402 unlocks report bodies —IntelReportSnapshot[] — at a default of $0.01 USDC per report (unit × N for a selection).
A report body is not a profile export. It draws on the account’s full public surface — profile and org affiliation, every post format (originals, replies, quotes, reposts, long-form notes, Articles), inbound mentions, X’s own topic/entity annotations, expanded outbound links, and a network graph derived locally from all of it — and is frozen into a dossier an agent can reason over directly, with no gather, no metric computation, and no synthesis pass of its own:
- Computed facts — engagement distribution (best/worst posts, percentile thresholds, rate by post type), cadence (burst vs steady, hourly/weekday rhythm, longest silences), composition, topics, outbound domains, and a network derived from the post graph itself — who the account actually mentions, quotes, and replies to, not who it follows.
- Grounded narrative — executive summary, strategic assessment, weighted themes with cited evidence, a voice/register profile detailed enough to draft convincingly in it, narrative arcs, audience read, contradictions, notable posts, engagement hooks, analyst conclusions.
- Change summary, from the second report on a handle — measured volume added, metric shifts with percent deltas, topics emerging / fading / sustained, accounts entering or leaving the network, and a narrative of what the shift means. This is what turns a one-off snapshot into a time series an agent can track a target through, not just describe it once.
Names
Xintel is the product. AiSpace is the team that builds it. Venice, X, and Cursor are the tools underneath — dependencies, not co-brands.AiSpace
Xintel is an AiSpace product. The app and these docs share theaispace.bot domain.