zenitya.json reference
Every field of a project's configuration file.
Every project has a zenitya.json at its root. Commands find the nearest one
from the current directory up; --config-file <path> or ZENITYA_CONFIG_FILE
picks another.
{
"$schema": "https://zenitya.dev/schemas/project-v1.json",
"configVersion": 1,
"name": "orders",
"entrypoint": "src/index.ts",
"network": { "allowEgress": true }
}The $schema line lets editors complete and check the file. The published
schema is generated from the same rules the CLI enforces.
Fields
| Field | Type | Required | Description |
|---|---|---|---|
$schema | string | no | The JSON Schema this file follows |
configVersion | 1 | yes | The version of this file's format |
name | string | yes | The project's slug, unique in the organization: lower-case letters, digits and hyphens, at most 63 characters, starting and ending with a letter or digit. Tools are named <name>.<tool> |
entrypoint | string | for tool projects | The TypeScript module that default-exports the Project, relative to zenitya.json and inside its directory |
network | object | no | { "allowEgress": boolean }: whether deployed tools may open internet connections. Off when absent. See secrets.md |
skillsOnly | true | for skills-only projects | The project publishes only skills/ and has no code. Replaces entrypoint and network |
Unknown fields are rejected, so a typo fails loudly instead of being ignored.
The first deploy of a name creates the project. Renaming it deploys a
different project, and agents and groups refer to tools by the project name,
so treat it as stable.
Skills-only projects
{ "configVersion": 1, "name": "playbooks", "skillsOnly": true }See Publishing skills.
zenitya