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

# Artifacts

> Find, share, edit and reuse the files your threads, apps, pipelines and uploads produce

**Artifacts** are the files your workspace keeps in TextQL: the charts, HTML reports, tables and documents Ana makes in threads, the files data apps and pipelines write, and the files you upload yourself. The Artifacts page collects them in one place so you can find a file again, share it, edit it, and hand it to a new thread, data app, pipeline or agent.

> [!NOTE]
>
> Artifacts is in early access and is off by default. Ask your TextQL contact to turn it on for your organization. Until then, the Artifacts page and its links show "Not found".

## Where artifacts come from

Every artifact records its origin, and the Artifacts page links back to it.

| Origin | How it gets there |
| - | - |
| **Thread** | Files Ana writes while answering in a thread |
| **Dashboard** or **Data App** | Files a dashboard or [data app](https://docs.textql.com/core/how-it-works/data-apps.md) writes |
| **CLI sandbox** | Files written by sandbox runs from the [`refinery` CLI](https://docs.textql.com/core/admin/cli) or the API |
| **Pipeline** | Files a pipeline publishes on each successful run |
| **Manual** | Files you upload on the Artifacts page |

Files you attach to a chat message are separate from artifacts. See [File Upload](https://docs.textql.com/core/how-it-works/tools/file-upload.md).

## The Artifacts page

Open **Artifacts** from the sidebar. You see your own files, files shared with your team, files shared with you directly, and files whose origin you can open (for example, a file from a thread you can read).

* **Views:** All Artifacts, My Artifacts, and Shared with you
* **Search:** matches file names and folder paths
* **Filters:** type (HTML, Chart, Image, PDF, Table, Text, File), source, sharing, and author
* **Sort:** by name or created date, in a card or table layout

Each row has a menu with **Open in new tab**, **Bookmark**, **Copy link**, **Copy URI**, **Use with**, and, if you manage the file, **Move to folder** and **Share**. The source column links to the thread, dashboard or app that made the file.

## Viewing a file

Each artifact has its own page at `/artifact/<id>`. Share that link rather than a download link: download links expire, the page link doesn't, and it checks the viewer's access every time it opens.

The page previews:

* **HTML and charts** in a sandboxed frame
* **Images** with zoom controls
* **PDFs**
* **CSV and Excel files** as a table with a sheet picker and column filters (previews show up to 10,000 rows of files up to 50 MB)
* **Text files**

Other file types show their name and type with a **Download** button.

## Folders

Artifacts have their own folders, separate from the [Ontology](https://docs.textql.com/core/ontology/overview.md). Uploading a file to Artifacts doesn't add it to your Ontology, and Ontology directories don't appear here. Config and code reach an artifact by its [URI](#artifact-uris) instead of an Ontology path.

An artifact is either in a folder or loose.

* **Loose** artifacts live as long as whatever made them, such as their thread, and are shared the same way that thread is shared.
* **Kept** artifacts sit in a folder. They stay until someone deletes them, and anyone who can open the folder can open them, whatever made them.

To keep a file, choose **Move to folder** from its menu. You can pick an existing folder or create one there. You can also create a folder with **New folder** on the Artifacts page.

Some folders are created for you:

* **My files** is your personal folder, which only you can open. Uploads with no other destination land here.
* **Pipeline folders** belong to a pipeline. A pipeline's output files go here, and anyone who can see the pipeline can open them.

A folder header shows its URI with a copy button, and **Share folder** for the folder's owner.

## Uploading files

Click **Upload** on the Artifacts page to add a file to the folder you have open, or to My files when you're viewing all artifacts.

Uploading a file with the same name as one already in the folder adds a new version of that file instead of a second copy. If that file has unpublished edits, publish or discard them first.

To replace a file you can edit from its own page, open the **⋯** menu and choose **Upload a new version**.

## Sharing and access

A new artifact is private to the person who made it, plus anyone who can open its origin or its folder. To share it further, click **Share** on the artifact's page. You can open it to everyone in your organization through general access, or give specific people, roles or groups **Viewer** or **Editor** access.

Viewers can open and download the file. Editors can also edit it and upload new versions. Sharing and moving the file stay with its managers: the person who made it, and members whose role lets them manage others' private work of that origin type.

### Access follows the data

An artifact remembers the connectors and API connectors whose data it holds, from the thread or app that made it and every edit since. Anyone other than its owner can open it only if they can read **every one** of those connectors, however it was shared. Someone who can't simply doesn't see it: it's left out of their Artifacts list, and its link shows "Artifact not found".

When Ana reads an artifact in a thread, that thread picks up the artifact's connectors too, so the same rule carries forward to whatever Ana makes next.

Changes to an artifact's sharing, new folders, deleted folders, and moved files are recorded in the [audit log](https://docs.textql.com/core/admin/audit-log.md).

## Editing and versions

Managers and Editors can edit HTML, CSV and text artifacts up to 256 KB directly in the browser.

1. Click **Edit** on the artifact's page and make your changes. **Cmd/Ctrl+S** or **Save draft** saves a draft.
2. Click **Publish** to make the draft the new version. Viewers keep seeing the last published version until you do.
3. Click **Discard** to throw the draft away.

Every published change adds a numbered **version**; nothing overwrites an old one. Click **History** to view earlier versions and choose **Restore this version into the draft**, then publish to make it live again.

You can also ask Ana to change an artifact in a thread. Ana saves its edit as a draft, and you publish it from the review controls in the chat.

## Using an artifact elsewhere

The **Use with** menu on any artifact hands it to another part of TextQL:

| Option | What it does |
| - | - |
| **Ask in a new Thread** | Starts a thread with a copy of the file attached. Later versions don't change that copy. |
| **Build a Data App** | Starts a [data app](https://docs.textql.com/core/how-it-works/data-apps.md) that reads the file as a data source |
| **Use with a Pipeline** | Runs a pipeline on this file in place of a file it normally reads, without changing the pipeline, or creates a new pipeline from the file |
| **Use with an Agent** | Starts an [agent](https://docs.textql.com/core/how-it-works/feed/agents.md) set up to work with the file |

Options appear only when that feature is on for your organization.

## Artifact URIs

Config and code refer to an artifact by its **URI** rather than a link, so a data app or pipeline keeps working if the file gets a new version. Copy one with **Copy URI**.

| URI | Names |
| - | - |
| `artifact://<folder path>/<file name>` | A file in a folder |
| `artifact://<folder path>/` | A folder |
| `artifact://id/<id>` | A loose file |
| `artifact://<...>@v3` | Version 3 of a file, instead of the latest |

Your own folder is `artifact://users/<your email>/`, and a pipeline's folder is `artifact://pipelines/<pipeline name>/`. Names match case-insensitively.

A data app or pipeline that reads a URI picks up the latest version on each refresh or run, unless the URI pins a version with `@vN`.

## From the CLI

The [`refinery` CLI](https://docs.textql.com/core/admin/cli) works with artifacts too:

```bash theme={null}
refinery artifact list
refinery artifact show <id> --content
refinery artifact edit <id> --replace "old text=new text"
refinery artifact publish <id>
refinery artifact versions <id>
refinery open artifact <id>
```

Files written by `refinery` sandbox runs become artifacts automatically, with the CLI as their origin.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.