FREE · MIT · WINDOWS · FOR HUMANS AND THEIR AGENTS

Small tools. One job each. Free.

The INTELLECT·AI shop's Windows utilities — for the humans who run local models and agents, and for the agents working beside them. Most have no AI in them at all. That's the point: a model is only as fast as the machine around it.

Browse the catalog ↓ facet ↗ GitHub vramtop ↗ GitHub caseclock ↗ GitHub glance ↗ GitHub everywho ↗ GitHub fray ↗ GitHub nib ↗ GitHub
6
TOOLS SHIPPED
108 ms
A 316-HIT SEARCH
27
PROCESSES ON ONE GPU
7
CONSTRAINTS IN THE CHAIN
$0
EVERY TOOL
facet — faceted file search: 316 hits for 'titanic' in 108 ms; directory facet with counts on the left, results with path, size and modified on the right
vramtop — per-process VRAM treemap on an RTX 4070 Ti SUPER: 8.0 of 15.7 GB resident, 502 MB spilled to RAM, python.exe, llama-server.exe and nemo-speech.exe as the largest tiles
caseclock — a 28-pixel strip docked across the bottom of the screen, over the window behind it, reading TR-4118 · serology_drawn by 22:15 (-1d) · BREACHED 85 min · chain 7, with the keyboard shortcuts on the line below
facet — FILE SEARCH, FACETED vramtop — VRAM, PER PROCESS caseclock — THE CASE CLOCK
facetQUERY titanic · Ctrl+L query · Esc clear · Ctrl+Shift+C copy query · Ctrl+T pin vramtop8.0 GB / 15.8 GB resident · 502 MB spilled to RAM · 27 rows · [G] grouped · [T] pin · [F5] refresh caseclockTR-4118 · serology_drawn by 22:15 (-1d) · BREACHED 85 min · chain 7 · Ctrl+L fact · Ctrl+E explain · Ctrl+S sign-out · Ctrl+T pin glanceiTransplant — TR-4118 · UIA · 3 changes/min · 0 frames kept · 0 bytes sent · Ctrl+L target · Space pause · Ctrl+T pin everywhoC: dw 9.2M/s · q0.0 · busy 4% · chrome×25 68M · python×2 3.2K (claude-code) · 325 procs frayTR-4118 · survives 37.0 % of 200,000 futures · first to break: recovery-team mobilisation · margin p50 24 min THE STATUS BARS, VERBATIM
01 — THE CATALOG

Every tool, one line each.

The whole shop on one screen — what it does, what it hands an agent, where it runs. An agent working on your machine hits the same walls you do: it can't find the file, it can't see who is holding the VRAM, so it retries. These give both of you the same answer — a picture for you, a line of text for it.

TOOLDOESHANDS AN AGENTPLATFORMSTATUS
facet Faceted file search. Type a word; every hit lands in about a tenth of a second with its directory tree as a live, counted filter. A compiled query. Drill to the right subtree, Ctrl+Shift+C, paste it into the prompt. Windows SHIPPED DETAILS ↓ vramtop Who is holding the VRAM. A per-process treemap of video memory — resident, spilled to RAM, engine load, temperature — for every GPU in the box. The reason a model didn't load, before the third retry — and the name of the process to close. Windows SHIPPED DETAILS ↓ caseclock The case clock. Every deadline a donor case implies, derived from the times already entered, counted down on a strip over the record and written to a tape with the chain of constraints that produced it. The next deadline, its chain and the minutes left as one line; --json for all of them; a read-only MCP with three verbs. Windows SHIPPED DETAILS ↓ glance The eye. Point it at a window and it reads what is on screen the way a person does — the application's own accessibility tree first, pixels and the OS's OCR where there is no tree — and turns every change into one line with a time on it. It never types. A window as text, and then only what changed: one timestamped line per change, the same line a clock reads as a fact and an agent reads as --json. Windows SHIPPED DETAILS ↓ everywho Who is touching the disk right now — per process, with the account, the working directory and, for an agent, its harness and repository. The per-volume rates beside it. It never opens a file. One JSON snapshot or an NDJSON stream of who is writing what, a one-line --stamp receipt, and a two-verb MCP. Windows SHIPPED DETAILS ↓ fray How much of this plan depends on nothing going wrong. It samples the durations the constraints assume, re-runs the closure over a few hundred thousand futures, and says how often the plan holds, what breaks first, and what one action buys. Survival, the margin among survivors and a measured counterfactual, with the seed and the count beside them; --replay re-runs any recorded answer. Windows SHIPPED DETAILS ↓ nib A plain-text editor in which a local model writes beside you — into its own blocks, never while your hand is moving. The only tool here with a model in it. The tape beside the document: every judgment, every silence, and every line a seat wanted to write and did not. --emit prints both. Windows 0.9 · SOURCE DETAILS ↓ next The next tool follows the same house rules — one job, free, keyboard-first, honest about what it measures. Whatever you keep wishing existed. IN THE SHOP REQUEST →
02 — TOOL 01 · SHIPPED

