Skip to main content
The CLI lets you move documents in and out of your team’s shared file library, create and manage the Skills your Assignments use, and browse the Plugins available to reference in a Setup.

Files

Files are documents stored in your team’s shared file library. Assignments can read, write, and update them as part of their work.
duvo files list                                 # list all team Files
duvo files content <path>                       # print the text content of a file to stdout
duvo files content-set <path> \
  --content "updated text"                      # update the text content of a file
duvo files content-set <path> \
  --content-file ./updated.txt                  # replace content from a local file
duvo files rename \
  --path <current-path> \
  --new-name new-name.csv                       # rename a file
duvo files delete <path>                        # delete a file (prompts for confirmation)
duvo files delete <path> --yes                  # delete without prompting

Uploading and downloading large files

For files larger than a few megabytes, use presigned URLs to upload or download directly via HTTP:
# Upload: get a presigned URL, then PUT the file to it
duvo files upload-url \
  --file-name data.csv \
  --content-type text/csv

# Download: get a presigned URL, then GET the file from it
duvo files download-url <path>
The CLI prints the presigned URL plus the HTTP method and headers to use. Pipe to jq and curl to script the actual upload or download.

Scripting examples

Sync a local directory to the Duvo Files library

for FILE in ./reports/*.pdf; do
  URL=$(duvo files upload-url \
    --file-name "$(basename "$FILE")" \
    --content-type application/pdf \
    --json | jq -r '.upload_url')

  curl -X PUT --data-binary "@$FILE" "$URL"
done

Backfill a text file from local content

duvo files content-set reports/notes.md \
  --content-file ./local-notes.md

Skills

Skills are reusable capabilities your Assignments can call (for example, PDF parsing or Google Sheets editing). The CLI lets you browse, install, create, and manage your team’s Skills.

Browse and install

duvo skills list                                # list Skills available to your team
duvo skills list --system                       # restrict the list to system Skills
duvo skills system                              # list global system Skills available to all teams
duvo skills install <skill-id>                  # copy a system (or any accessible) Skill into your team's library
duvo skills assignments <skill-id>              # list Assignments whose live Setup references a Skill

Create and edit custom Skills

duvo skills create \
  --name "Invoice Parser" \
  --description "Extract totals and line items from invoice PDFs" \
  --content-file ./SKILL.md                     # create a Skill from a Markdown SKILL.md body

duvo skills upload ./my-skill.zip               # create or update a Skill from a SKILL.md file or ZIP archive
duvo skills download <skill-id>                 # download a custom Skill as a ZIP archive
duvo skills delete <skill-id>                   # delete a custom Skill (prompts unless -y)
create reads the SKILL.md body from --content-file (use - for stdin) or inline with --content. A ZIP passed to upload must contain SKILL.md at its root.

Manage Skill files

duvo skills files <skill-id>                    # list the files in a Skill
duvo skills file-get <skill-id> <path>          # print one file's contents
duvo skills file-update <skill-id> <path> \
  --content "updated text"                      # update a file in a Skill
To draft a SKILL.md from a plain-English description without saving it, use duvo skills generate --prompt "...". For details on individual Skills and what they do, see Available Skills.

Plugins

Plugins are capability packs (browsing, default Skills, and the knowledge-work packs) that you can reference in an Assignment’s Setup.
duvo plugins list                               # browse every plugin you can reference in a Setup
duvo plugins list --json