Skip to content

SteamfieldSoftware Studio

> We build products for working with data and for coding agents. Most are open source, and we use all of them every day.

Fig. 1The mountains are our commits per day across our product repositories since May 4, 2026, seven-day average: 5,024 in all, peaking at 133 a day. The sun is our logo. Source: git history.

Player 1

Select your product

P1 · ↑ ↑ … Cabinet note

The cabinet remembers. ↑ ↑ ↓ ↓ ← → ← → B A

Versions as of November 1, 2026. OpenData's is its MCP server.

OpenData

v1.0.0 · Open core

Connect OpenData to Claude or ChatGPT and ask about schools, housing, health or jobs. It finds the right public datasets, does the math, and draws the chart inside the conversation.

OpenData / research desk
LOCALREADY

PREPARED EXAMPLE / BLS

How did US unemployment change from 2019 to 2024?

Result ready: unemployment increased 0.3 percentage points from 2019 to 2024. Source and calculation available below.

+0.3 percentage points
3.7% in 2019 → 4.0% in 2024

201920212023Year0246810Unemployment (%)
201920212023Year0246810Unemployment (%)
Inspect source & calculation
US annual unemployment, people age 16 and over
YearRate
20193.7%
20208.1%
20215.3%
20223.6%
20233.6%
20244.0%

4.0 − 3.7 = 0.3 percentage points. Annual averages from the Current Population Survey, not a relative percentage increase.

BLS Table 1 · checked November 2, 2026
Fig. 2 A prepared example of a question answered with sourced data. The second view shows the catalog snapshot. Source: BLS Current Population Survey; saved OpenData catalog

It pulls from more than 200 sources, including BLS, Census, FRED, FEC, the World Bank and the EPA, and turns CSV, Excel, PDF and API responses into tables it can query.

Every number and chart links back to the dataset it came from, so you can check any answer against its source.

Add it to Claude or ChatGPT as a connector:

https://mcp.tryopendata.ai/mcp

Visit OpenData

Charts are drawn by OpenChart, and its 14,000-test suite runs on rr.

OpenChart

v9.0.0 · Apache-2.0

Describe a chart as JSON and OpenChart handles the scales, label placement, responsive layout and dark mode, then renders it in React, Vue, Svelte or plain JavaScript.

OpenChart / plot console
LOCALREADY

Change the view. The chart and its spec stay in step.

LINE / INDIVIDUAL SERIES

Jul 2026Oct 2026Week05001k1.5k2k2.5k3kTotal commitsOpenData3.3kOpenChart473StatGlass303Stacks797rr102

Compare individual products: commits to date.

Inspect chart spec

The rendering configuration, with data rows omitted for readability.

{
  "mark": {
    "type": "line",
    "interpolate": "linear"
  },
  "data": "[130 rows omitted]",
  "encoding": {
    "x": {
      "field": "week",
      "type": "temporal",
      "axis": {
        "title": "Week"
      }
    },
    "y": {
      "field": "commits",
      "type": "quantitative",
      "axis": {
        "title": "Total commits"
      },
      "scale": {
        "zero": false
      }
    },
    "color": {
      "field": "product",
      "type": "nominal",
      "scale": {
        "domain": [
          "OpenChart",
          "OpenData",
          "Stacks",
          "StatGlass",
          "rr"
        ],
        "range": [
          "#ff2e88",
          "#2de2e6",
          "#a395d6",
          "#a04dff",
          "#d2c7f4"
        ]
      }
    }
  },
  "endpointLabels": true,
  "a11y": {
    "description": "Compare individual products: commits to date."
  }
}
Fig. 3 The same commit history in four views, each rendered by OpenChart at build time. No charting library ships to the browser. Source: git history of our product repositories

It covers bar, line, area, beeswarm, waffle and calendar charts, plus tables with sparklines, Sankey diagrams, network graphs and maps.

