Skip to content

A map of your codebase that refuses to guess.

Cognithamus measures a repository and its Git history, then draws what it found, one view per question. Anything it could not observe is marked absent, never filled in.

A passkey on this device becomes your identity — no password, no email. Nothing is read until you connect a repository.

the whole repository, standing upclaima district is a directory, a tower is a file, and its height is that file’s measured sizeevidence618 files placed across 9 directories · height from repo/bytes · position solved from 7,477 co-change linksusethe shape of a codebase at a glance — where the mass is, which directories sit apart, and which files are tied to files in other directories.Nothing here is arranged to look like a city. The switches below say, per layer, what each mark is measured from and what in it is chosen — including the layers that carry no evidence at all.

this repository · 279967bread 2026-09-03 · 618 files

deriving the city…

One codebase, 40 ways

The same snapshot, read 40 ways.

The map above shows one reading at a time. Here they are together — one measured snapshot of this repository, 40 interpretations, each answering a different question and each drawn only from what was measured. These are live renders, not screenshots.

ContainmentWhat is it made of?
rendering…

from repo/bytes · directory

ConstellationWhat moves with what?
rendering…

from co-change links

TerrainWhere does it concentrate?
rendering…

from repo/commits-touching × repo/bytes

StrataHow much is settled, how much moves?
rendering…

from repo/commits-touching · repo/bytes

FrontierCan I trust the other readings?
rendering…

from placed · refused · unobserved

SpectrumWhat is it made of, by type?
rendering…

from file extension · repo/bytes

SunburstHow is the tree proportioned?
rendering…

from directory · repo/bytes

MatrixWhich parts move together?
rendering…

from co-change links · directory

SkylineHow unequal is file size?
rendering…

from repo/bytes, sorted

LexiconWhat naming conventions does it actually have?
rendering…

from file-name suffix families discovered by a boundary radix tree · repo/bytes rank (thread height) · repo/commits-touching rank (thread brightness) · directory (colour)

OrbitWhich files are the hubs?
rendering…

from co-change degree

GlobitionWhere does it sit on the map?
rendering…

from repo/commits-touching rank (latitude) · directory (region) · repo/bytes density (terrain) · co-change links (chords)

NeuralDo the clusters match the folders?
rendering…

from co-change communities found by modularity (clusters) · cluster-to-cluster coupling (placement) · partners inside the cluster (depth) · repo/bytes (node size) · repo/commits-touching (node brightness) · directory (node colour)

BrainWhat if the codebase were a brain?
rendering…

from src vs supporting code · directories · co-change links · repo/commits-touching

CellWhat if the codebase were a cell?
rendering…

from directories · co-change coupling · repo/bytes · repo/commits-touching

DNAWhat if the codebase were a genome?
rendering…

from directory-ordered files · repo/bytes · repo/commits-touching · co-change links

ShockwaveIf you touch it, what else moves?
rendering…

from co-change shortest path from a chosen file (shell radius) · directory (sector and colour) · repo/bytes rank (node size)

HighwayWhich folders cannot be changed without each other?
rendering…

from co-change rolled up to directory pairs (roads) · repo/commits-touching rank (speed) · repo/bytes rank (vehicle length) · directory (colour)

MolecularWhich pairs are habits, and which were coincidence?
rendering…

from co-change pairs of 3+ commits (bonds) · commits per pair (multiplicity and bond length) · repo/bytes rank (atom size) · directory (colour)

OceanWhat is dead weight, and what never stops moving?
rendering…

from repo/bytes rank minus repo/commits-touching rank (depth) · repo/bytes rank (size) · repo/commits-touching rank (light) · directory (column and colour)

KeystoneWhich files hold it together?
rendering…

from co-change betweenness (removal order) · largest connected piece under removal (the shoreline) · co-change degree (the control) · directory (colour)

SieveWhich findings are real, and which are the instrument?
rendering…

from co-change pairs filtered by how many commits they repeat in · degree assortativity · clustering · same-directory share, each recomputed per threshold

HorizonHow wide is a change, and how much can we know?
rendering…

from sum of repo/commits-touching and sum of shared commits over pairs, bounded against the commit count — the envelope of every commit-breadth distribution the evidence permits

BriefWhat else will I have to touch?
rendering…

from shared commits over repo/commits-touching — the conditional probability a partner also changed, in one direction · commits as evidence weight · directory (colour)

SettleIs there really a most important file?
rendering…

from the same files ranked five ways in turn — repo/bytes · repo/commits-touching · co-change degree · repo/commits-touching ÷ repo/bytes · path — with Spearman between each consecutive pair, and total travel per file · directory (colour)