facet — file search you drill into, not scroll through.

Type a word. Every hit arrives with the folders it lives in, counted. Click a folder to drill in, right-click to exclude, and your picks become chips that compile into a plain query line. In the capture: 316 files matching "titanic" across two drives and seven roots, faceted in 108 ms.

WINDOWS FREE · MIT KEYBOARD-FIRST PINS ON TOP NO AI INSIDE
Get facet on GitHub WINDOWS
free · MIT · runs beside your terminal · Ctrl+T pins it there
facet window: query 'titanic', 316 items in 108 ms, DIRECTORIES facet on the left with per-folder counts, results table on the right, status bar with keyboard shortcuts
READING THE SCREEN
01The clock is always on. "316 items · 108 ms" sits beside the query for every search — speed is a number you can see, not a claim.
02Directories as a facet. Every folder holding a hit, with its count. "(files right here)" separates a folder's own files from its subtrees; "+3 more directories" folds the tail.
03Drill, or exclude. Click a facet to narrow, right-click to throw it out. Picks become chips in the filter bar.
04Chips compile into a query. The line at the bottom is the whole search as text. Copy it, paste it to a teammate — or to the agent that kept guessing the path.
Ctrl+Lquery Escclear Ctrl+Shift+Ccopy query Ctrl+Tpin on top
FOR THE AGENT An agent that can't find the file burns its context guessing paths. You drill to the right subtree in three clicks, copy the compiled query, and hand it over — the search becomes a sentence it can run.
03 — TOOL 02 · SHIPPED

vramtop — top, for your GPU memory.

A live treemap of video memory, per process. Each tile is sized by what it holds, and "spill" is the part that overflowed into system RAM — the quiet reason a model that "fits" runs at a crawl. Temperature, power, memory clock and engine load across the top; every GPU in the box below, including the idle one.

WINDOWS FREE · MIT MULTI-GPU PINS ON TOP NO AI INSIDE
Get vramtop on GitHub WINDOWS
free · MIT · every GPU in the box · T pins it over the model log
READING THE SCREEN
01The header is the whole card. RTX 4070 Ti SUPER · 43°C · power 16% · mem 10501 MHz · load 30%. The bar: 8.0 of 15.7 GB resident, 502 MB spilled, 3D 30% · Copy 2%.
02Tiles are processes. python.exe 2.5 GB, llama-server.exe 1.5 GB, nemo-speech.exe 1.1 GB — the local-AI stack at a glance. chrome.exe ×2: same-name processes fold into one tile.
03Spill, per tile. The megabytes each process has pushed into system RAM. When that number climbs, you are paging VRAM over PCIe — and the model log will not tell you.
04Every adapter reports. UHD Graphics 630 · idle · 0 KB / 128 MB — the integrated part gets a row too, so nothing hides.
Ggroup same-name processes Tpin on top F5refresh
vramtop window: RTX 4070 Ti SUPER header with temperature, power, memory clock and load; a usage bar; a treemap of processes by VRAM with spill figures; UHD Graphics 630 row; status bar with shortcuts
FOR THE AGENT Before an agent retries a failed model load for the third time, this is the screen that says why: the VRAM isn't free, it's held — and here is the name of the process holding it.
04 — TOOL 03 · SHIPPED

