# Projects

> Projects, their charters and the architecture of what they build.

Source: https://docs.crossbot.io/pmo/cli/reference/projects
Product: pmo · Kind: reference · Status: live · Last verified: 2026-10-21

{/* Generated by scripts/gen-pmo-cli-reference.mjs from `pmo help`. Do not edit by hand. */}
Projects, their charters and the architecture of what they build. On your own computer, `pmo help <command>` prints the same text, for example `pmo help project create`.

## `pmo project create`

Create a project on an engagement, with its charter and the template's architecture.

```sh
pmo project create --eng <slug> --name "<name>" --what "<one sentence>" --purpose "<why it exists>" --goal "<goal>" --goal "<goal>" [--goal …, up to 5] --owner <person> [--ref <n>] [--code <code>] [--no-architecture] --as person:<id>
```

**Example**

```sh
pmo project create --eng accelerator --name "Factory parity" \
  --what "A place every record can be read." \
  --purpose "So nobody rebuilds the same answer twice." \
  --goal "One clear record." --goal "Answers in a day." --owner you --as person:you
# handle <client>-<project>: cross-factory; --code <code> picks the project part

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project list`

Every project, or one engagement's, with their modules counted.

```sh
pmo project list [<word>] [--eng <slug>] [--client <id>] [--health <h>] [--q <text>] [--json]
```

**Example**

```sh
pmo project list --client example

`pmo help filters` prints these filters in full, and the bare-word search.
```

## `pmo project show`

One project's modules and their activities by track and status.

```sh
pmo project show <id> [--eng <slug>] [--json]
```

**Example**

```sh
pmo project show vault
```

## `pmo project remove`

Take a project off an engagement — only once it holds no live module (--fold keeps its modules where they are).

```sh
pmo project remove <id> [--eng <slug>] [--fold] [--note "<why>"] --as person:<id>
```

**Example**

```sh
pmo project remove cross-platform --eng cross-platform --as person:you
# only once the record is closed with a superseded_by, or the project
# holds no live module — otherwise it is refused, naming the modules.

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project set`

Rename a project, number it, give it a code, file it under a group or phase, describe it, or write its charter.

```sh
pmo project set <id> name="<plain name>" | ref=<number> | code=<code> | use_case=… | group=<id> | phase=<id> | description=… | purpose=… | owner=<person> | sponsor=… | start_date=<YYYY-MM-DD> | target_date=<YYYY-MM-DD> [--eng <slug>]
```

**Example**

```sh
pmo project set cross-pmo --eng accelerator name="PMO" --as person:you
pmo project set vault --eng accelerator purpose="So retrieval answers come from one place." owner=you target_date=2026-12-31 --as person:you
pmo project set vault --eng accelerator client_visible=false --as agent:rag   # Internal only: the project and everything under it

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project goal add`

Add one of a project's two to five goals.

```sh
pmo project goal add <project> "<goal>" [--at <n>] --eng <slug>
```

**Example**

```sh
pmo project goal add vault "Answers in a day." --eng accelerator --as person:you

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project goal set`

Rewrite goal number &lt;n&gt; of a project.

```sh
pmo project goal set <project> <n> "<goal>" --eng <slug>
```

**Example**

```sh
pmo project goal set vault 2 "Answers within a day." --eng accelerator --as person:you

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project goal remove`

Take goal number &lt;n&gt; off a project, keeping at least two.

```sh
pmo project goal remove <project> <n> --eng <slug>
```

**Example**

```sh
pmo project goal remove vault 3 --eng accelerator --as person:you

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project measure add`

Add how a project's goals are known to be met.

```sh
pmo project measure add <project> "<measure>" [--at <n>] --eng <slug>
```

**Example**

```sh
pmo project measure add vault "A new question is answered the same day." --eng accelerator --as person:you

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project measure set`

Rewrite success measure number &lt;n&gt; of a project.

```sh
pmo project measure set <project> <n> "<measure>" --eng <slug>
```

**Example**

```sh
pmo project measure set vault 1 "Answered within a day." --eng accelerator --as person:you

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project measure remove`

Take success measure number &lt;n&gt; off a project.

```sh
pmo project measure remove <project> <n> --eng <slug>
```

**Example**

```sh
pmo project measure remove vault 1 --eng accelerator --as person:you

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project scope add`

Say what is in a project's scope, or out of it.

