In development. Every screenshot here is a real build recording a real machine. The Steam page is still in review.
Coming to Steam

The beauty of charting software,
applied to your system.

A 1 Hz recorder listens to your hardware, and captures a tick every second. Fifty-two data points in all, stemming from your processor, graphics card, memory, drives, the network, wall socket and beyond. Then it hands them to a charting terminal built with the rigour and complexity of best in class market software.

See how it works When you can get it No account. Nothing leaves your machine.
Tick rate
1 Hz
Data points per tick
52
Ticks a day
86,400
Per data point
2.8 bytes
A day of capture
22 MB
Idle CPU, one core
1.4 %
Price
Free
The SystemChart overview: a tape of headlines running under the tabs, a full width chart of the hardware market, a live ticker of every part, and the applications running right now down the right.

Overview

Two things that had never been put together.

Trading terminals have had decades of work poured into one problem: making a river of numbers legible. Candles, envelopes, distributions, screeners, a tape running across the top. That craft is real, and most of it has nothing to do with money. It is about reading a signal over time.

SystemChart wires that craft to a recorder sitting on your own hardware. One tick a second, fifty-two data points on every tick, kept at full resolution for as long as you want them. Nothing averaged away, nothing summarised into a five minute blur.

What comes out is a terminal for a single machine. Same instruments, same discipline, different subject. The questions turn out to be the same ones: what was normal, when did it change, and what moved with it.

1 Hz

The tick rate

Sixty ticks a minute. 86,400 a day. Every part of the machine read on the same beat, so a moment can be read straight down.

52

Data points per tick

Plus a set for every application you tag and every game you play. The full list is further down.

22 MB

Captures a day

2.8 bytes a data point, packed. Two months costs a few hundred megabytes, and a licence lets you keep the lot.

1.4 %

Of one processor core

Every process it runs, added up, while it sits in the tray. Measured on a real machine, not estimated. The counters are already being kept by Windows and your drivers. Reading them is the whole cost.

0

Accounts. Servers. Uploads.

A SQLite file on your disk and a port on loopback. Diagnostics go nowhere until you press the button that sends them.

Idle, the recorder eases to a tick every five seconds and comes straight back the moment anything happens. Set it to a flat 1 Hz and it never eases at all. Games always get the full rate.

The Capture page in Settings, with the idle tick rate offered as 1 Hz, 0.2 Hz and 0.1 Hz, and a note that games and heavy load always get the full rate.

The tick rate is yours

Three idle rates, said in hertz, with the recommended one marked. Whatever you pick, a game or a busy machine still gets the full 1 Hz tick.

The History page in Settings, offering 1, 5, 10 and 20 GB budgets with the span each buys on this machine, and a no limit option beside them.

Or keep the lot

Two months without a licence, at the full tick, with nothing averaged down. With one, each budget is labelled with how far back it reaches on your machine, at the rate you are actually writing. Choose no limit and nothing is ever dropped.

The instruments

Charts built for signals.

Candles, ribbons, distributions, ranked screeners, stacked breakdowns and heat strips. Moving averages, rate of change, dispersion, envelopes and operating zones on any line. Every chart is drawn from ticks, so zooming in goes all the way to the second rather than to whatever bucket a summary left behind.

RSI and MACD are missing on purpose. Both assume a price set by an auction. A processor at 100 per cent is not overbought. It is busy.

Everything the machine reports is a symbol you can chart: the hardware, every application you tag, every game you play. Put a frame rate against a board temperature, or one application's memory against the whole machine's, on one panel and one clock.

The processor page: load with an operating envelope shaded where it strayed outside, clock speed, a stacked breakdown by application, and time spent in kernel against user code.

Read against something

A line on its own is a number with a shape. Operating zones mark where a reading left its own normal range, fixed levels mark the ones with a meaning on any machine, and time nobody captured is drawn as a break instead of a smooth ramp from bedtime to breakfast.

The graphics page: load and clock, temperature against fan speed, board power against its limit, and a distribution of how much of the range was spent at each load.

Ask how often, not just how much

A distribution answers the question a line cannot: how much of the range was spent up there. A ranked screener puts every part in order with its own peak marked. A heat strip lays the whole machine out as bands sharing one clock, so a moment can be read straight down.

Pro Manual studies

Draw the studies yourself.

A trading terminal ships with a hundred indicators and most of them are a category error on a computer. RSI, MACD and the stochastics all measure mean reversion in a price discovered by an auction. Volume studies need a volume. Fibonacci retracements need a crowd.

Six survive the translation, because they measure level, trend, dispersion or a limit, and those belong to a signal rather than to a market. Put any of them on any line, on any page, with your own period, your own colour and your own thresholds.

