Elizon Docs
Elizon CLICommand reference

init

Scaffold a new Package project, or refresh its coding-agent files.

npx @elizon/cli init [directory] [--agent=<agent>] [--starter=<starter>] [--dir=<directory>]
npx @elizon/cli init --update [--agent=<agent>] [--dir=<directory>]

Creates a Package project: a valid starter manifest, the component folders, the CLI's own config, a .gitignore, and instructions for your coding agent. It needs no account, no login and no network, and it asks for none.

Prompts

In a terminal, init asks three questions, each with a default. Prompts go to stderr, so --json output stays clean.

? Working directory: (.)
? Coding agent:
    1) Claude Code (default)
    2) Codex
    3) Cursor
    4) Generic
  Choose 1-4: (1)
? Starter:
    1) Blank (default)
    2) Single agent
    3) Multi-agent team
    4) Workflow
    5) Voice agent
    6) Agent with a Skill
    7) Agent with Tools
  Choose 1-7: (1)

Anything you pass as an argument or flag isn't asked. With no terminal attached (CI, a coding agent), nothing is asked and the defaults apply.

Options

OptionValuesDefault
[directory] / --dirWhere to create the project (pass one or the other).
--agentclaude-code, codex, cursor, genericclaude-code
--starterblank, single-agent, team, workflow, voice, skill, tool, sipblank
--updateRefresh the coding-agent files only (see below)—

Values are case-insensitive.

Starters

Every starter is a complete Package that passes validate with no errors and no warnings, so your first run is green and anything that fails afterwards is something you changed.

StarterEntry pointWhat it contains
blankagents.assistantThe minimum valid Package: one Agent, one LLM Slot, a manual trigger
single-agentagents.support-assistantAn Agent that answers from a Knowledge Base of the installer's documents
teamteams.triageA Team with a lead and two member Agents on two LLM Slots
workflowworkflows.handle-requestA Workflow that calls an Agent and writes a Data Table, which a Code node and the Agent read
voiceagents.call-handlerAn Agent that answers calls, with speech-to-text and text-to-speech Slots
skillagents.price-assistantAn Agent and a Skill folder with SKILL.md, a reference file and a Python script
toolagents.order-deskAn Agent bound to two MCP Tools and an OpenAPI Tool, each with its credential Slot, that also answers from a Knowledge Base and reads a Data Table
sipagents.call-handlerAn Agent that answers calls and its voice configuration, plus a SIP routing template, a sip-trunk Slot and an inbound-call trigger

What it writes

elizon.yaml
config.yaml
.gitignore
…coding-agent files (below)
  • elizon.yaml: the manifest. It's yours to edit, and init --update never touches it.

  • All six component folders, even the ones the starter leaves empty (with a .gitkeep).

  • .elizon/config.yaml: the exact CLI version this project is pinned to (cliVersion) and the Organizations it can install into (targets, filled in by target add). Owned by the CLI, so don't edit it by hand.

  • .gitignore: excludes built *.pkg files and every location a credential could be put by mistake.

  • Coding-agent files, depending on --agent:

    --agentFiles
    claude-code.claude/skills/elizon-packages/SKILL.md, .claude/commands/elizon-validate.md, .claude/commands/elizon-build.md
    codexAGENTS.md, .codex/skills/elizon-packages/SKILL.md
    cursor.cursor/rules/elizon-packages.mdc, AGENTS.md
    genericAGENTS.md

    They teach the agent the validate loop, the rules the schema can't express, and when to ask you before running a command. Every command in them uses this project's pinned version. See Author with a coding agent.

init refuses to run in a directory that already contains elizon.yaml, so it never overwrites a Package. If a .gitignore already exists it's left alone, and init warns you to add the *.pkg and credential lines yourself.

--update

npx @elizon/cli init --update

Rewrites only the coding-agent files, for example after you move the project to a newer CLI. It never touches elizon.yaml, the component folders, .elizon/config.yaml or .gitignore. Without --agent it refreshes whichever agent's files the project already has. The refreshed files use the version in .elizon/config.yaml, not the version you ran.

Example

npx @elizon/cli init support-bot --starter=single-agent --agent=codex
Scaffolded an ELIZON Package in /home/you/support-bot
  starter:      Single agent
  coding agent: Codex
  CLI pinned:   0.5.0 (.elizon/config.yaml)

  + elizon.yaml
  + agents/support-assistant.yaml
  + knowledge/product-docs.yaml
  …

Next: describe what you want to your coding agent, then run `npx @elizon/cli validate`.