Python SDK
Agents, runs, tools, approvals, evaluations and fleet management.
Define agents, register custom tools, subscribe to run events and write your own connectors. Everything the console does is an API call you can make.
Authenticate, pick a line, submit a lot as a goal, and stream the result.
from footeon import Client
client = Client(api_key=os.environ["FOOTEON_API_KEY"], plant="HCMC-03")
run = client.runs.create(
line="line-b",
model="velo-trainer-2",
lot_size=1200,
size_curve="EU36-46",
materials={"hide_batch": "LH-2291", "eva_lot": "EV-1180", "adhesive": "AD-22"},
objective="yield,bond_strength",
)
for event in run.stream():
print(event.step, event.status, event.duration_s)Events are also delivered by webhook and to your historian.
If you run equipment we do not ship a connector for, register it as a tool with a schema and the agent can call it.
from footeon import tool
@tool(
name="press.set_recipe",
description="Set temperature, pressure and dwell on a compression press.",
validated=True, # requires human approval by default
schema={
"press": "str",
"temp_c": "float[140,190]", # range enforced at the edge
"pressure_bar": "float[2.0,5.0]",
"dwell_s": "int[120,320]",
},
)
def set_recipe(press, temp_c, pressure_bar, dwell_s):
return opcua.write(f"ns=3;s={press}.recipe",
{"T": temp_c, "P": pressure_bar, "D": dwell_s})The CLI wraps the same API and is what most process engineers actually use.
$ footeon runs create --line line-b --model velo-trainer-2 --lot 1200
run RUN-4417 created · 8 steps planned · twin simulation queued
$ footeon runs watch RUN-4417
01 twin.simulate_run ✓ succeeded 2m40s
02 cut.nest_optimize ✓ succeeded 4m12s yield 87.4%
03 stitch.tension_control ✓ succeeded 11m08s 3 skips corrected
04 mold.density_control ✓ succeeded 9m51s 0.24 g/cm³
05 last.fit_control ✓ succeeded 6m33s dev 0.6 mm
06 bond.window_control ! approval 3m04s activation 64→66 °C
$ footeon approvals grant A-88213 --note "humidity drift confirmed"
approved · agent resumed · audit entry writtenpip install footeon
Ships with shell completion, a local run simulator against the twin, and offline mode for air-gapped plants.
Six integration surfaces, all versioned and all documented.
Agents, runs, tools, approvals, evaluations and fleet management.
Resource-oriented, cursor-paginated, idempotency keys on every write.
Low-latency run and telemetry streams for edge and historian consumers.
Signed events for run state, approvals, defects and model changes.
Write adapters for machines we do not ship, in Python, Go or Rust.
Local API on the factory-edge unit for offline and air-gapped operation.
The nouns you will work with.
| Resource | Purpose | Key operations |
|---|---|---|
| runs | A lot moving through the line | create, get, stream, cancel |
| agents | A bound agent on a line | create, update autonomy, deploy |
| tools | Machine capabilities agents may call | register, list, validate |
| approvals | Pending validated-parameter changes | list, grant, deny |
| pairs | Per-pair traceability records | get, search, export |
| models | Model versions per line | list, promote, rollback |
Everything the console shows is derived from this stream, and so can your systems be.
What to design against.
No. Footeon is a software and factory-edge autonomy layer that sits on top of the machines you already run. We connect over OPC UA, MQTT, Modbus TCP and vendor SDKs, read sensors and vision, and write setpoints back through the controls you already trust — with approval gates on any validated parameter.
Agents are bounded by guardrails and schema validation, they cite the datasheet or spec clause behind a decision, and they fail closed to the last known-good recipe. Continuous evaluation against golden datasets gates every model and prompt change in CI before it reaches a plant.
Only if you choose. Inference runs on factory-edge servers, and Enterprise deployments can run fully on-premises or in your VPC with no telemetry egress. Brand IP — patterns, lasts, construction specs — is tenant-isolated and never used to train models for another customer.
It stops and asks. Every agent runs at a configured autonomy level: observe, recommend, act-with-approval, or act. Bonding, lasting and any parameter under a brand or safety validation defaults to act-with-approval, and every approval is written to an immutable audit log with the sensor evidence that triggered it.
Sandbox credentials include the twin simulator, so you can build a full integration before touching a machine.