The graphics page with three manual studies on the utilisation chart: a dotted normal range envelope, high and low bounds, and an exponential moving average, with the legend naming all of them and an fx 3 chip in the corner.
Three studies on one line. Normal range at 30 points, high and low at 30, exponential mean at 20.
GPU 10 minutes to 16:16 Chart note

Graphics opened soft and never left the band. The exponential mean sat under nine per cent for the whole session and never turned over, which is the tell that there is no trend here to find. Anything you could call a move lasted one tick.

One print at 22 per cent broke the upper envelope at 16:11 and closed back inside on the very next reading. The session low of 3 per cent came four minutes earlier. Both are marked, because High / low marks them. Neither is a story, and the tape agreed by staying quiet about both.

Thermals never got interesting. The core held 43 degrees against a fan loafing at 31 per cent, a long way below the 80 degree line, so the cooler is holding this with most of its range spare. Board draw averaged 80 watts and touched 110 on the spike.

Read together: an idle card doing short bursts of nothing very much. Which is the correct answer, and took four studies to be confident of.

No position in any of the hardware mentioned.

Moving average

The mean of the last N points. Flattens the noise so the level shows.

Exponential MA

Weighted towards recent points, so it turns sooner than a plain mean.

Normal range

A rolling mean plus and minus N deviations. Outside it is unusual for this window.

Rate of change

Change per minute. This is the one that finds a memory leak or a thermal ramp.

Limit line

A constant you care about. A thermal ceiling, a power budget, a refresh rate.

High / low

The highest and lowest reading across the window, marked where they happened.

The indicator menu open over a chart, listing the six studies with a note under each, the three already applied with their periods, and a line at the foot explaining why RSI and MACD are absent.

The menu says what it will not do

Every study carries the sentence explaining what it measures, and the foot of the menu states plainly why the famous ones are missing. A tool that quietly offers you something meaningless is worse than one that offers less.

The same graphics page with the automatic markup layer on, drawing a normal range and shaded excursions on every eligible chart at once.

Or let it mark up the page for you

One button draws a normal range, the heavy and idle zones, and every excursion out of them, on every chart on the page at once. That part is free and on by default. Pro is the part where you pick the period, the source and the line.

Studies live on the page you drew them on, and a page is yours to keep. Add drawing tools, custom limits, Compare and repeated experiments on top, and every one of them still reads without a licence once it exists.

The tape

Real news headlines, straight from your machine.

Every chart in the application answers a question you already had. The tape answers one you did not. It runs under the tabs the way a wire service runs under a broadcast, and it is the only surface here that volunteers anything.

It is written the way the market is written, because the market already solved this problem. Each hardware family is a stock. Something that rises firms, climbs, gaps up or rockets, in that order, depending on how far it went. Something that falls eases, slips, drops or craters. A reading pinned at its ceiling is halted. Two readings that move as one are in lockstep. One that leaves and comes back made a round trip.

Nothing is ranked by recency. Every candidate headline is graded on how far outside this machine's own ordinary it sat, and only the strongest survives per symbol, so one loud event cannot take the whole tape. Click a headline and it opens onto the captured ticks behind it, with the before and after figures and the exact window they came from.

Nothing on it is predicted, and nothing on it is advice. A quiet machine gets a quiet tape, which is the answer you want most days.

The tape running under the tabs with red and green headlines, and one opened onto a chart of the graphics clock rising from 764 to 2143 MHz with the before and after figures beside it.
A headline, opened onto the readings it was made from.

Eight it wrote about this machine, unedited

PWR

Power stock rockets 337 W as Aliens: Dark Descent opens

19h ago

GPU Capped

GPU clock stock halted at 2955 MHz for 9 minutes

19h ago

NET Top Retrace

Network stock round trips to 986.4 Mb/s and gives it all back

20h ago

CPU

CPU stock sets a session high at 100%

44m ago

GPU

VRAM stock gaps down 3.9 GB as Counter-Strike 2 closes

3d ago

NET

Network stock sells off 31.9 Mb/s on the handoff from Visual Studio Code to Edge

2h ago

MEM

Memory stock sets a session low at 15.5 GB

4h ago

GPU

GPU clock stock gaps up 1648 MHz with no name on the trade

3h ago

Every one of those is a restatement of something measured, and every one opens onto the ticks it was made from. Notice how many say with no name on the trade when they run in the application: nothing was running that explains the move, and saying so is more useful than picking a culprit.

Every tick

What gets written down.

