# project.mech

project.mech declares project identity, source roots, packages, target intent, and feature gates such as tuple experiments.

Last updated: 2026-09-09

Package: language | Status: stable

Tags: cpu, experiments, language, languageEdition, package, packages, project, project.mech, version, yeho

Add a manifest when the project needs more than the default entry-file convention or when a feature must be explicitly admitted.

```yh
project manifest beside start.yh
```


## A complete console project

Save the two files in a project folder, then check or run that folder with the compiler.

Verification: executed

```yh
Console.Log("Hello, Yeho")

```

Save this beside start.yh as project.mech:

```toml
manifestVersion = "2"
package = "api.example.language__project_manifest"
version = "0.1.0"
languageEdition = "yeho-core-2026.1"

[app]
kind = "headless"

```

Expected output:

```text
Hello, Yeho
```

Executed backend: cpu-oracle

Observed output:

```text
Hello, Yeho
```

Extract the example archive beside the yeho and dolphin checkouts. This example requires those source dependencies and a current developer compiler.

```sh
./yeho/build/dolphin-metal/yehoc ./api-examples/language--project-manifest/complete --backend cpu-oracle -o /tmp/yeho-example
/tmp/yeho-example
```


Normal projects omit backend so the candidate SDK selects Kyber.

Feature gates use experiments = ["feature-name"] and are deliberate compatibility boundaries.

Source: yeho/docs/language/project-mech.md; project resolution fixtures

AI training permission: https://demonhunterlabs.com/ai-use
