| title | Key concepts |
|---|---|
| description | The four nouns, the credential firewall, and how credits flow. |
UseZombie has four primary objects. Everything else is infrastructure.
Your top-level billing and identity boundary. Created automatically on first Clerk sign-in. Carries the **credit balance** ($10 seeded on signup) and the default Stripe customer. A container for zombies and credentials. One tenant can have many workspaces (team, project, environment). Credits are **not** fragmented per workspace — all workspaces debit the same tenant wallet. A persistent, always-on agent process. One zombie has one `SKILL.md` + `TRIGGER.md`, one trigger, a set of skills, and a set of credentials (secrets it uses but never sees). Lives inside a workspace. A named tool a zombie's agent can invoke. Skills are declared in `TRIGGER.md` as bare tool names; the runtime injects the credential and executes the call outside the sandbox when the agent invokes one. Examples: `kubectl`, `docker`, `github`, `slack`. Constraint policy (which verbs the agent may use, what it must never do) lives as prose inside the zombie's `SKILL.md` — not as YAML allowlists or per-skill sub-directories.Tenant (wallet: $10.00)
├── Workspace: "home"
│ ├── Zombie: homelab-diagnostic
│ │ └── Tools: kubectl, docker, ssh (read-only policy in SKILL.md)
│ └── Zombie: homebox-audit
│ └── Tools: docker, kubectl, tls-probe (enumerate-only policy in SKILL.md)
└── Workspace: "work-sandbox"
└── Zombie: pr-reviewer
└── Tools: github, slack (comment-only policy in SKILL.md)
Every run debits the same tenant balance, regardless of which workspace the zombie lives in. This is the single-wallet, multi-workspace model introduced with v2 — there are no per-workspace credit pools and no workspace-scoped top-ups.
New tenants start with $10 (1000¢) seeded at signup. There are no tokens to enter, no gates to clear — the balance lands the moment Clerk completes your first sign-in.
- Debits happen on completed runs only. A zombie run that fails mid-execution, hits a budget ceiling, or is killed before producing output does not debit the tenant balance.
- Top-ups are tenant-scoped. Adding credit in one workspace's billing page is a misleading frame; all credit is on the tenant. The billing UI at app.usezombie.com/billing lives at the tenant level.
- Scale plan is usage-based. Once on Scale, completed-run billing switches from flat cost to metered compute + token consumption. The "completed run only" rule still applies.
See the Billing and cost control page for the full breakdown.
A persistent, always-on agent process. A zombie has a config (YAML + markdown), a trigger (how it receives events), a set of skills (what tools it can use), and a set of credentials (secrets it needs — but never sees). Once started, a zombie runs continuously, restarts on crash, and waits for events on its inbox queue. A zombie is defined by two files in a directory: `SKILL.md` (agent instructions, natural language) and `TRIGGER.md` (machine-readable config, YAML frontmatter + optional human description). The CLI uploads both files on `zombiectl up`; the server parses `TRIGGER.md` and stores the `SKILL.md` body as the agent's system prompt.```markdown TRIGGER.md
---
name: homelab-diagnostic
trigger:
type: webhook
source: custom
event: message.received
skills:
- kubectl
- docker
credentials:
- kube_homelab
budget:
daily_dollars: 5.0
monthly_dollars: 29.0
network:
allow:
- k8s.home.tailnet
---
This zombie investigates homelab incidents, read-only.
```
```markdown SKILL.md
You are a homelab diagnostic agent...
```
See [Authoring skills](/zombies/skills) for the full `TRIGGER.md` reference.
Tool **policy** — which verbs the agent may use, which resources it must never touch —
lives as natural-language prose inside the zombie's `SKILL.md` (the system prompt the
agent reads). This is deliberate: YAML allowlists and per-skill sub-directories are
premature abstraction until a second zombie reuses the same policy. The prose is the
contract the agent reasons against today, and the contract a structural enforcer will
gate against tomorrow.
For self-hosted deployments, the vault lives on the worker inside your network. The
UseZombie control plane never sees the raw secret.