Fifty-two data points about the machine itself, plus a set for every application and a set for every game. Graphics telemetry comes off the card where the card reports it. Where the card stays quiet, vendor neutral counters take over and the rest is left blank instead of filled with a guess.

Processor 17

  • load.avg / min / max
  • freq.ghz
  • cores.busy, cores.p, cores.e
  • time.kernel, time.user
  • time.dpc, time.interrupt
  • ctxsw, queue, threads

Graphics 7

  • load.avg
  • temp.c
  • power.w
  • clock.core, clock.mem
  • fan.pct
  • vram.mb

Memory 8

  • used.gb, commit.gb
  • cache.gb
  • faults, hardfaults
  • pool.paged.gb
  • pool.nonpaged.gb

Drives 6

  • load.avg
  • read.mbps, write.mbps
  • latency.ms
  • iops, queue
  • free space per volume

Network 8

  • rx.mbps, tx.mbps
  • util.pct, link.mbps
  • packets
  • errors, discards

Power 6

  • watts.cpu, watts.gpu
  • watts.platform
  • watts.psu
  • load.avg at the wall
  • cost at your tariff

Per application

  • cpu.pct
  • mem.mb
  • io.mbps
  • vram.mb

Per game

  • fps.avg, fps.low
  • frametime.ms
  • frametime.worst
  • gpu.busy
  • stutter.pct

Frames are the exception. They are counted as the game presents them, at its rate and not the recorder's, so a session at 240 Hz is measured at 240 Hz. When data points are added they are listed in the changelog, with the version they arrived in.

Cost tracker

What your machine costs to run.

The recorder already measures watts at the wall, so the only thing standing between that and money is a number off your electricity bill. Type in what you pay per kilowatt hour and every chart of power becomes a chart of spend.

1

Find the rate on your bill

One number, in pence or cents per kilowatt hour. It is on every statement, usually beside the standing charge.

2

Put it into Settings

Running cost takes the tariff and your processor's rated power. Nothing else is needed and nothing is sent anywhere.

3

Read the meter

Cost per hour sits in the live ticker. The power page breaks the draw down by part, so you can see what is actually spending it.

The power page: total draw at the wall, the breakdown into processor, graphics, platform and supply losses, and how much of the range was spent at each level.

Where the watts go

Processor, graphics card, platform and the loss in the power supply itself, and the four add up to the reading at the wall. A machine idling at 90 W and one idling at 180 W are a real difference in what you pay, and until it is charted nobody notices either.

The Running cost page in Settings, with a field for the electricity rate and a field for the processor's rated power.

One number, once

Set the tariff and it applies to everything already captured, not just to what happens next. A year of history becomes a year of spend the moment you type it in.

Assistant

Let an agent query SystemChart for answers.

SystemChart holds millions of ticks that no chat window can read on its own. So it exposes them the way a database exposes rows: as a set of tools an agent can call, each one running a real function over your stored readings and handing back a figure it did not invent.

The model has no other route to a number. It cannot see the ticks, it cannot round one, and it cannot average two in its head. If it says 0.95, a correlation ran. Under every answer sits the list of tools it called, so you can go and check.

Use the panel in the window, or point the assistant you already pay for at this machine over Model Context Protocol and never open SystemChart at all. Either way it is a model you choose and a bill you own; the application ships with no key.

The Agent page in Settings, offering OpenAI, Azure AI Foundry, Ollama, LM Studio, Foundry Local and anything else, with endpoint, model and key fields, and the tool server configuration block underneath.

In the window, or in your own assistant

Paste an endpoint and a key and the panel opens beside your charts. A model on the same machine needs no key at all, and Ollama, LM Studio and Foundry Local are one click each.

SystemChart is also a Model Context Protocol server, so the assistant you already pay for can read this machine directly. Settings writes the whole configuration block with the real path in it, for Claude Desktop or for VS Code, and copies it on one button. Between reading about this and using it sits a paste and a restart.

Windows encrypts any key you set under your account before it goes near the disk. The window that set it never gets it back.

The assistant panel answering which applications are using the most memory, with a ranked list of seven and the two tools it ran named underneath.

Answers you can check

The chips under an answer name every tool that ran to produce it. Open the same page over the same window and the same numbers come up, because they came from the same readings.

Ask about a window with no ticks in it and it says so. A reading that never moved gets named as such rather than reported as a zero, which is the difference between a steady fan and a fan that has stopped.

Put to gpt-5.4-mini through Azure AI Foundry, against this machine's own 24.9 million readings. Three consecutive turns, unedited, tool names as the panel prints them.

My machine felt slow last night. Anything actually happen, or was it me?

brief show_page set_timeframe

Probably not much was wrong.

