What problem does it solve?
Writing EPICS IOC database files by hand is error-prone, especially when you need consistent record links, macros, templates, and substitution-driven reuse across many devices.
Core Features & Use Cases
- Write EPICS database (.db) record instances: create records, populate common fields, and set type-specific fields for standard record types (ai/ao/bi/bo, mbbi/mbbo, calc/calcout, waveform/aSub/aai/aao, seq/fanout/dfanout, and more).
- Create reusable templates (.template): parameterize record content using
$(MACRO) / ${MACRO} so the same database structure can instantiate many devices.
- Instantiate templates with substitution files (.substitutions): generate many record sets using either pattern-style rows or simple per-line macro maps.
- Get link syntax right: correctly form INP/OUT/FLNK-style links using modifiers like
CPP, CP, MS, NMS, and handle constant and JSON links; also support INST_IO and VME-style address strings.
Quick Start
Ask: "Using the epics-database skill, generate a small IOC database with a template and substitutions that create three devices (P=BL1:, M=ch1..ch3) with one ai record and one calc record that scales the ai value."