Elizon Docs
Guides & Walkthroughs

Author with a coding agent

Use Claude Code, Codex, Cursor or any other coding agent to write a Package, with the CLI keeping it correct.

The Elizon CLI is designed to be driven by a coding agent. You describe what the Package should do; the agent writes elizon.yaml and the definition files, runs validate, reads the structured errors and fixes them, until the Package is valid.

Set up

Choose your agent when you scaffold:

npx @elizon/cli init my-package --agent=claude-code   # or codex, cursor, generic

init writes instructions for that agent into the project. Every variant contains the same guidance, so switching agents changes where the files live, not what they say:

  • The loop: read the schema, make one change, validate, fix exactly what the errors name, repeat.
  • The command table: which commands are safe to run unprompted (schema, example, validate, build), which to ask about first (sign), and which to always ask about (install).
  • The rules the schema can't express: a Package never carries a secret, a destination or a database id; .elizon/ is off-limits.
  • Design judgment: when to use one Agent, a Team or a Workflow; what should be a Slot; how many LLM tiers to ask for; what makes a compliance block honest.
  • Every command at this project's pinned version: npx @elizon/cli@<cliVersion> ….

The files deliberately don't list manifest fields. They tell the agent to run npx @elizon/cli@<cliVersion> schema --json instead, so the agent always works from the schema of the CLI version the project uses.

schema describes elizon.yaml only. For the files the manifest points at (an Agent, a Team, a Workflow, a Knowledge Base, a Data Table, voice), the same files tell the agent to run npx @elizon/cli@<cliVersion> example <kind> (for example example team) and copy the shape of the working project it prints, rather than search the disk for an example or guess. See example.

init --agent=claude-code writes:

SKILL.md
elizon-validate.md
elizon-build.md
  • elizon-packages skill: Claude Code picks it up automatically whenever you work on elizon.yaml or the component folders.
  • /elizon-validate: validates the Package, fixes what it reports, and stops when it's valid. It won't install.
  • /elizon-build: builds the unsigned artifact once validation passes.

Start Claude Code in the project folder and describe the Package:

> Build a Package that answers our after-hours support line. Calls come in on the
  customer's own number. If the caller describes an outage, route them to whoever
  is on call; otherwise book a callback slot from their calendar.

Then run /elizon-validate whenever you want the agent to converge on a valid Package.

init --agent=codex writes:

AGENTS.md
SKILL.md

Codex reads AGENTS.md at the start of every session. It carries the loop, the command table and the rules, and points to .codex/skills/elizon-packages/SKILL.md for the full authoring guide.

Start Codex in the project folder and describe the Package:

Build a Package that reviews purchase requests against our spending rules and
answers APPROVE, HOLD or ESCALATE with the rule it applied. It should read
quarter-to-date spend from our ledger. Validate until it passes.

init --agent=cursor writes:

AGENTS.md
elizon-packages.mdc

The rule is marked alwaysApply, so Cursor's agent follows it in every chat in this project. AGENTS.md carries the same guidance for anything else that reads it.

init --agent=generic writes a single AGENTS.md with the whole guide. Most coding agents read AGENTS.md automatically; otherwise, point your agent at it in your first message.

What a good session looks like

The agent reads the schema (npx @elizon/cli@<cliVersion> schema --json) before writing anything.

It makes one change and validates. Output with --json gives it every error with a path, code and hint, which is enough to fix each one on the first attempt.

It stops when valid is true, reads any warnings, and tells you.

It asks you before sign, and always before install. Those act on a real Organization. The CLI also refuses them without --yes; that's a backstop for mistakes, not a replacement for asking you.

Tips

  • Describe the job, not the objects. "Route urgent calls to on-call, book the rest" lets the agent choose between an Agent, a Team and a Workflow; the skill tells it how.
  • Say who the installer is. "This goes to dental practices across the EU" shapes Slots, compliance and wording.
  • Review the compliance block yourself. The agent can make it valid; only you know whether it's true.
  • After moving the project to a newer CLI, run npx @elizon/cli@<new-version> init --update so the agent's files use the new version. It never touches your manifest.