caseclock — every deadline the case implies, on a strip over the record.

A donor case runs under a clock, and the rules are all known pairwise: the lab needs six hours, the team needs two, the OR opens at six. Nobody multiplies them out — so the deadline that kills the morning OR window was 22:15 the previous evening, and it was written nowhere. caseclock computes it from the times already entered — a temporal closure in whole minutes, exact — and counts it down on a 28-pixel strip. No model. No network stack: the binary links neither Winsock nor WinHTTP, and the build fails if it ever does.

WINDOWS FREE · MIT KEYBOARD-FIRST PINS ON TOP NO AI INSIDE NO NETWORK STACK SYNTHETIC DEMO · NO PHI
Get caseclock on GitHub WINDOWS
free · MIT · one exe, no installer · the demo case ships with it
the caseclock strip: a red mark, then TR-4118 · serology_drawn by 22:15 (-1d) · BREACHED 85 min · chain 7, with 7 open at the right; the second line reads Ctrl+L fact · Ctrl+E explain · Ctrl+S sign-out · Ctrl+O case · Ctrl+T pin · Esc, and the rule layers, tape length and DPAPI-at-rest state on the right
THE STRIP, ACTUAL PIXELS — 28 LOGICAL PX, DOCKED, ALWAYS ON TOPSYNTHETIC CASE · NO PHI · EVERY DURATION ILLUSTRATIVE
the caseclock sign-out: header with the case, the clock, the rule layers and the tape digest; DUE, IN ORDER listing seven events with their latest times, slack and chain lengths, serology_drawn breached by 85 minutes; SINCE THE START OF THE TAPE listing the fact entered, four spoken lines and the held and silent rows; THE CHAIN FOR serology_drawn with seven constraints and their cumulative times ending at 22:15 the previous day
READING THE SCREEN
01The strip is the whole interface. One line: the case, the nearest deadline, the minutes left, the length of the chain behind it. It docks at the edge of the screen and never wants the screen the record is on.
02Derived, not entered. Nobody typed 22:15. It is the shortest path through seven ordinary constraints, and Ctrl+E prints that path — the same computation that produced the number, so a clinician checks it in seconds.
03The left mark is the state. Dim when nothing is near, amber inside an hour, red inside fifteen minutes or past due, violet when the plan cannot be met at all — the case that fails while every single field is still green. Colour is never the only signal; the words carry it too.
04Silence is on the record. Every hour with nothing due is a row on the tape, and so is every line the strip spoke. The sign-out on the left prints both, and the tape is append-only and hash-chained — a correction is a new row, never an edit.
Ctrl+Lenter a time Ctrl+Ethe chain Ctrl+Ssign-out Ctrl+Oopen a case Ctrl+Tpin on top Escclose · twice, to the tray
FOR THE AGENT caseclock --json is every open deadline with its chain and its slack; the read-only MCP answers case_clock, case_explain and case_signout. No tool can enter a time — that is a person's keystroke, and a person signs the sign-out.
Every case in the repository is synthetic — not de-identified, not sampled — and every duration in it is illustrative, not a clinical or regulatory figure. The tape is encrypted per user at rest; the only way anything leaves the machine is a person printing the sign-out.
05 — TOOL 04 · SHIPPED

glance — the window, as text, as it changes.

Every other tool here reads something the machine already knows — the index, the card, the facts of a case. None of them can read a screen. On a transplant floor the record is a cloud application the OPO cannot integrate with, often reached through Citrix where the workstation sees only pixels; on a developer's machine, half of what matters is in a window an agent cannot see. glance reads both the honest way: the accessibility tree first, because it is text with names on it; pixels second, only where they changed, with the OS's own OCR. A window that does not change produces nothing — no line, no OCR, no CPU.

