Developers

A typed API for a hot mill

Read fused coil state, ask the twin for a pass plan, and write setpoints back through your Level-2 inside a signed envelope. Python, Go and TypeScript SDKs, OPC UA on the wire, and an edge runtime you can run on your own hardware.

Python, Go, TypeScriptOPC UA + REST + gRPCRuns offline at the edge
$ pip install steelira
Successfully installed steelira-2.4.1
$ steelira login --site kalyon-iskenderun
Authenticated as a.kohler@kalyon.example (engineer)
$ steelira mills list
hsm-1 hot strip auto (bounded) healthy
tcm-2 tandem cold assist healthy
cgl-1 galvanizing shadow healthy

SDKs in use at design-partner sites

NordStrip Steel
Kalyon Metals
Ferrata Group
Aurum Flat Rolled
Meridian Coil
Volkan Çelik
Quickstart

Three calls to a controlled pass

Read the coil, plan the pass, apply it. Everything the console does is available to your own systems, with the same envelope and the same audit trail.

quickstart.py
from steelira import Mill, Envelope

mill = Mill("tcm-2", site="kalyon-iskenderun")

# Fused, coil-length-aligned state at 50 Hz
state = mill.coil_state(coil_id="84-2213-A")
print(state.exit_gauge_mm)     # 1.982
print(state.flatness_iu)       # 3.1
print(state.chatter_margin)    # 0.24
print(state.surface.defects)   # []

# Ask the twin for the best next pass under your objective
plan = mill.plan_pass(
    coil_id="84-2213-A",
    objective={"prime_yield": 0.5, "energy": 0.3, "rate": 0.2},
    envelope=Envelope(gap_delta_mm=(-0.05, 0.05), tension_mpa=(4.0, 12.0)),
)
for move in plan.moves:
    print(move.stand, move.setpoint, move.delta, move.reason)

# Apply — signed, clamped, rate-limited, audited
ack = mill.apply(plan, mode="assist", approver="a.kohler")
print(ack.audit_id, ack.applied_at, ack.level2_ack)
SDKs & interfaces

Meet the mill where it is

Six ways in, one permission model.

Python SDK

The reference SDK. Full coverage of state, planning, actuation, backfill and evaluation harnesses.

Go SDK

For control-adjacent services where you want a static binary and no runtime surprises.

TypeScript SDK

For plant dashboards and internal tools that need live coil state in a browser.

OPC UA server

Steelira exposes its own predictions as OPC UA nodes so your existing HMIs can subscribe without any code.

REST + gRPC

Streaming coil state over gRPC, everything else over REST with cursor pagination and idempotency keys.

Webhooks

Defect detections, envelope breaches, autonomy changes and coil dispositions pushed to your systems.

Write-back contract

What a setpoint request must satisfy

The write-back contract is public because your OT team needs to read it before they will ever let it run.

contract/write.json
{
  "request": {
    "coil_id":   "84-2213-A",
    "mill":      "tcm-2",
    "setpoint":  "stand.5.roll_gap_mm",
    "delta":     -0.011,
    "signer":    "agent:roll-gauge@2.4.1",
    "evidence":  ["twin:run/9f21", "coil:81-9944-C", "spec:DX54D"]
  },
  "guards": {
    "envelope":       [-0.05, 0.05],   // per setpoint, grade, line
    "rate_limit":     "6 writes / 10s",
    "approval_above": 0.03,           // human confirms beyond this
    "watchdog_ms":    250,            // then release to Level-2
    "grade_policy":   "DX54D/strict"
  },
  "audit": {
    "id": "7f31c", "chain": "sha256:8a1f…", "immutable": true
  }
}
Edge runtime

Commission a line from the terminal

The edge runtime is a signed container image. Install it, point it at your historian and Level-2, and it will tell you what it can and cannot see.

