> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usealmanac.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Upload sources

> Add local files and folders to a wiki's hosted source library.

Use the CLI when Almanac needs to discover files or folders on disk.

```bash theme={"theme":{"light":"github-light","dark":"vesper"}}
almanac upload handbook/ policies/refunds.pdf
```

Folders are expanded recursively. Almanac preserves original bytes and filenames,
then may organize the library path from the file's content. Do not treat the
final source path as a mirror of the local folder tree.

## Guide the ingest job

```bash theme={"theme":{"light":"github-light","dark":"vesper"}}
almanac upload handbook/ \
  --guidance "prioritize onboarding and escalation paths"
```

Guidance describes the editorial outcome. It does not replace the uploaded
evidence.

## Understand the result

<div className="almanac-diagram" tabIndex="0">
  <img src="https://mintcdn.com/almanac-e141534d/PSPQxvCsHo2cfSd-/images/diagrams/upload-job.svg?fit=max&auto=format&n=PSPQxvCsHo2cfSd-&q=85&s=5ee4307aeec1ad25603c6183eae9dcee" alt="New files create one ingest job, while an upload made entirely of duplicates changes nothing and creates no job." width="1440" height="520" data-path="images/diagrams/upload-job.svg" />
</div>

<Tabs>
  <Tab title="New material">
    ```text theme={"theme":{"light":"github-light","dark":"vesper"}}
    received  3
    job       queued
    wait      almanac jobs wait last
    ```

    At least one new file creates one ingest job for the upload.
  </Tab>

  <Tab title="Duplicates only">
    ```text theme={"theme":{"light":"github-light","dark":"vesper"}}
    received  3
    already in library
    ```

    Almanac creates no new job. `jobs wait last` would still mean the previous job.
  </Tab>
</Tabs>

## Inspect the source library

```bash theme={"theme":{"light":"github-light","dark":"vesper"}}
almanac sources tree
almanac sources search "refund policy"
```

Continue with [Follow a job](/guides/follow-job). For the underlying model, see
[Uploads and jobs](/concepts/uploads-and-jobs).
