akili init
Initialize a new data product in the current directory by creating an .akili/ directory with 6 scaffold YAML manifest files. This is the fastest way to start building a data product.
Synopsis
Section titled “Synopsis”akili init [--name <product-name>]Description
Section titled “Description”akili init creates the standard Akili data product directory structure in the current working directory. It generates 6 manifest templates that define every aspect of a data product:
| File | Purpose |
|---|---|
.akili/product.yaml | Product identity, metadata, classification, domain |
.akili/inputs.yaml | Input declarations (upstream products or connector resources) |
.akili/output.yaml | Output schema contract (columns, types, roles) |
.akili/quality.yaml | Quality checks and SLA definitions |
.akili/serving.yaml | Serving intent and materialization config |
.akili/compute.yaml | Runtime, engine, schedule, resources |
If --name is not provided, the product name defaults to the current directory name.
| Flag | Short | Default | Description |
|---|---|---|---|
--name | current directory name | Product name to use in the manifest |
Examples
Section titled “Examples”# Initialize in the current directory (uses directory name)mkdir daily-orders && cd daily-ordersakili init# Initialized data product 'daily-orders' with 6 manifest files# .akili/product.yaml# .akili/inputs.yaml# .akili/output.yaml# .akili/quality.yaml# .akili/serving.yaml# .akili/compute.yaml
# Initialize with a custom nameakili init --name customer-segmentationGenerated Manifests
Section titled “Generated Manifests”product.yaml
Section titled “product.yaml”apiVersion: akili/v1kind: DataProductmetadata: name: daily-orders domain: sales version: 1.0.0 owner: data-engineering description: "" classification: internal # Options: public, internal, confidential, restricted tags: []inputs.yaml
Section titled “inputs.yaml”apiVersion: akili/v1kind: Inputsinputs: []# - name: example_source# type: connector# connection: my_connection# ingestion:# strategy: incremental# cursor_field: updated_atoutput.yaml
Section titled “output.yaml”apiVersion: akili/v1kind: Outputcolumns: []# - name: id# type: STRING# role: identity# - name: amount# type: DECIMAL# role: metricquality.yaml
Section titled “quality.yaml”apiVersion: akili/v1kind: Qualitychecks: []# - name: not_null_check# type: not_null# column: idsla: freshness: 24h completeness: 0.99serving.yaml
Section titled “serving.yaml”apiVersion: akili/v1kind: Servingintent: analytical# Options: analytical, operational, streamingmaterialization: enabled: falsecompute.yaml
Section titled “compute.yaml”apiVersion: akili/v1kind: Computeengine: sqlschedule: "@daily"resources: cpu: "1" memory: 2Gi# entrypoint: logic/transform.sqlClassification and access control are declared in product.yaml under metadata.classification. There is no separate governance file.
Behavior
Section titled “Behavior”- If
.akili/already exists, the command prints a warning and exits without modifying any files. This prevents accidental overwrites of existing manifest work. - The command is idempotent in the sense that running it twice has no effect on the second run.
- No network connection is required.
Workflow
Section titled “Workflow”After initializing, the typical workflow is:
- Edit the manifest files in
.akili/to define your data product - Validate the manifests:
akili validate .akili/ - Create the product on the platform:
akili product create --name daily-orders --namespace sales - Deploy:
akili product deploy daily-orders
Related
Section titled “Related”akili scaffold— creates a new directory with manifests (vs.initwhich works in the current directory)akili validate— validates manifest filesakili product create— registers a product on the platform