The media library
Every project has a media library — upload documents, images, video and audio once, extract text from documents, and hand any file to your agents' workspace or back out as a download.
Updated 9/13/2026
Every project has a media library at /a/<slug>/p/<project>/media.
It is the place files live before and after agent work: the PDF you
want summarised, the screenshot you want compared, the video you want
transcribed, and the image or document an agent produced. A file in the
library is an artifact — it has an id, a kind, a status and a
lineage — and the same artifact can be sent into an agent's workspace,
extracted to text, or downloaded, without ever being uploaded twice.
What goes in
Four kinds of artifact, by content type:
| Kind | Examples | Per-file cap |
|---|---|---|
document | PDF, DOCX, Markdown, plain text | 50 MB |
image | PNG, JPEG, WebP, SVG | 500 MB |
video | MP4, WebM, MOV | 500 MB |
audio | MP3, WAV, M4A | 500 MB |
Uploads go straight from your browser to storage on a short-lived signed URL; the file never passes through a connect0 server. The tile appears as pending the moment you drop the file and flips to ready when the bytes are confirmed. Stored bytes meter against your credits per the storage rate on pricing — see Credits and pricing.
Three origins are recorded on every artifact so you can always tell where a file came from: uploaded (you), generated (an agent or a media skill produced it) and derived (made from another artifact — for example the text extracted from a PDF, linked to its parent).
The Media tab
- Upload — the button, or drop files anywhere on the grid. Several files at once are fine; each becomes its own artifact.
- Filter by kind; select a tile to see its name, kind, size, pages or duration, origin and parent.
- Extract text (documents) — queues a job that produces a derived
documentartifact in Markdown: the agent-readable form of a PDF or DOCX. The job runs in the background; the tile resolves in place. - Send to workspace — copies the artifact into the project's
workspace at
/workspace/media/<filename>so every agent on the project can read it withsh(cat /workspace/media/report.md). - Add from workspace — the other direction: give a path under
/workspace(saydata/report.pdf) and the file becomes a library artifact (origin uploaded), ready to download or share. - Download — a signed link, valid for a few minutes.
- Delete — removes the artifact from the library. The bytes are garbage-collected seven days later; until then the row keeps its lineage for the audit trail.
Library versus workspace
The library and the workspace are two different places on purpose:
- The library is durable, project-scoped, content-hashed on arrival, and visible in the dashboard. It is where humans put things and where finished results live.
- The workspace (
/workspace/…) is the working directory an agent's sandbox sees — connectors mount under/workspace/connectors/, uploads land under/workspace/media/. It is what tools likeshread and write.
Crossing the wall is always explicit — Send to workspace or Add from
workspace in the UI, or the materialise-artifact / promote-file
media skills from an agent — so nothing an agent writes silently
becomes a shared file, and nothing you upload is silently exposed to a
sandbox.
From an agent
Today an agent reaches library content through the workspace: send the
artifact (or its extracted text) to the workspace and the agent reads
it with sh; anything the agent writes under /workspace can be
promoted back with Add from workspace. Direct media skills — reading
a document by artifact id, generating images, video or audio into the
library — are the next phase of the media pipeline and will appear in
the skills catalog when they ship.
Limits and safety
- Per-file caps as in the table above; a larger file is refused at upload time with the cap in the message.
- A file that turns out larger than its cap fails on claim
(
size_cap_exceeded) instead of being kept. - Artifacts are scoped to the project: a member of the project can see and use them, an agent on the project can read what was sent to its workspace, and nobody else can.
- Every artifact records who created it and, for derived files, which artifact it came from.
Where to go next
- Media library quickstart — upload a PDF, extract its text, and have an agent read it, in five minutes.
- Connect a data source — for sources that should stay live (a repo, a database, a SaaS tool) rather than a one-off file.
Ask Zero
Ask a question about connect0 and get an answer grounded in the docs, with links to the sources. Signed in? Zero answers with your account in mind.