Over the last 12 hours, the charts show:

  • CPU load averaged 12.7% and peaked at 75.5%; it was rising a little.
  • RAM used averaged 46.4% and was also slowly rising.
  • SSD latency stayed very low at 0.12 ms on average.
  • GPU load averaged 9.95% and was flat.
  • Wall power averaged 182 W and was flat.

What I do not see is a clear sustained spike in disk latency, GPU load, or a hard CPU bottleneck. There was a brief CPU max, but the summary does not show a lasting event.

I’ve opened the Overview page at 12h so you can look at the same window. If you want, I can narrow it to last night and check for a specific spike or change point.

That power spike, what was the graphics card doing at the same moment, and did it get hot enough to matter?

show_page set_timeframe changepoint describe describe correlate

At the power step, the GPU was also active: power and GPU load moved together very closely, with correlation 0.9738 and no lag.

What the GPU was doing:

  • GPU load over the last 12h ranged from 0 to 100, with a median of 7 and a 95th percentile of 30.575.
  • That means it was usually light, with some bursts.

Did it get hot enough to matter?

  • GPU temperature over the last 12h had a mean of 43.385 °C, median 43 °C, and maximum 66.75 °C.
  • That’s warm, but nothing in the readings says it was unusually hot for this machine.

I’ve put the GPU page in front and set it to 12h so you can inspect the same window. If you want, I can look for the exact power step timing against GPU temp or fan behavior.

Which application costs me the most processor over a normal day, and is that reasonable for what it is?

applications machine

The biggest processor user over a normal day was AliensDarkDescentGameSteam-Win64-Shipping at 17.74% of the whole machine.

Is that reasonable? Yes, for a game that’s a plausible CPU share, especially on this machine:

  • CPU: Intel Core Ultra 9 285K
  • GPU: NVIDIA GeForce RTX 5090
  • 24 cores / 24 threads

Other notable users were:

  • RocketLeague: 9.42%
  • testhost: 4.94%
  • Code: 4.47%
  • chrome: 3.73%

There was also 1.36% not attributed, which means some short-lived processes were seen between sampling walks.

Every figure above came out of a function that ran over stored ticks. 0.9738 is a correlation computed in C# over the instants both readings share. 17.74% is an average of the per process walk across a day. The model cannot round one, average two or produce a third, because it has no route to a number except through a tool. The third answer names its own blind spot without being asked to: work too short-lived for the walk to catch is reported as unattributed rather than blamed on whichever application happened to be nearby.

Twenty tools it can reach for

Summarise

  • brief
  • describe
  • machine
  • capabilities
  • capture_status

Measure

  • correlate
  • regress
  • changepoint
  • trends
  • changed

Look up

  • history
  • composition
  • applications
  • games
  • sessions
  • events

Change the view

  • show_page
  • set_timeframe
  • add_study
  • set_markup

Sixteen of these only read. The four that change something change what is on screen and stop there. None writes a tick, deletes one, or touches capture, settings or licensing. An instruction smuggled into a window title earns you a wrong answer and no wrong actions.

The panel in the window and the tool server offer the same twenty. A test compares the two lists against each other on every build, because they drifted apart once and the only thing that noticed was a real question getting a worse answer in one place than the other.

While you play

A frame counter, not an injected hook.

The counter is its own click through window sitting above the game. Nothing gets written into the game process, so anti-cheat has nothing to object to and antivirus has nothing to quarantine.

Ten fields to choose from and a corner to put it in. Frames get captured whether the counter is showing or not, at the game's own rate, so every session leaves a page behind with its lows, its worst frames, and how it compares to the last time you played.

The frame counter page in Settings, showing a live preview of the counter, the fields it can carry, corner selection and size.
Settings, Frame counter.

Settings

One window, seven pages, no account.

Everything the application can be told is in one place, on the same glass the installer is made of. Nothing here reaches a server. There is no profile to sign into, no sync, and no setting whose real purpose is to sell you the next tier.

Most of it you will set once and forget. The tick rate, how far back to keep, and which corner the frame counter sits in are the three that actually matter on day one.

Walk through all seven Capture, History, Frame counter, Appearance, Running cost, Agent, About.
Settings, Capture: the tick rate when idle offered at 1 Hz, 0.2 Hz and 0.1 Hz, each annotated with what it costs, plus start with Windows.

Capture

The recorder runs at 1 Hz and eases off when the machine is idle. You choose how far it eases: 1 Hz always, or down to 0.2 Hz or 0.1 Hz while nothing is happening. Games and anything over 25 per cent load always get the full rate whatever you pick, so a session is never sampled thinly.