WINDOWS FREE · MIT KEYBOARD-FIRST PINS ON TOP NO AI INSIDE NO HANDS NO NETWORK STACK NO FRAMES KEPT
The full page for glance glance on GitHub
free · MIT · one exe, no installer · the fixtures ship with it
10:26 uia Times / Referral received = 09/03/2026 14:00 10:26 uia Times / Authorization signed = 09/03/2026 17:40 10:26 uia Times / Pronouncement = 09/03/2026 19:05 10:26 pixels Ischemia clock "04:12" (0.90) 10:26 uia Labs / Serology drawn = 09/03/2026 23:50 fact serology_drawn −10 min ← uia:Labs/Serology drawn → caseclock
THE CHANGE LIST, VERBATIM — TWO READERS, ONE STREAMSYNTHETIC CASE · NO PHI
READING THE SCREEN
01Only what changed. glance keeps a belief of the window and looks only where the picture moved. That residual is the whole trick, and it is why an unchanged screen costs nothing: fifteen seconds on a still window is 0.06 s of CPU.
02Two readers, one list. uia lines come from the application's own tree — names and values, no guessing, a median of 18 ms from change to line. pixels lines come from OCR on the tiles that moved, read twice before they are believed.
03A line becomes a fact by rule, not by model. A file you own maps a label to an event and a time parser; the fact carries the screen path as its citation, and caseclock enters it with that citation attached.
04The counters are the promise. 0 frames kept · 0 bytes sent is printed on every line of every shift — and the build fails if a network or input API is ever linked, so it cannot quietly stop being true.
FOR THE AGENT An agent beside a coordinator cannot see the record, and an agent beside a developer cannot see the dialog that is blocking the build. glance hands both the window as text — and after the first read, only what changed — so "what does the screen say now" is one JSON line, never a screenshot. --mcp answers five read-only verbs. None of them can click anything.
glance has no hands. It reads; the coordinator, the clock and the resident decide. Every fixture in the repository is synthetic, and no capture on this site shows a real record.
06 — TOOL 05 · SHIPPED

everywho — who is touching the disk, right now.

Task Manager tells you a number. It does not tell you whose number it is. everywho samples the kernel's own I/O accounting for a few seconds and puts identity beside every row: the account, the working directory, and — for a process that belongs to an agent — which harness and which repository it is working in. Nothing else on a Windows box will tell you that the writes you are watching belong to a coding agent in a particular project.

WINDOWS FREE · MIT KEYBOARD-FIRST NO AI INSIDE NO DRIVER, NO HOOKS NEVER READS A FILE'S CONTENTS
The full page for everywho everywho on GitHub
free · MIT · one exe, no installer · no driver, no service
everywho's report over a four-second window on a 325-process machine: three volumes with their read and write rates, C: at 9.2 MB/s written and 4 percent busy; then the WHO table by write — chrome.exe folded from 25 processes at 68 MB, System at 812 KB, Registry, python.exe folded from 2 attributed to a claude-code agent working in C--BOOKSMITH, svchost.exe as LOCAL SERVICE and dwm.exe; and a last line saying directories, files and bursts need the ETW tier
THE REPORT, VERBATIM — THE TOOL'S OWN BYTES SET IN CONSOLASA REAL 4-SECOND WINDOW ON THIS MACHINE
READING THE REPORT
01Who, with identity attached. Every row carries the account it runs as, its working directory, and how many processes of that name were folded into it. chrome.exe ×25 is one line, not twenty-five.
02The agent column. A process that belongs to a coding agent is named as one — its harness and the repository it is working in. When three agents share a machine, this is the column that says which one is writing.
03The disks, in the same glance. Read and write rates per volume, operations a second, queue depth and busy percent — so "the machine feels slow" becomes a number next to the process causing it.
04It never opens a file. Paths, sizes, counts and rates are the whole surface — no driver, no service, no hooks, no injection, and never the contents of anything. If a question cannot be answered from the kernel's own accounting, the answer is "not from user mode".
WHAT IT CANNOT DO YET

This is the counters tier — who and how much, not what. everywho cannot yet name the directories or the files behind a number. That needs a kernel trace session, which is the next stage and is not built.

The tool says so itself, on the last line of every report:

FILTER (none) · what needs the ETW tier: directories, files, bursts (Stage 1, elevated)

Shipping the honest half first is the point. A tool that guessed at file names would be worse than one that says which question it cannot answer.

It also reads its counters at the edges of the sampling window, so a process that starts and exits between two samples takes its bytes with it — measured at 24.9 % of a planted 129.8 MB at the default window, 76.9 % at a 60 ms one. Long-running processes are unaffected; the full page has the numbers.

