# phloem project

```
phloem project [OPTIONS] <COMMAND>
```



## phloem project list

This machine's projects

```
phloem project list [OPTIONS]
```



## phloem project sync

Back up the active project's changes to the org now

```
phloem project sync [OPTIONS]
```



## phloem project save

Save the active project as its next local version

```
phloem project save [OPTIONS]
```

- `--note <NOTE>`
- `--origin <LABEL>` — Saved by a provisioner (a tool that sets machines up), not a person — the tool may then update what it saved

## phloem project export

Write a saved version as a profile (`<name>-v<N>.project.phloem`) into DIR

```
phloem project export [OPTIONS] <DIR>
```

- `<DIR>`
- `--version <VERSION>` — The version to export (default: the latest saved)

## phloem project recover

Recover a dead or replaced computer's backed-up project onto this one, as a new project (lists its backups when no project is named)

```
phloem project recover [OPTIONS] --from <DEVICE> [PROJECT]
```

- `[PROJECT]` — Which of its projects: the name or the id `--from` alone lists
- `--from <DEVICE>` — The computer whose backup to recover: its name or its device id
- `--name <NAME>` — The new project's name (default: the backup's own)

## phloem project discard-pending

Throw away a restore or upgrade waiting for the restart (kept aside, never applied)

```
phloem project discard-pending [OPTIONS]
```



## phloem project restore

Put a saved version back as the working state (history stays; Phloem restarts to apply it)

```
phloem project restore [OPTIONS] <VERSION>
```

- `<VERSION>` — The version's number (`3` or `v3`); `0` is the project empty, as a new one is made
- `--dry-run` — Say what would change, change nothing
- `--discard` — Restore even though unsaved changes would be lost
- `--wait` — Wait until Phloem is back after the restart (up to --timeout)
- `--timeout <TIMEOUT>` — [default: 60s]

## phloem project current

The project this machine runs, and what it needs here

```
phloem project current [OPTIONS]
```

- `--fields` — Under each unsaved change, what moved field by field (before → after)

## phloem project verify

Check this machine runs the active project as it was given

```
phloem project verify [OPTIONS]
```



## phloem project create

Make a project (not active)

```
phloem project create [OPTIONS] <NAME>
```

- `<NAME>`
- `--origin <LABEL>` — Label it as a provisioner's (a tool that sets machines up) — surfaces then treat a switch into it as the tool's, not the person's
- `--key <KEY>` — Which of the provisioner's projects this is (the tool's own id for it) — its identity, never its name

## phloem project stamp

Give a provisioner's project made before keys its key (once)

```
phloem project stamp [OPTIONS] --key <KEY> <PROJECT>
```

- `<PROJECT>`
- `--key <KEY>`

## phloem project lease

Renew this machine's borrow (a tool's `switch --return-to --lease`)

```
phloem project lease [OPTIONS]
```

- `--lease <DURATION>` — The new lease length (default: the borrow's own)

## phloem project release

Let go of this machine's borrow: it returns as soon as nothing running holds it

```
phloem project release [OPTIONS]
```



## phloem project rename

Rename a project (by its name or id)

```
phloem project rename [OPTIONS] <PROJECT> <NAME>
```

- `<PROJECT>`
- `<NAME>`

## phloem project delete

Delete a project from this machine (by name or id; never the active one) — it moves to the trash

```
phloem project delete [OPTIONS] <PROJECT>
```

- `<PROJECT>`

## phloem project trash

The projects deleted on this machine, still in its trash

```
phloem project trash [OPTIONS]
```



## phloem project undelete

Bring a deleted project back from this machine's trash (by name, id or trash entry)

```
phloem project undelete [OPTIONS] <PROJECT>
```

- `<PROJECT>`

## phloem project switch

Make a project active (by name or id; `-` = the one before); Phloem restarts to apply it

```
phloem project switch [OPTIONS] <PROJECT>
```

- `<PROJECT>`
- `--dry-run` — Say what the switch would stop, start, change and wait on; change nothing
- `--return-to <PROJECT>` — BORROW the machine: it returns to this project (name or id) when the --lease lapses or is released
- `--lease <DURATION>` — How long the borrow holds unless renewed (`phloem project lease`)
- `--wait` — Wait until Phloem is back on the project after the restart (up to --timeout)
- `--timeout <TIMEOUT>` — How long --wait waits [default: 60s]

