✕Cross Docs

Clients and client reports

Clients, what they owe you, dated updates, report editions and private portal links.

liveReferenceLast verified 21 Oct 2026
View as Markdown

Clients, what they owe you, dated updates, report editions and private portal links. On your own computer, pmo help <command> prints the same text, for example pmo help client list.

pmo client list

Every client: engagements, projects, modules, open activities, worst health.

pmo client list [<word>] [--q <text>] [--all] [--json]

Example

pmo client list --json

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

pmo client show

One client: its contacts, every engagement with its counts, and the totals.

pmo client show <id> [--all] [--json]

Example

pmo client show cross-systems

pmo client create

Register a client — who an engagement is for.

pmo client create <id> --name "<name>" --kind internal|external|pursuit [--industry "<what they do>"] [--primary-contact "<who>"] [--notes "<anything else>"] --as person:<id>

pmo client set

Correct a client's name, kind, industry, contact or notes.

pmo client set <id> <field=value>... --as person:<id>

pmo client contact add

Record one of a client's people — who its reports are addressed to.

pmo client contact add <client> --name "<name>" --role "<role>" [--email <addr>] [--github <handle>] --as person:<id>

Example

pmo client contact add cross-energy --name "you Farias" --role "Chairman and chief executive" \
  --github you --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 client contact remove

Take one of a client's people off its contacts.

pmo client contact remove <client> --name "<name>" --as person:<id>

Example

pmo client contact remove cross-energy --name "you Farias" --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 client partner add

Record somebody working on a client's behalf.

pmo client partner add <client> --name "<name>" --role "<role>" [--email <addr>] [--github <handle>] --as person:<id>

Example

pmo client partner add cross-systems --name "FanHero" --role "Network partner on Reef" --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 client partner remove

Take somebody off a client's partners.

pmo client partner remove <client> --name "<name>" --as person:<id>

Example

pmo client partner remove cross-systems --name "FanHero" --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 request remove

Take a request recorded by mistake off the record; close one the client answered.

pmo request remove <id> --eng <slug>

Example

pmo request remove pend-024 --eng example-client --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 request followup remove

Take one follow-up date off a request.

pmo request followup remove <id> --date <YYYY-MM-DD> --eng <slug>

Example

pmo request followup remove pend-007 --eng example-client --date 2026-09-29 --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 request followup set

Correct a follow-up: the day it was sent, or what it chased.

pmo request followup set <id> --date <YYYY-MM-DD> [--on <YYYY-MM-DD>] [--note "<what was chased>"] --eng <slug>

Example

pmo request followup set pend-007 --eng example-client --date 2026-09-29 --on 2026-09-30 --note "Asked for the written sign-off." --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 request list

What the engagement is waiting on the client for — open requests, or --all.

pmo request list --eng <slug> [--module <id>] [--all] [--json]

Example

pmo request list --eng example-client --module parser

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

pmo request add

Record something asked of the client.

pmo request add --eng <slug> --ask "<what was asked>" [--module <id>] [--requested <date>] [--to "<who>"] [--blocker]

Example

pmo request add --eng example-client --module appraisal-import-module \
  --ask "A sample Lido export to build and test against." --requested 2026-09-28 --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 request set

Correct a request: its words, its date, who it went to, its module, its number, how and by which update it was resolved, or reopen it.

pmo request set <id> ask=… | requested=<date> | to=… | module=<id> | ref=… | resolution=… | resolved_by=<upd-id> | closed= --eng <slug>

Example

pmo request set pend-009 --eng example-client resolution="the client confirmed the dataset on a call." --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 request followup

Record that the client was chased again.

pmo request followup <id> --eng <slug> [--date <date>]

Example

pmo request followup pend-007 --eng example-client --date 2026-09-29 --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 request close

Close a request — the client answered, or it no longer applies — and say how.

pmo request close <id> --eng <slug> [--date <date>] [--note "<how it was resolved>"] [--by <upd-id>]

Example

pmo request close pend-001 --eng example-client --date 2026-10-01 --note "example granted access to the sandbox." --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.

Make a private link a client opens without an account — or reuse the scope's live one.

pmo portal link create (--client <id> | <slug> [--project <id> | --module <id>]) --label "<for whom>" [--expires <YYYY-MM-DD>] [--reports tracker,scope] [--new] [--note "<why>"] --as person:<id>

Example

pmo portal link create --client example --label "Jane Smith" --as person:you
pmo portal link create --client example --label "John Doe" --new --as person:you
pmo portal link create example-client --module data-lakehouse-sandbox --label "Jane Smith" --as person:you
# one link per person, labelled with their name: each revokes on its own and every open is logged against it
# a second create for the same scope returns the same link unless --new

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.

An engagement's or a client's links, with when each was last opened.

pmo portal link list (<slug> | --client <id>) [--all] [--json]

