> ## Documentation Index
> Fetch the complete documentation index at: https://docs.elementum.io/llms.txt
> Use this file to discover all available pages before exploring further.

# EDK CLI Reference

> Full reference for every `elementum` command, grouped by prefix, with usage and flags.

<Warning>
  **Limited Release.** The EDK is currently in limited release and is not available to all customers. Commands, generated file layouts, and package APIs may change before general availability. Confirm you're on the latest EDK version before starting new projects.
</Warning>

This page lists every command surfaced by `elementum`, grouped by prefix. For guided walkthroughs of how the commands fit together, see [Getting Started](/edk/getting-started), [EDK Authoring](/edk/authoring), and [Plan and Apply](/edk/plan-and-apply).

## Getting Help

Print the full command list at any time:

```bash theme={null}
elementum help
```

Add `--help` to any subcommand to see its flags and arguments.

<Tip>
  Run `elementum --version` to confirm which toolchain version you're on. Keeping the toolchain current avoids mismatches with the `@elementumai/edk` SDK installed in your workspace.
</Tip>

## Command Groups

<AccordionGroup>
  <Accordion title="auth — sign in and check the active environment">
    ```bash theme={null}
    elementum auth login --profile <profile>
    elementum --profile=<profile> auth status
    ```

    `auth login` stores an authentication profile locally under the name you pass to `--profile`. `auth status` shows the instance, organization, and environment tied to the profile — run it before every `plan` and `apply` to confirm the target.

    Non-interactive environments can provide the same context through environment variables:

    ```bash theme={null}
    ELEMENTUM_INSTANCE=us
    ELEMENTUM_ORGANIZATION=blueprint
    ELEMENTUM_ENVIRONMENT=production
    ```
  </Accordion>

  <Accordion title="pull org — bootstrap the organization workspace">
    ```bash theme={null}
    elementum --profile=<profile> pull org --data-only
    ```

    Creates the organization workspace at `<instance>/<organization>/`, imports org-level reference data (CloudLinks, AI provider connectors), and generates the catalog and state support files. Does not pull individual Apps or Elements as editable source — use the resource-level `pull` commands below for those.
  </Accordion>

  <Accordion title="init — converge the workspace with your organization">
    ```bash theme={null}
    elementum --profile=<profile> init
    ```

    Run from inside the organization workspace (`<instance>/<organization>/`). Converges the workspace so it mirrors your organization, leaving you ready to author changes.
  </Accordion>

  <Accordion title="list — inspect organization resources">
    ```bash theme={null}
    elementum list apps
    elementum list users
    elementum list groups
    elementum list categories
    elementum list cloud-links
    elementum list ai-provider-connectors
    ```

    Each subcommand returns the corresponding resource type from the organization you authenticated against. Use these to check what exists in your org before generating new EDK code or deploying changes.
  </Accordion>

  <Accordion title="fetch — fetch a full app definition">
    ```bash theme={null}
    elementum fetch app --aspect-id <uuid> [--fields] [--agents] [--automations] [--search-tables]
    ```

    Fetches an app by its UUID. The optional flags include related resources (fields, agents, automations, search tables) in the result.
  </Accordion>

  <Accordion title="pull — download individual resources by ID">
    ```bash theme={null}
    elementum pull app --id <app-aspect-id>
    elementum pull element --id <element-id>
    elementum pull automation --workflow <uuid>
    elementum pull agent --agent <uuid>
    elementum pull skill --skill <uuid>
    elementum pull search-table --aspect <uuid> --search-table <uuid>
    ```

    Pull a single resource — App, Element, Automation, Agent, Skill, or Search Table — by ID. Useful when you need one piece of an existing definition rather than the whole App.
  </Accordion>

  <Accordion title="generate — generate EDK code">
    ```bash theme={null}
    elementum generate [aspect-id] [--aspect-id <uuid>] [--force] [--pull-source]
    ```

    Generates EDK source files for a resource. `--force` overwrites existing files; `--pull-source` pulls the source definition before generating.
  </Accordion>

  <Accordion title="plan and apply — preview and deploy changes">
    ```bash theme={null}
    elementum plan [directory]
    elementum apply [directory]
    ```

    `plan` compares your local source to the deployed environment and reports the structural diff. `apply` executes that diff, pushing your changes to Elementum. Prefer the narrowest path that covers your dependencies while iterating.

    See [Plan and Apply](/edk/plan-and-apply) for plan symbols, staged deployment, and convergence checks.
  </Accordion>

  <Accordion title="skills — manage the authoring skill">
    ```bash theme={null}
    elementum skills install [--yes]
    elementum skills status
    elementum skills path
    elementum skills print
    ```

    `skills install` adds the EDK authoring skill to your project and initializes the supported local agent directories. `skills status` confirms the installed skill version matches the installed EDK. `skills path` and `skills print` inspect the installed skill configuration.

    <Warning>
      Use `elementum skills install` rather than adding the skill by hand. The installer initializes the agent directories correctly and enforces the skill/toolchain version match.
    </Warning>
  </Accordion>
</AccordionGroup>
