@catalog references.
If you haven’t set up your workspace yet, start with the Getting Started guide. You need a completed
elementum pull org --data-only before you can pull individual entities.Pull Existing Entities
The EDK is designed for iterating on Apps and Elements that already exist in your organization — not for creating them from scratch. Create new objects in the Elementum platform first, then pull them into your EDK workspace to continue authoring in TypeScript.Starting in the platform lets Elementum assign the initial namespace, handle, and layout defaults, and gives the EDK a clean, deployed starting point. Creating an App or Element directly in EDK source is not the recommended workflow.
pull org --data-only creates the organization workspace but does not pull every App and Element as editable source. Pull the specific entities you plan to modify with the commands below.
Pull an App
Pulling an App requires its aspect ID. You can look this up from the CLI withelementum list apps, or find it in the platform using your browser’s developer tools:
1
Find the App's aspect ID
Open the App in the Elementum platform, then open your browser’s developer tools and switch to the Network tab. Filter the requests for
graphql?apollo_op=GetAspectNamespace.In the response, copy the id value nested under aspect. The response contains two IDs — one for the organization and one for the aspect — so make sure you copy the one under aspect, and leave out the surrounding quotation marks.2
Pull the App into your workspace
Run Depending on how much the App contains — automations, related objects, and so on — this can take some time. When it finishes, the App appears as a TypeScript file in your workspace under
pull app with the ID you copied:apps/.Pull an Element
Workspace Structure
Afterpull org and a few pull commands, your workspace looks like this:
apps/ or elements/, with the entity’s TypeScript definition at the top and sub-folders for its child entities.
Rules of the Workspace
These rules protect deployed identities and keep planning reliable:- Identity bindings live in
generated/state.<environment>.json. Do not hand-edit state or mapping files — they map your source to deployed UUIDs and are regenerated by the EDK. - Generated catalogs expose typed references for authoring. The
generated/catalog.tsfiles back the@catalogalias so you can reference fields, automations, and agents by their handle-tokens. - Do not place UUIDs in authored entity source. UUIDs belong in generated state only. Use
@cataloghandle-tokens everywhere else. - Preserve existing
refNames and handles unless you’re performing a deliberate identity migration. Changing arefNametypically replaces the entity and can orphan existing records or relationships.
Modify Entities with Builders and @catalog
The EDK exposes builder functions for each entity type. Import the builder you need from the appropriate subpath of @elementumai/edk, and reference other entities through the @catalog alias:
@catalog is typed, TypeScript will flag broken references before you plan. If a field or automation you expect to see is missing from @catalog, run pull org or pull again to refresh the generated catalog.
Type-Check Your Changes
Run the standalone TypeScript check whenever you make changes:tsconfig.json is required for this command to produce useful output.
The EDK also performs entity-specific TypeScript checks during plan, but tsc --noEmit catches most authoring mistakes faster and without hitting the platform.
Work with the Authoring Agent
The EDK Authoring skill teaches your IDE’s coding agent how to build EDK projects correctly. When you delegate authoring work to an agent, give it enough context to make good decisions:- The business outcome and process lifecycle — what the change is meant to accomplish.
- The exact workspace and target App or Element — for example,
dev/my-org/apps/knowledgeItsm. - An instruction to inspect current source, generated catalogs, and deployment state first — before writing new code.
- A requirement to preserve deployed identities — no new
refNames for existing entities, and use@catalogfor all cross-references. - A requirement to run
planbeforeapply— never apply without a reviewed plan. - Whether new Automations should be
DRAFTorACTIVE— the agent will otherwise guess. - Permission boundaries — for example, “no apply until I’ve reviewed the plan output.”
- Available models and supporting entities — tell the agent which models your organization has and which other Elements or Apps the change depends on. Pulling related entities into the workspace gives the agent the full context it needs to build a complete process.
Next Steps
Plan and Apply
Preview the structural diff, deploy new fields in stages, and verify convergence.
CLI Reference
Every
elementum command grouped by prefix, with usage and flags.