Documents and Ploybooks

Workspace documents

CommandWhat it does
ploy documents list [--json]List up to 50 document summaries.
ploy documents get (--id <id> | --path <path>) [--json]Print Markdown content, or the complete response envelope as JSON.
ploy documents set <path> [--title <title>] [--json]Read Markdown from stdin and create or update the exact path.
Work with documents
ploy documents list
ploy documents get --path /briefs/launch.md
ploy documents get --id <document-id> --json
ploy documents set /briefs/launch.md --title "Launch brief" < launch.md

Document paths start with /, contain no blank segments, and end in a segment of at most 200 characters. Titles are non-blank and at most 200 characters. Content is limited to 1,000,000 characters.

Document object
{
  "id": "<document-id>",
  "title": "Launch brief",
  "path": "/briefs/launch.md",
  "content": "# Launch brief\n",
  "tags": [],
  "createdBy": "<user-id>",
  "createdAt": "<ISO-8601 timestamp>",
  "updatedAt": "<ISO-8601 timestamp>"
}

List responses omit content and include limit and hasMore. Set responses contain document and operation: "created" | "updated". Document commands do not support --dry-run.


Read Ploybooks

Ploybook commands require an effective workspace and workspace membership. They print pretty-formatted JSON.

CommandUse it for
ploy ploybooks listReturn { "ploybooks": [...] }.
ploy ploybook get <id>Read a line slice of Markdown content.
ploy ploybook read <id>Alias of get.
ploy ploybook outline <id>Return a Markdown heading tree with stable section paths.
ploy ploybook read-section <id> <path>Read one section by a path emitted from outline.
Read Ploybooks
ploy ploybooks list
ploy ploybook outline <ploybook-id>
ploy ploybook read-section <ploybook-id> phase-1/setup
ploy ploybook get <ploybook-id> --offset 0 --limit 500

offset defaults to 0 and must be non-negative. limit defaults to 500 and accepts 1 through 500.

Create and update Ploybooks

Create or update a Ploybook
ploy ploybook create \
  --title "Weekly traffic digest" \
  --content-file ./weekly-traffic.md \
  --description "Summarize traffic and post the result" \
  --tag analytics \
  --tag reporting

ploy ploybook update <ploybook-id> --content-file - < weekly-traffic.md
ploy ploybook update <ploybook-id> --clear-tags
  • Title: 1–200 characters.
  • Description: at most 1,000 characters.
  • Tags: at most 20; each at most 50 characters.
  • Content: non-empty UTF-8; at most 500,000 characters.
  • --tag may be repeated. --clear-tags conflicts with --tag.

Apply exact edits

ploy ploybook edit applies 1–10 exact text replacements from inline JSON or a file.

edits.json
[
  {
    "old_string": "exact text to replace",
    "new_string": "replacement text"
  }
]
Edit a Ploybook
ploy ploybook edit <ploybook-id> --edits-file edits.json
ploy ploybook edit <ploybook-id> --edits '[{"old_string":"old","new_string":"new"}]'

Delete a Ploybook

Delete a Ploybook
ploy ploybook delete <ploybook-id>

Create, update, edit, delete, and schedule mutations support global --dry-run. During a dry run, the CLI does not read content or edit files and does not make mutation requests.


Schedules

Manage schedules
ploy ploybook schedule list <ploybook-id>
ploy ploybook schedule create <ploybook-id> --cron "0 9 * * 1-5" --timezone America/New_York
ploy ploybook schedule update <ploybook-id> <schedule-id> --disabled
ploy ploybook schedule delete <ploybook-id> <schedule-id>

Cron uses a valid five-field expression up to 200 characters. Timezone uses a valid IANA identifier up to 100 characters and defaults to UTC. New schedules are enabled unless --disabled is passed.


Keep going