Looking for the release model as a whole — how
lua push, lua deploy, and lua version fit together? Start with The release flow, end to end below.Overview
lua version manages agent versions — atomic snapshots of your agent’s complete deployed state (skills, webhooks, jobs, processors, MCP servers, persona, and model) that you can inspect, diff, and switch between instantly.
Why versions?
Alua push updates individual primitives (a skill, a webhook, a persona) one by one. An agent version pins the exact combination of everything at a moment in time: which version of every skill, what model, which persona text, which MCP servers and how they were configured.
Promoting a version swaps the whole agent state atomically — all of it changes at once, with no in-between state where some primitives are old and some are new. Rolling back is just promoting an older version.
lua version promote is the recommended rollback path. It is instant, atomic, and requires no re-uploading of files. See lua version promote below and the deprecation notice on lua source rollback.The release flow, end to end
Three commands, three distinct jobs:lua push <primitive>stages code. It mints a new immutable version of that primitive — a skill, webhook, job, processor, trigger, persona, voice, MCP config, or model change — but activates nothing. Nothing your users see changes yet.lua version createfreezes a release candidate. It snapshots the latest pushed version of every primitive into a single agent version.lua version promote <N>activates that agent version. Every primitive switches at once — no mixed-version window where, say, a new skill is live against an old persona. This push → create → promote sequence is the recommended release flow.
Execution guarantee: if a
promote (or deploy) reports success, that exact code serves the very next invocation of the agent. Allow up to roughly a minute for edge caches to catch up globally.Where lua deploy fits
lua deploy <primitive> (documented in full on the Skill Management page) is the older, single-primitive release command and remains fully supported:
- Once an agent has promoted at least one agent version,
lua deployperforms a scoped promote: the platform automatically creates and promotes a new agent version identical to the current active one, except for the primitive you just deployed. The deploy is live immediately, and your agent-version history stays consistent — no gap where a primitive changed outside the version timeline. These auto-created versions show up inlua version listwith adeploy …message so you can tell them apart from versions you created explicitly. - For agents that have never created or promoted an agent version,
lua deployactivates the primitive directly, the same way it always has.
lua version promote when you want to switch several primitives together atomically; use lua deploy for a fast, single-primitive fix.
The three version numbers
When you runlua version create --auto-push, the output shows three different counters. They track separate things:
These counters are independent. Pushing a single skill increments that skill’s primitive version and creates a new source backup, but does not create a new agent version. Only
lua version create creates a new agent version.
Statuses
Every agent version has one of four statuses:Commands
lua version create
Snapshots the agent’s current pushed state as a new staged version.
lua version list
Prints a table of agent versions with columns VERSION, STATUS, CREATED, BY, and MESSAGE. The active version is starred.
lua version status
Shows, per primitive, which version is pinned by the currently active agent version versus which version is sitting locally or already pushed to the server. Anything pushed but not yet part of an active (or promoted) agent version is flagged so you can see at a glance what’s waiting to go live.
lua version create would capture, or after a release to confirm nothing was left behind.
lua version show
Shows the full snapshot for a version: per-type primitive counts, model, persona version, creator email, message, and recorded commit hash (if any).
Accepts either 2 or v2 as the version argument.
lua version show reports what is on the server for the agent at the time of the snapshot — not what is in your local project directory. A skill that exists server-side but has been removed from your local workspace is still part of the agent and will appear in the snapshot.lua version diff
Shows what changed between two versions: added, removed, and changed primitives by name and version. Persona is compared by content, so re-pushing identical persona text shows (unchanged). MCP configuration changes name the specific fields that changed. Model changes are included.
Accepts
2 or v2 for both arguments.
lua version promote
Instantly activates a version. The previously active version becomes superseded. Promoting the already-active version is a graceful no-op.
superseded, so you can always promote back.
lua version delete
Soft-deletes a version. Deleted versions remain listed and inspectable with lua version show, but can no longer be promoted.
- You cannot delete the active version. Promote a different version first.
- You cannot delete the only remaining version.
Typical workflows
Release
Rollback
Audit
Git integration
When you have runlua git connect, every lua version create automatically commits your project and tags the commit lua/v<N>, where N is the new version number. The commit hash is recorded in the version snapshot and visible in lua version show.
See the Git Command page for setup instructions, auto-push configuration, and troubleshooting.
Related
- Skill Management —
lua pushand the legacylua deploycommand - Git Command — auto-commit and
lua/v<N>tagging - Source Command — source-file history and workspace restore
- Chat Command —
lua chat --agent-version Nto preview a version