```sh
pmo project scope add <project> in|out "<item>" [--at <n>] --eng <slug>
```

**Example**

```sh
pmo project scope add vault in "The retrieval service" --eng accelerator --as person:you
pmo project scope add vault out "Billing" --eng accelerator --as person:you

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project scope set`

Rewrite item &lt;n&gt; in or out of a project's scope.

```sh
pmo project scope set <project> in|out <n> "<item>" --eng <slug>
```

**Example**

```sh
pmo project scope set vault out 1 "Invoicing" --eng accelerator --as person:you

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project scope remove`

Take item &lt;n&gt; off a project's scope list.

```sh
pmo project scope remove <project> in|out <n> --eng <slug>
```

**Example**

```sh
pmo project scope remove vault out 1 --eng accelerator --as person:you

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project link add`

Record where a project's code or documentation lives.

```sh
pmo project link add <project> repository|docs <https-url> [label="…"] --eng <slug>
```

**Example**

```sh
pmo project link add vault repository https://github.com/example-org/vault label="The code" --eng accelerator --as agent:rag

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project link set`

Change link number &lt;n&gt; of a project.

```sh
pmo project link set <project> <n> kind=repository|docs | url=<https-url> | label="…" --eng <slug>
```

**Example**

```sh
pmo project link set vault 1 label="Vault code" --eng accelerator --as agent:rag

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project link remove`

Take link number &lt;n&gt; off a project.

```sh
pmo project link remove <project> <n> --eng <slug>
```

**Example**

```sh
pmo project link remove vault 1 --eng accelerator --as person:you

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project entity add`

Add a level to the entity chain of the product a project builds.

```sh
pmo project entity add <project> id=<id> name="<Name>" [description="…"] [belongs_to=<level>] [how_many=one|many] [at=<n>] --eng <slug>
```

**Example**

```sh
pmo project entity add genesis id=workspace name="Workspace" \
  description="A team's space inside an organization." belongs_to=organization how_many=many \
  --eng accelerator --as agent:rag

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project entity set`

Rename, describe, re-parent or move one level — its id never changes.

```sh
pmo project entity set <project> <level> name=… | description=… | belongs_to=… | how_many=one|many | at=<n> --eng <slug>
```

**Example**

```sh
pmo project entity set genesis organization name="Organization" description="A company or client using the platform." how_many=many --eng accelerator --as agent:rag
pmo project entity set genesis member belongs_to=organization --eng accelerator --as person:you   # re-parent it to an earlier level

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project entity remove`

Take a level off the chain, while no other belongs to it.

```sh
pmo project entity remove <project> <level> --eng <slug>
```

**Example**

```sh
pmo project entity remove genesis workspace --eng accelerator --as person:you
# refused while another level belongs to it, naming that level

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project role add`

Add a role — a column of the product's permission matrix.

```sh
pmo project role add <project> id=<id> name="<Name>" [summary="…"] [at=<n>] --eng <slug>
```

**Example**

```sh
pmo project role add genesis id=viewer name="Viewer" summary="Reads, and writes nothing at all." --eng accelerator --as agent:rag

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project role set`

Rename, describe or move one role — its id never changes.

```sh
pmo project role set <project> <role> name=… | summary=… | at=<n> --eng <slug>
```

**Example**

```sh
pmo project role set genesis viewer name="Viewer" summary="Reads everything it is granted." --eng accelerator --as agent:rag

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project role remove`

Take a role off, with its permissions.

```sh
pmo project role remove <project> <role> --eng <slug>
```

**Example**

```sh
pmo project role remove genesis viewer --eng accelerator --as person:you   # takes its permissions with it

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project action add`

Add an action — a row of the product's permission matrix, the "Can…" words.

```sh
pmo project action add <project> id=<id> name="<Can… words>" [at=<n>] --eng <slug>
```

**Example**

```sh
pmo project action add genesis id=read name="Read everything in a workspace they reach" --eng accelerator --as agent:rag

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project action set`

Reword or move one action — its id never changes.

```sh
pmo project action set <project> <action> name=… | at=<n> --eng <slug>
```

**Example**

```sh
pmo project action set genesis read name="Read everything they reach" --eng accelerator --as agent:rag

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project action remove`

Take an action off, with its permissions.

```sh
pmo project action remove <project> <action> --eng <slug>
```

**Example**

```sh
pmo project action remove genesis read --eng accelerator --as person:you   # takes its permissions with it

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project permission set`