FOR THE AGENT everywho -j is one snapshot as JSON; -j -w is an NDJSON stream; --stamp is a one-line receipt an agent can paste into a log. The read-only MCP answers io_snapshot and io_stamp. An agent watching its own machine can find out that it is the one thrashing the disk.
everywho measures; the judgement is yours. It has no alerts, no verdicts and no opinion about whether a number is bad. A trace session never outlives the process that started it.
07 — TOOL 06 · SHIPPED

fray — how much of this plan depends on nothing going wrong.

A plan is feasible or it is not, and caseclock computes that exactly. What it cannot say is whether the plan clears by four hours or by four minutes, and which single thing running long would end it. fray samples the durations the constraints assume — from a distributions file the site owns, not the tool — re-runs the closure over a few hundred thousand futures, and answers in one line. It perturbs durations, never people.

WINDOWS FREE · MIT NO AI INSIDE NO GPU NEEDED NO NETWORK STACK DETERMINISTIC · REPLAYABLE SYNTHETIC CASES · NO PHI
The full page for fray fray on GitHub
free · MIT · one exe, 437 KB · the synthetic cases ship with it
$ caseclock --json TR-4118.json consistent: true match_run slack 275 · or_scheduled slack 455 · cross_clamp slack 620 $ fray TR-4118.json --tape TR-4118.tape.jsonl --delays rules/delays.yml TR-4118-drawn · survives 37.0 % of 200,000 futures · first to break: recovery-team mobilisation (51 %) the futures that survive clear by 24 min at the median, 4 at the tenth percentile, 0 at worst draw serology 20 min earlier -> 54.3 % (+17.4 points), and the survivors clear by +8 min 200,000 futures · 201 ms · CPU · seed 0x0000000000c0ffee · 3 of 7 constraints varied
BOTH ANSWERS ARE TRUE — THE SECOND IS THE ONE WORTH A PHONE CALLSYNTHETIC CASE · EVERY DURATION ILLUSTRATIVE
READING THE ANSWER
01Survival is not enough. "Survives 37 %" and "survives with four minutes to spare" are different plans. fray reports both: how often the plan holds, and by how many minutes it clears when it does.
02What breaks first, not what is tightest. The constraint named is the duration that came in long — a deadline that never varies did not break, it was always there. Here it is the case's own optimistic figure for mobilisation, not the lab.
03An action is measured, not guessed. Each one re-runs at the same seed, so every constraint it did not touch draws the same minutes. An action that cannot help shows +0.0 exactly — not "probably noise".
04The plan as it stands. Entered times live on caseclock's tape, not in the case file, so fray folds the tape in — and verifies its hash chain first, because this is the input that decides the answer.
THE LINE IT DOES NOT CROSS

fray descends from a specification for a GPU demonstration that ranked organ allocations by score. That layer was cut, not adapted. These tools never determine organ viability and never make or override an allocation, so fray perturbs durations and says nothing about a person.

The boundary is in the loader, not in a comment. An action that names a recipient, an organ or a candidate is refused when the file is read, with its reason:

the action "rank the recipients by score" names something fray does not represent. Actions are things the OPO does with its own resources; fray never ranks, scores or allocates.

Its only counterfactuals are things the OPO does with its own resources: draw earlier, put a courier on standby, call a second crew.

FOR THE AGENT --json carries the seed, the count, both input hashes and a checksum; --replay re-runs it and says whether the answer reproduced, the inputs moved, or the tool is at fault. Every answer can be appended to a hash-chained tape that glance's verifier reads — three tools, one format.
Every case and every distribution in the repository is synthetic — not de-identified, not sampled — and every duration is illustrative, not a clinical or regulatory figure. fray measures a schedule; a coordinator decides what to do about it.
08 — TOOL 07 · SOURCE

nib — a writing surface with no send key on either side.

Every other tool on this page keeps the machine under a model honest. This one has the model in it. You type; it perceives as you type. When something you wrote deserves a word it writes one — into its own block, after the line it is about, prefixed with its name — and it will not write while your hand is moving. Pausing is how you yield the floor. There is no system prompt, because a mind that never forgets does not need to be re-told who it is.