SingularityHow much of the history can never be known?
rendering…

from Horizon's envelope revolved around the rank axis — commit rank (radius) · the files a rank is proven to have touched (the bright disc) · the widest the evidence permits it (the corona) · the first rank whose lower bound is zero (the dark centre)

PendulumHow many times has each file been touched?
rendering…

from repo/commits-touching as swings per cycle (rate) and as rank (position along the row) · repo/bytes rank (bob size) · directory (colour) — the row recombines because every count is a whole number

TwinWhich files has no test ever moved with?
rendering…

from for every source file, the test that has shared the most commits with it — shared commits over repo/commits-touching — and whether a test shares its name · directory (colour)

LorenzHow concentrated is the change?
rendering…

from repo/bytes and repo/commits-touching, each sorted ascending and summed — the Lorenz curve and Gini of both, and the share held by the top 10%, 20% and 50% of files

ArchipelagoWhich parts have never touched?
rendering…

from connected components of the co-change graph (islands) · file count (area) · directory (colour) · the longest directory prefix an island's sources share (name)

HearthWhich directories are units, and which are filing?
rendering…

from for each directory, couplings with both ends inside it over couplings with at least one end inside — cohesion(), ranked · files placed and refused per directory

CorridorHow far apart are two files?
rendering…

from the fewest shared-commit steps between every pair of files, as a histogram · the pairs no chain joins, counted · the median and the diameter

IsthmusWhich single files hold a piece of the repository on?
rendering…

from articulation points of the co-change graph, by depth-first low-links · for each, the files cut off from the largest piece without it, by a second exact search · directory (colour)

CoreWhat is the nucleus, and is it a clique?
rendering…

from k-core decomposition of the co-change graph — every file's coreness, by repeated peeling · the deepest shell checked pair by pair for completeness · directory (colour)

LoomHow much of the repository does each test reach?
rendering…

from for each test file, the source directories it has shared a commit with, and shared commits summed per directory · tests recognised by name and by top-level test directory

CrossroadsWhich files change often but drag little along?
rendering…

from repo/commits-touching (up, log) · distinct co-change partners (across, log) · the median of each as the cut · a count of files in each of the four quadrants · directory (colour)

BrokerWhich files does change route through, whatever their partner count?
rendering…

from rank by distinct co-change partners against rank by betweenness — Keystone's betweennessOf, per file · the largest gaps between the two ranks, named · directory (colour)

SupernovaWhat did the sweeping commit leave behind?
rendering…

from k-core decomposition of the co-change graph — every file's coreness, by repeated peeling — as shells flying out from one point to the radius their rank earns · the deepest shell checked pair by pair for completeness · repo/bytes rank (mote size) · directory (colour)

MetropolisWho walked where, and when?
rendering…

from history — every listed commit's author, moment and placed files — replayed on a clock · Containment's treemap as the ground (repo/bytes footprint) · repo/commits-touching rank (height) · directory (colour)

CascadeWhat if the code rained?
rendering…

from paths · churn · bytes, as glyphs

Trace every number back to its measurement

Every mark in all five is one measured fact. Select a file in the map above and it names the figure behind its shape — repo/bytes of the total measured — and what that shape is therefore entitled to claim.

No number on this page is without a source. Where a subject could not be measured, the views count it and say so rather than drawing it.

Explore any of these in the map above →

The Cognithamus Constraint
Every panel, dimension and number corresponds to a measurement. A dash means no source, never zero.

Every visualization obeys three constraints

  • Observational truth

    Every visible feature represents an observed fact. A figure with no source behind it is drawn as a dash, never as a zero.

  • Traceability

    Appearance traces back to the observations that produced it. Each derived item carries the literal measurement it came from.

  • Visible refusals

    Facts the engine cannot place are counted and reported. The picture is never allowed to look more complete than the evidence is.


Why it exists

An estate of any size is normally read through scattered dashboards, each answering a question someone thought to ask months ago. None of them show the thing itself, and none of them agree. The status you get is assembled by hand, from what people remember to report, and it is out of date by the time it is assembled.


How it runs

XI runs as a single operator console.

  1. 01

    Point it at a repository

    Declare the repositories the instance may read. XI acquires a world from the checkout and reconstructs it at any revision.

  2. 02

    Register a passkey

    The first credential is registered once with a bootstrap token. A credential is the identity; there is no user table behind it.

  3. 03

    Open the console

    Sign in and the city is derived from what is measurable right now — git, the GitHub API, the database, and the process environment.

Access is passkey-only — there is no password to phish, reuse, or reset. Operator access to XI is granted separately from account creation.

Render your repository →