$ steelira edge install --line tcm-2 --profile tandem-cold
Pulling signed image steelira/edge:2.4.1 … verified
Detected GPU: NVIDIA Jetson AGX Orin 64GB
$ steelira edge probe --historian ip21://plant-hist:10014
✓ gauge.exit IMS-9200 50 Hz
✓ shape.iu shapemeter-2 25 Hz
✓ force.stand[1-5] level2/opcua 50 Hz
✓ surface.camera[1-8] isra/direct line speed
✗ vibration.stand[1-5] NOT FOUND — chatter models degraded
→ recommend 1 accelerometer per stand (see docs/sensing)
$ steelira edge start --mode shadow
Runtime up. Mode=shadow. No writes will be issued.
Reference

Core API surface

The endpoints that matter. Full reference in the docs.

ResourceMethodPurpose
/v2/coils/{id}/stateGET, streamFused coil state at native rate
/v2/coils/{id}/planPOSTTwin-optimised pass plan under an objective
/v2/coils/{id}/applyPOSTSigned, clamped setpoint write-back
/v2/coils/{id}/auditGETFull decision trail, exportable
/v2/defectsGET, streamSurface and shape detections with coil-length position
/v2/mills/{id}/envelopeGET, PUTRead or propose envelope changes (approval required)
/v2/modelsGETDeployed model versions, metrics and promotion history
/v2/evaluationsPOSTRun a model or plan against a golden dataset
Developer experience

Built by people who have debugged a mill at 3am

The tooling exists because we needed it.

Replay any coil, locally

steelira replay 84-2213-A pulls the full sensor trace and decision trail for a coil and replays it against any model version on your laptop. Every production incident becomes a reproducible test case.

Golden datasets

Label coils once; every model change is gated against them in CI.

Idempotency keys

Every write is idempotent. Retries are safe by construction.

Structured errors

Every rejection tells you which guard failed and by how much.

OpenTelemetry throughout

Traces from sensor frame to setpoint acknowledgement, exported to your Datadog or Grafana stack — not just ours.

Connectors

What the connector library already covers

If your system is not listed, the OPC UA and historian paths almost certainly cover it.

Level-2 & control

  • Primetals Level-2
  • SMS X-Pact
  • Danieli Automation
  • TMEIC mill drives
  • ABB Ability
  • Siemens SIMATIC / PCS 7

Gauge, shape & surface

  • IMS X-ray gauges
  • Vollmer thickness
  • Shape-meter rolls
  • ISRA Vision surface
  • Parsytec inspection
  • Thermal line scanners

Plant systems

  • Level-3 MES / QMS
  • SAP PP-PI
  • OSIsoft PI / AVEVA
  • OPC UA & Classic
  • Historians (IP.21, Canary)
  • CMMS / EAM

See connector docs and the write-back contract

Getting started

From access request to first shadow write

Roughly a fortnight, most of it your OT team's review — as it should be.

  1. STEP 01

    Request access

    Tell us the line and the systems. We issue sandbox credentials and the write-back contract.

  2. STEP 02

    Sandbox

    Build against a simulated tandem mill with realistic telemetry and injectable faults.

  3. STEP 03

    Connector mapping

    We map your historian tags and Level-2 points with your engineers.

  4. STEP 04

    Shadow

    Edge runtime installed in shadow mode. Read-only until your team says otherwise.

Security

OT-safe by construction

Steelira writes to mill equipment, so security and safety are product requirements, not paperwork.

SOC 2 Type IIISO 27001IEC 62443 alignedGDPRSSO / SAMLData residency

Read the security overview

  • Segmented OT pathEdge runtime sits in a Purdue Level-2/3 DMZ with signed, rate-limited write-back and hard setpoint clamps.
  • Deterministic fallbacksEvery control loop degrades to the mill's existing Level-2 setup on watchdog timeout — the mill never stops because Steelira does.
  • Grade-IP isolationRecipes, grade specs and coil histories are tenant-scoped, encrypted at rest with per-tenant keys, and never used to train another producer's models.
  • Assurance-grade auditEvery perception, recommendation, approval and actuation is written to an immutable, exportable log keyed to coil ID.

Get sandbox access

A simulated tandem mill with realistic telemetry, injectable faults and the full API surface — so your team can evaluate the contract before anyone talks about a purchase order.