Alt text, ARIA labels and keyboard navigation come built in, and specs validate field by field, which makes it a good target for agents that write charts.

$ npm install @opendata-ai/openchart-react

Visit OpenChartSource on GitHub

OpenData draws its charts with it, and so does this page, at build time.

StatGlass

v0.3.2 · Apache-2.0

StatGlass lives in the menu bar of Apple Silicon Macs, reads CPU, GPU, memory, power, network, disk and battery once a second, and keeps up to 30 days of it.

StatGlass / history buffer
LOCALREADY

The fans spun up. Go back and find out why.

Oct 04, 2026Oct 11, 2026Oct 18, 2026Oct 25, 2026Nov 2026020406080100Oct 24, 3 PMcargo build, 94% CPU
CPU7.7%

No recorded event

Move through the timeline, or jump to the build. Illustrative history.

Fig. 4 Thirty days of illustrative CPU history. Scrub back to the build that caused the spike. Source: illustrative data

If the fans spun up at 3pm, you can scroll back afterward and see which process did it. It can also watch other Macs, Linux servers and Docker containers.

It uses under 1% of one core with only the menu bar showing, and nothing leaves your Mac.

Apple Silicon Macs on macOS 26 or newer. The first StatGlass binary release isn't out yet; build it from source in the meantime.

Visit StatGlassSource on GitHub

Formerly Kelvo. Built in Rust and Tauri.

Stacks

v0.7.0 · Apache-2.0

Stacks writes the starter files and a build brief for a new project, hands it to Claude Code, Codex or Cursor, and runs the project's own checks until they pass. This site was initially bootstrapped with the Stacks CLI.

Stacks / local terminal
LOCALREADY

Choose a command to watch it run, or type your own below.

STEAMFIELD / LOCAL SESSION
Explore the starter behind this site.
This is a simulation. No files or commands leave your browser.
Type help, or choose a command below.

Enter runs · ↑ ↓ history · Esc / Ctrl+C stops · Tab moves between controls. This is a local simulation; no commands are executed.

Local demo ready.

Fig. 5 A simulated project session with an abridged brief and recorded verification output. Stacks writes the starter; a coding agent builds from its brief. Source: this site's scaffold preview and historical verification

Pick a stack for a new project or a fragment to add to an existing one. The brief tells the agent what to install and how the project is laid out.

stacks verify runs install, lint, typecheck, tests, build and a live server probe. The agent isn't finished until all of them pass.

$ npm install -g @steamfield/stacks

Visit StacksSource on GitHub

This site was scaffolded with stacks new astro-blog.

rr

v0.29.3 · MIT

rr syncs your working tree to remote machines over SSH, runs the tests there, and streams the results back, split across as many hosts as you have.

rr / dispatch console
LOCALREADY

Same six shards. Choose the machines that share the work.

32 min serial11 min on 3 hosts
HOST 0111 MIN
16
HOST 0211 MIN
24
HOST 0310 MIN
35
01632 MIN

Ready to dispatch six shards.

Illustrative, ignoring transfer/startup overhead. Playback: 0.2 seconds per simulated minute.

Fig. 6 Six shards shared across up to three hosts. The simulation uses the same time scale for every run. Source: schematic

It picks whichever host is free and locks it, so parallel agents don't collide. Shard a suite across three hosts and it finishes in roughly a third of the time.

Output is built for agents: JSON events, parsed test failures with file and line, and error codes that suggest the fix.

$ brew install rileyhilliard/tap/rr

Source on GitHub

OpenData's 14,000 tests run through it with one command, rr test.

From the blog

How the products work and what we learn building them.

All postsRSS

  1. Drawing the charts on this site at build time

    Every chart on steamfield.io is an OpenChart spec rendered to static SVG during the build, so the page ships no charting code and the figures show with scripts turned off.

    openchart · astro · engineering

  2. Why Steamfield

    Steamfield is a small studio that builds its own products and takes no client work. This post covers what they are and how each one grew out of another.

    studio