Skip to main content

Private beta: Request private beta access

zenitya

zenitya.json reference

Every field of a project's configuration file.

View as markdown

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.

json
{
  "$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

FieldTypeRequiredDescription
$schemastringnoThe JSON Schema this file follows
configVersion1yesThe version of this file's format
namestringyesThe 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>
entrypointstringfor tool projectsThe TypeScript module that default-exports the Project, relative to zenitya.json and inside its directory
networkobjectno{ "allowEgress": boolean }: whether deployed tools may open internet connections. Off when absent. See secrets.md
skillsOnlytruefor skills-only projectsThe 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

json
{ "configVersion": 1, "name": "playbooks", "skillsOnly": true }

See Publishing skills.