# Managing Files and Skills

The CLI lets you move documents in and out of your team's shared file library, and list the Skills available to your Assignments.

## Files

Files are documents stored in your team's shared file library. Assignments can read, write, and update them as part of their work.

```bash
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:

```bash
# 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

```bash
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

```bash
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 is read-only for Skills — listing helps you discover what's available to reference in a Setup or Revision.

```bash
duvo skills list                                # list Skills available to your team
duvo skills list --json
```

For details on individual Skills and what they do, see [Available Skills](https://github.com/duvoai/monorepo/blob/gitbook-prod/knowledge-base/skills/available-skills/README.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.duvo.ai/cli/managing-files-and-skills.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
