zectre.yaml
Deployment and project configuration for Zectre (zectre.yaml).
Zectre reads zectre.yaml in the project root for deploy settings (and for Tish build settings when package.json does not define them). Keep this file at the repo root so it stays versioned even if .zectre/ is gitignored for local link state. The CLI binary is zectre; only zectre dev / zectre build invoke the tish compiler for the native Tish runtime.
Example (native Tish)
name: my-app
deploy:
replicas: 1
strategy: rolling
process_type: tish
env:
LOG_LEVEL: info
resources:
cpu: 100m
memory: 128Mi
networking:
port: 3000
protocol: http
health_check:
path: /health
interval: 10s
timeout: 5sExample (Docker)
name: my-container-app
deploy:
process_type: docker
image: ghcr.io/org/app:latest
replicas: 1
networking:
port: 8080
protocol: httpTop-level keys
deploy
resources
networking
Build config: package.json vs zectre.yaml
Precedence: If package.json includes a tish section (source, features), that is used for local zectre build / zectre dev and platform builds. Otherwise Zectre uses the build block in zectre.yaml.
package.json example:
{
"name": "my-app",
"version": "1.0.0",
"tish": {
"source": "./src/main.tish",
"features": ["http", "process"]
}
}YAML build when there is no tish key in package.json:
build:
source: ./src/main.tish
features:
- http
- fsFeature names align with Tish capabilities (http, fs, process, regex, polars, etc.). Extra features may be inferred from tish-* dependencies in package.json.
Project layout
my-app/
├── package.json # optional: name, version, tish.source, tish.features
├── zectre.yaml # deploy (+ optional build)
├── README.md
└── src/
└── main.tish