Start with Windows lives here too. Capture is worth leaving on because the span you can look across is the span you captured, and a gap cannot be filled in afterwards.

Settings, History: the size the local archive may reach, offered at 1, 5, 10 and 20 GB and no limit, each annotated with how long it buys on this machine at its measured daily rate.

History

Every choice is annotated with what it buys on your machine, measured from your own last day of capture rather than from an average of somebody else's. This one writes about 22 MB a day, so it prints the real span beside each size.

Free reaches back two months. Pro removes the limit entirely. Either way the only thing that ever deletes a reading is the size you chose yourself.

Settings, Frame counter: a live sketch of the counter in the chosen corner, ten fields to choose from, corner selection, size and a dark plate option.

Frame counter

Ten fields, four corners, a size and an optional dark plate. The sketch is live, so choosing a corner shows you the corner instead of asking you to start a game and find out.

Frames get captured whether the counter is showing or not, so turning it off costs you nothing in the record.

Settings, Appearance: six colour themes as swatches, seven icon finishes for the window, taskbar and tray, and the motion setting.

Appearance

Six colour themes and seven finishes for the window icon, the taskbar button and the tray. The tray gets its own choice for while capture is stopped, so you can tell at a glance without opening anything.

Motion is here as well: none, standard, or charts that flow continuously between readings instead of stepping.

Settings, Running cost: a field for the unit rate from your electricity bill and the currency, with the resulting cost per hour shown.

Running cost

One number, entered once: the unit rate off your electricity bill. From then on the wall reading is also a price, per hour, per session and per game.

Nothing is looked up and no tariff is guessed. If you leave it blank the app charts watts and says nothing about money.

Settings, Agent: a provider chooser offering OpenAI, Azure AI Foundry, Ollama, LM Studio, Foundry Local and other, with endpoint, model and key fields, and the tool server configuration block underneath.

Agent

Pick a provider, paste an endpoint, and the assistant panel opens beside your charts. A model on the same machine needs no key at all. Windows encrypts any key you do set under your account before it touches the disk, and the window that set it can never read it back.

Underneath sits the tool server block, written out with the real path already filled in for Claude Desktop or VS Code, copied on one button.

About

Version, edition, whether this copy came from Steam or direct, how long the recorder has been up, how many readings it holds, how many sessions, the size of the archive on disk and who the licence belongs to.

It is a status page, not a storefront. Nothing on it asks you for anything.

Pro Free captures everything. Pro remembers it. Every tick, every page and every automatic explanation are free, and so are your last two months. Open this to see what a licence adds.

Nothing you captured is ever locked away, and a page built in Pro still reads without it. Pro buys a memory that goes back years, a model you can ask about your own machine, and the tools for building your own views and marking up your own charts.

Six colour themes

All dark, and green stays up and red stays down in every one of them. A theme changes the room the charts sit in, never what a reading says.

The overview in the Obsidian theme, near black with a bright panel.
Obsidian
The overview in the Nocturne theme, deep indigo.
Nocturne
The overview in the Ember theme, warm charcoal under amber.
Ember
The overview in the Arctic theme, cold slate and ice.
Arctic

Graphite and Terminal complete the set. All six are one click in Settings.

The Appearance page in Settings, with the six themes as buttons carrying a colour swatch, a name and a line on what each is for.
SurfaceFreePro adds
Capture Every data point, the full 1 Hz tick, autostart, pause and resume Nothing. Capture is never gated.
History The last two months, at full resolution, nothing averaged down As far back as the disk you give it, up to no limit at all
Pages Overview, Capture, CPU, GPU, Memory, Drives, Network, Power, Machine Pin and rename tabs, editable copies, blank pages, the chart palette, saved layouts
Applications and games Attribution, tags, category pages, game and session pages, peer comparison Nothing
The tape and findings All of it, with the captured evidence under every headline, including anything a watch caught Writing watches of your own
Analysis All timeframes, automatic markup, operating zones, findings, trends, what changed Manual indicators, drawing tools, custom limits, Compare, before and after, repeated experiments
Frame counter On or off, with the default counter Corner, fields, size and plate
Appearance Every finish for the window, taskbar and tray, and the Terminal theme Six colour themes
Assistant None The panel in the window and the tool server, against a model you supply

Pro is one payment, once, on Steam. A licence that lapses leaves every reading, every page and every theme you already chose exactly where they were. History captured under a licence is never taken back: the span stops growing, it does not shrink.

Availability

Coming soon to Steam.

The store page is in review. It goes up the day that comes back approved, and Steam handles the install, the updates and the community from there.

Windows 10 or 11, 64-bit Free edition keeps your last two months Works offline. No account to make