Example

pmo portal link list example-client
pmo portal link list --client example --all

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

One link, its history and its last opens.

pmo portal link show <link-id> [--hits <n>] [--json]

Example

pmo portal link show pl-3k9x2m7q --hits 50

Print a link's URL again — logged.

pmo portal link copy <link-id> [--note "<why>"] --as person:<id>

Example

pmo portal link copy pl-3k9x2m7q --as person:you   # the same URL, 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.

Change a link's label, expiry or reports.

pmo portal link set <link-id> label="<for whom>" | expires=<YYYY-MM-DD>|none | reports=tracker,scope [--note "<why>"] --as person:<id>

Example

pmo portal link set pl-3k9x2m7q expires=2027-03-31 --as person:you
pmo portal link set pl-3k9x2m7q reports=tracker --as person:you   # scope analysis off: an Owner's

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.

Stop a link working on its next request — with --children, every link below it too.

pmo portal link revoke <link-id> [--children] [--note "<why>"] --as person:<id>

Example

pmo portal link revoke pl-3k9x2m7q --children --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 portal hits

The portal log, newest first: which link opened which page, and when.

pmo portal hits (<slug> | --client <id>) [--link <link-id>] [--since <YYYY-MM-DD>] [--limit <n>] [--json]

Example

pmo portal hits --client example --since 2026-10-01

pmo portal people add

Let a client person open a link — they sign in with their email and a code.

pmo portal people add <link-id> --name "<their name>" --email <address> [--note "<why>"] --as person:<id>

pmo portal people remove

Take a client person off a link; off their last link, they are removed and signed out.

pmo portal people remove <link-id> <person-id> [--note "<why>"] --as person:<id>

pmo portal people list

The client people who may open a link, and when each last signed in.

pmo portal people list <link-id> [--json]

pmo cycle list

The editions of an engagement's client report, newest first.

pmo cycle list --eng <slug> [--json]

Example

pmo cycle list --eng example-client

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

pmo cycle add

Record the date a client report is as of, who it is for and how it is marked.

pmo cycle add --eng <slug> --as-of <date> [--audience customer|internal] [--classification "<label>"]

Example

pmo cycle add --eng example-client --as-of 2026-09-28 --classification "Confidential" --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 cycle set

Correct an edition: its date, who it is for, or how it is marked.

pmo cycle set <id> as_of=<date> | audience=customer|internal | classification=… --eng <slug>

Example

pmo cycle set 2026-09-28 --eng example-client audience=internal --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 cycle remove

Take away an edition entered by mistake.

pmo cycle remove <id> --eng <slug> [--note "<why>"]

Example

pmo cycle remove 2026-09-21 --eng example-client --note "entered twice" --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 update add

Record what happened on a project — when, who said it, which modules it touches, and what it changes.

pmo update add --eng <slug> [--project <id>] [--module <id>…] --on <date> [--at HH:MM] --from client|team --kind milestone|decision|progress|risk|note --text "…" --shown-to client|team [--person "…"] [--source call|email|meeting|document|message|chat|text] [--source-ref "…"] [--closes <request>…] [--stage <stage>] [--where "…"] [--concerns "…"] [--left "…"] [--next "…" --next-owner client|team] [--progress <0-100>]

Example

pmo update add --eng example-client --project data-lakehouse --module data-lakehouse-sandbox \
  --module data-quality-deterministic --on 2026-10-01 --from client --person "the client" \
  --source call --kind milestone --shown-to client --closes pend-009 --closes pend-012 --stage 14 \
  --text "the client confirmed on the call that the sandbox data and the rules are right." --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 update list

The updates on an engagement, a project or a module, newest first.

pmo update list --eng <slug> [--project <id>] [--module <id>]… [--all] [--json]

Example

pmo update list --eng example-client --module data-lakehouse-sandbox

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

pmo update show

One update in full, its changes numbered as --drop counts them.

pmo update show <upd> --eng <slug> [--json]

Example

pmo update show upd-001 --eng example-client

pmo update set

Correct an update: its words, its day and time, who it came from, how it was heard, its kind, or who may read it.

pmo update set <upd> text=… | on=<date> | at=HH:MM | from=client|team | person=… | source=… | source_ref=… | kind=… | shown_to=client|team --eng <slug>

Example

pmo update set upd-001 --eng example-client text="the client confirmed the sandbox data on the call." at=11:00 --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 update confirm

Confirm a proposed update and apply its changes.

pmo update confirm <upd> --eng <slug> [--drop <n>…] --as person:<id>

Example

pmo update confirm upd-001 --eng example-client --drop 2 --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 update withdraw

Take an update out of the client's view, keeping it on the record.

pmo update withdraw <upd> --eng <slug> --reason "…"

Example

pmo update withdraw upd-001 --eng example-client --reason "Recorded on the wrong module." --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.

On this page