# foliage.generate

> Talos next · Since next

Write or edit a .foliage.json from recipe or template and cook it into .argus/flora/.

Answers per plant triangles, bounds, wind, state hash, and a changeId for revert. Writes nothing unless it cooks.

| | |
|---|---|
| Title | Make a plant |
| Mode | `disk` |
| Token cost | about 219 tokens (listed only when its toolset is enabled) |
| Toolset | `foliage` |

## Arguments

| Argument | Type | Required | Default | Allowed values | Description |
|---|---|---|---|---|---|
| `dryRun` | `boolean` | no |  |  | Cook and answer, write nothing |
| `path` | `string` | yes |  |  | A plant's `.foliage.json` file, such as `foliage/oak.foliage.json`. |
| `recipe` | `object` | no |  |  | A whole recipe: {version:1, species, seed, params, variants, ages, materials, outputs} |
| `saveTemplate` | `object` | no |  |  | {id, title, summary, locks?, override?}: also a project template, one change |
| `seed` | `integer` | no |  |  |  |
| `set` | `object` | no |  |  | {param: number \| [min, max] \| null, variants?, ages?} |
| `template` | `string` | no |  |  | A `<species>.<look>` id. |

## Example

An MCP `tools/call` with the required arguments (placeholders in angle brackets).

```json
{
  "name": "foliage.generate",
  "arguments": {
    "path": "<path>"
  }
}
```
