Overview
zombiectl install <template> is the first command in a zombie’s lifecycle. It writes a local directory containing two editable files — SKILL.md and TRIGGER.md — scaffolded from a bundled template. Nothing is uploaded, no API calls are made, and no authentication is required. You edit the files, then zombiectl up takes it from there.
Bundled templates
Two templates ship withzombiectl today. Each is a complete, deployable starting point.
| Template | What it does | Skills used |
|---|---|---|
lead-collector | Receives inbound email via a webhook, qualifies the sender, drafts a short reply. | agentmail |
slack-bug-fixer | Watches a Slack channel, identifies bug reports, opens a PR against the linked repo. | slack, github |
zombiectl install without an argument to see the current set in the error output.
File layout
The installed directory contains two files. Both are plain text; both are designed to be edited.SKILL.md
A markdown file with free-form agent instructions. Write it as if you were onboarding a smart colleague to the job: who they are, what events they will receive, what to do with each, what tone to use, what to avoid.
SKILL.md
TRIGGER.md
A markdown file with YAML frontmatter that configures how the zombie receives events, which skills it is allowed to invoke, what credentials it expects, and its budget.
TRIGGER.md
name field becomes the zombie’s display name. The trigger.source field identifies the upstream provider and determines the webhook signature scheme for first-class integrations (agentmail, slack, github, linear, jira, grafana, clerk). The credentials: list names the vault keys the zombie will read at event time — every entry must exist in the workspace vault before zombiectl up succeeds. The network.allow: list is an outbound hostname allowlist enforced by the credential firewall.
See Writing skills for the full TRIGGER.md reference, and Templates for the anatomy of a bundled template.
Flags and options
zombiectl install takes a single positional argument.
| Argument / flag | Required | Purpose |
|---|---|---|
<template> | Yes | Name of a bundled template. |
--json | No | Emit JSON instead of the human-readable greeting. |
0— template installed.2— unknown or missing template name.1— filesystem error (permission, disk full).
After install
You have two reasonable next moves:- Edit the files, then
zombiectl upto deploy. The bundled templates declare the vault keys they expect undercredentials:— the platform reads them from the workspace vault at event time. - Add credentials first via
zombiectl credential add, thenzombiectl up. Either order works — butzombiectl uprefuses to deploy until every key listed undercredentials:is present in the vault.