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. Sixty-six 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
66
Ticks a day
86,400
A day of capture
12 MB
Recorder CPU
0.1 %
Base edition
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. Almost none of that depends on the numbers being prices.

SystemChart wires that craft to a recorder sitting on your own hardware. One tick a second, sixty-six data points on every tick, kept at full resolution for as long as you want them. Nothing averaged away, nothing summarised into an aggregated 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.

With the window put away, the recorder is the tenth of a per cent Task Manager shows against it, because reading counters Windows already keeps is the whole cost. Open the window and you are paying for a window, which is a bill you stop the moment you close it.

The Capture page in Settings, showing what is being captured, the tick rate stated as 1 Hz easing to every five seconds when idle, and the frame capture status.

One tick rate, not a decision

A reading a second. Idle, it eases to every five seconds and comes straight back the moment anything happens. Games and a busy machine always get the full rate. There is nothing here to tune.

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.

How far back it reaches

Two months free, at the full tick, with nothing averaged down. With a licence, each size 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 source reading rather than to a summarised average.

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 just a shape. Shaded zones show where a reading left its normal range. Fixed lines mark the limits that mean something on any machine, like 80 degrees. Hours the machine was off are drawn as a gap, not as a slow ramp overnight.

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.

Six studies, not a hundred. The ones that made it measure level, trend, spread or a limit, which is what any signal has. The rest were built for prices and a crowd, and your machine has neither.

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 30 minutes of Counter-Strike 2 Chart note

Is my card running too hot when I play? No, and not close. Over half an hour it averaged 73 per cent load and 360 watts, while the core sat at 60.8 degrees against a limit of 80. The fan never went past 57 per cent.

The part worth knowing is the fan. It answers a change in temperature about 26 seconds late, so a short burst is over before it has spun up. That is normal for a fan curve, and it is why a quick spike heats a card more than you would expect.

Frames held 237 average. There was one hitch, a single second where the frame rate dropped and the stutter measure jumped together. One second, not a pattern.

Measured on the author's machine, Saturday 29 August. 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.

Every study explains itself

Each one carries a line saying what it measures, so you can pick without looking anything up. The foot of the menu says which studies are deliberately absent, and why.

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 one headline opened onto the readings behind it: the graphics clock setting a session low of 1545 MHz against a range average of 1995, drawn as a small chart 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.

Sixty-six data points about the machine itself, plus a set for every drive volume, every application and 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 20

  • load.avg, mem.ctrl.pct
  • temp.c, room.c, thermal.cw
  • power.w, power.pct, power.limit.w
  • clock.core, clock.mem
  • fan.pct
  • vram.mb, vram.pct
  • nvenc.pct, nvdec.pct
  • pcie.rx.mbps, pcie.tx.mbps
  • throttle.any, .power, .thermal

Memory 8

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

Drives 7

  • load.avg
  • read.mbps, write.mbps
  • latency.ms
  • iops, queue
  • temp.c every ten seconds
  • 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 five carrying a figure and a unit each, and the three tools it ran named underneath: composition, opened a page, and changed the timeframe.

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, eight 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. How far back to keep, and which corner the frame counter sits in, are the two that actually matter on day one.

Walk through all eight Capture, History, Frame counter, Appearance, Running cost, Agent, Report a problem, About.
Settings, Capture: what is being measured, the tick rate stated as 1 Hz easing to every five seconds when idle, and start with Windows.

Capture

The recorder runs at 1 Hz and eases to a tick every five seconds when the machine is idle, returning the moment anything happens. Games and anything over 25 per cent load always get the full rate, so a session is never sampled thinly. There is nothing to choose.

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 12 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.

Report a problem

One button gathers component logs, versions, what your hardware can report and the health of the archive. It leaves out your readings, the process lists it captured, your history, your sessions and your licence. You approve it before anything is sent.

You get back a code like SC-AB12CD34EF. Email that with a sentence about what you were doing and the report can be found. They are deleted after fourteen days. If the window will not open at all there is a separate Support Reporter in the Start menu that sends the same thing without loading the charts.

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