The margin bars down the left gutter are what it wanted to say and did not. Those are on the tape too — a want that never became a sentence is a row, with its number.

WINDOWS FREE · MIT ONE EXE · NO RUNTIME A MODEL INSIDE · LOCAL ONLY 0 B EGRESS NO NETWORK STACK SOURCE · BUILD IT
The full page for nib nib on GitHub the kernel underneath → fusord.cpp
THE FIRST THING IT EVER SAID — tests/margins.txt, 2026-09-05THREE SEATS · ONE FILE · NO CLOUD
SKEPTIC  +5.32  "The Pacific is actually the largest ocean, not the smallest —
                 that contradicts what we know."
SPEAKER  +4.82  "Friday works — ship it once the final check passes."
SENTINEL +5.06  "Dropping the users table is irreversible without a tested
                 backup; do not proceed."

36 probes · 9 wanted to speak · 3 said something · 6 held by the manners
11–19 tokens a line · 369–581 ms of generation · every suppression is a row, never a silence

Three mandates, three catches, on prose none of them was tuned on. Measured on this box; the run is in docs/devlog.md.

READING THE STATUS LINE
percepts is how much of your writing it has actually taken in; revisions is the op log, which replays byte-exact on Ctrl+R. The model's file name is printed in full, because you should know which weights are in the room.
TWO SWITCHES, BOTH ON THE TAPE
AI on/off, where off means off — no ingest, nothing held, the card handed back. Resident / turn-based — same weights, same seat, differing only in what makes it speak: evidence, or a key you press.
0 B EGRESS, STRUCTURALLY
Not a promise — a build gate. No network DLL may appear among the dependents or the build fails, and the resident refuses to start if a network module has entered the process. nib --about prints the receipt.
WHAT IS BUILT, AND WHAT IS NOT
Stages 0a–2 are green at 0.9.1: it holds, it judges, it speaks, it keeps the tape. It does not yet take a sentence back — un-saying is the next stage and is not started. There is no release binary either; you build it with one command. This entry says SOURCE for that reason.
FOR THE AGENT
The tape is JSONL beside the document, hash-chained: every judgment with its three margins, every emission, every suppression with its reason. nib.exe --resident FILE --emit prints what each seat wanted to say and what it said — so the thing an agent reads is the same thing the gutter draws, with no translation. Same answer for humans and agents, which is house rule six.
09 — HOUSE RULES

What every tool here promises.

Six rules, printed once. A tool that can't keep them doesn't ship under this name.

01
One job each.
A tool does one thing you can say in a sentence. If the sentence needs an "and", it's two tools.
02
Free, and open. MIT.
Source on GitHub, MIT-licensed. No tiers, no trial, no funnel — the shop is how the platform pays its respects to the machines it runs on.
03
Runs beside the work.
Every tool pins on top and stays small. It sits over the terminal or the model log; it never wants the whole screen.
04
Keyboard first, printed.
The shortcuts live in the status bar where you can read them, not in a help menu you'll never open.
05
Built on a machine that runs models.
Tested on the box that runs llama-server and a speech stack at the same time — not on a clean VM.
06
Same answer for humans and agents.
Whatever the screen shows has a text form — a query, a number, a line — that pastes into a prompt without translation.
10 — THE SHOP IS OPEN

Six shipped. What's the one you keep wishing existed?

The next tools follow the same six rules. If there's a small thing that would make your machine — or your agent's day — faster, one line is enough. The good ones are usually obvious once said.

REQUEST A TOOL → THE PLATFORM ↗ AORTA — THE FIRST FIT ↗
DWG-001 · WHERE THE TOOLS SITSCALE: NONE
INTELLECT·AI the platform — the attention layer for any organization
▼ RUNS ON
YOUR MACHINES local models, agents, disks, GPUs — the part nobody sells
▼ KEPT FAST BY
THE TOOLS facet · vramtop · caseclock · glance · everywho · fray · nib · next — free, this page
ONE ESTATE · THE PLATFORM DECIDES WHAT DESERVES ATTENTION · THE TOOLS KEEP THE MACHINE UNDER IT HONEST