Set one cell of the matrix: a role may do an action, on its own work only, or not at all.

```sh
pmo project permission set <project> <role> <action> allowed|own_only|not_allowed --eng <slug>
```

**Example**

```sh
pmo project permission set genesis viewer read allowed --eng accelerator --as agent:rag
pmo project permission set genesis member remove-work own_only --eng accelerator --as agent:rag
pmo project permission set genesis member remove-work not_allowed --eng accelerator --as agent:rag   # deletes the cell

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project rule add`

Add an access rule the matrix cannot say.

```sh
pmo project rule add <project> "<rule>" [--at <n>] --eng <slug>
```

**Example**

```sh
pmo project rule add genesis "An Owner reaches every workspace with no grant." --eng accelerator --as agent:rag

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project rule set`

Rewrite access rule number &lt;n&gt;.

```sh
pmo project rule set <project> <n> "<rule>" --eng <slug>
```

**Example**

```sh
pmo project rule set genesis 2 "An Owner reaches every workspace, with no grant." --eng accelerator --as agent:rag

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project rule remove`

Take access rule number &lt;n&gt; off.

```sh
pmo project rule remove <project> <n> --eng <slug>
```

**Example**

```sh
pmo project rule remove genesis 2 --eng accelerator --as person:you

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project architecture copy`

Copy the template's architecture, or another project's, over a project's — a Manager.

```sh
pmo project architecture copy <project> --eng <slug> [--from <eng>/<project>] [--replace] --as person:<id>
```

**Example**

```sh
pmo project architecture copy vault --eng accelerator --as person:you
pmo project architecture copy vault --eng accelerator --from accelerator/genesis --replace --as person:you

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project template show`

The project whose architecture every new project copies, and what it holds.

```sh
pmo project template show [--json]
```

**Example**

```sh
pmo project template show
pmo project template show --json
```

## `pmo project template set`

Point the template every new project copies — an Owner.

```sh
pmo project template set <eng>/<project>|none --as person:<id>
```

**Example**

```sh
pmo project template set accelerator/genesis --as person:you
pmo project template set none --as person:you   # new projects start with no architecture

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project plan`

Say whether a project was in the agreed plan or taken on later.

```sh
pmo project plan <id> planned|later|unreviewed [--all-below] [--eng <slug>] [--note "<why>"]
```

**Example**

```sh
pmo project plan example-lakehouse planned --all-below --eng example-client --note "in the signed statement of work" --as person:you
pmo project plan example-import later --eng example-client --as agent:rag   # it was never planned
# states: planned · later (it was never planned) · unreviewed (clears the mark)
# --all-below writes the same mark on every live module, feature and task under it

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project restrict`

Let only the Owners and a list of people see one project — you are put on the list.

```sh
pmo project restrict <id> --eng <slug> --as person:<id>
```

**Example**

```sh
pmo project restrict acquisition --eng cross-energy --as person:you
# only the Owners and the people on its list can see it now, and whoever
# restricts it is on the list. Everybody else is told nothing about it.

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project unrestrict`

Open a restricted project to everybody on its engagement again.

```sh
pmo project unrestrict <id> --eng <slug> --as person:<id>
```

**Example**

```sh
pmo project unrestrict acquisition --eng cross-energy --as person:you   # open to the engagement again

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project access add`

Put a person or a group on a restricted project's list.

```sh
pmo project access add <person|group:id> <project> --eng <slug> --as person:<id>
```

**Example**

```sh
pmo project access add you acquisition --eng cross-energy --as person:you
pmo project access add group:leadership acquisition --eng cross-energy --as person:you
# the list only narrows: they see it only where they already reach the engagement

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project access remove`

Take a person or a group off a restricted project's list.

```sh
pmo project access remove <person|group:id> <project> --eng <slug> --as person:<id>
```

**Example**

```sh
pmo project access remove you acquisition --eng cross-energy --as person:you
# the last person on a restricted list cannot be taken off it — add somebody first

A write: it needs an identity (--as, or PMO_ACTOR) and PMO_WRITES=1.
`pmo whoami --grants` prints what this actor may do above the activity.
```

## `pmo project access show`

Whether a project is restricted, and who is on its list.

```sh
pmo project access show <project> --eng <slug> [--json]
```

**Example**

```sh
pmo project access show acquisition --eng cross-energy
pmo project access show acquisition --eng cross-energy --json
```
