Storage for the things agents make.

Code, documents, designs, memory, datasets and checkpoints, versioned on every write and traceable to the agent, model and session that produced them. Reachable over native Git, an S3-compatible API, or the SDK.

Example artifact versions, authors, lineage and storage tiers
ArtifactVersionProduced byDerived fromTierWritten
reports/q3-summary.mdv12analyst-v4 ses_8f2asales/q3.parquet, analyst-v4/memory.mdhot4s ago
analyst-v4/memory.mdv148analyst-v4 ses_8f2aanalyst-v4/memory.md v147hot4s ago
app/src/routes.tsv31swe-7 ses_c01dapp/src/routes.ts v30hot12s ago
design/onboarding.figv6designer-2 ses_b77edesign/onboarding.fig v5hot1m ago
adapters/sft-run-19.safetensorsv1trainer job_19sales/q3.parquet, evals/suite-4.jsonlcold2h ago
sales/q3.parquetv3ingest ses_2210nonecold3d ago
One org’s ledger, illustrated. Every row is an immutable version; every version knows who wrote it and from what.

Code was the first thing agents made. It is no longer most of it.

Generated code
Whole repos or single files. Clone and push over Git, or stream files through the API with no checkout.
Documents
Markdown, PDFs, spreadsheets, drafts. Line diffs for text, structural diffs for JSON and tables.
Designs and media
Images, video, renders and design files. Large objects are chunked and deduplicated across versions.
Agent memory
Memory files, scratchpads and tool logs, versioned per agent and per session, so a mind can be replayed or rolled back.
Datasets and evals
Fork a dataset, run a job, keep the lineage between the input and the score.
Model checkpoints
Adapters and full weights from post-training runs, tied to the data and config that produced them.

Every write is a commit. Every commit knows where it came from.

  1. Write through any door. An SDK call, a git push, or an S3 PutObject. The result is reachable through all three afterwards.
  2. Versioned by content. Each write is hashed, deduplicated and committed with a quorum across replicas. Branch, fork and diff any artifact, including binaries.
  3. Traceable later. Attach the agent, model, session and parents on write. Ask the lineage graph: what made this, and what did it go on to make?
put-report.ts11 lines
import { ArtifactStorage } from '@constal/artifact-storage'

const store = new ArtifactStorage({ org: 'acme', key })

const report = await store.put('reports/q3-summary.md', body, {
  producedBy: { agent: 'analyst-v4', session: 'ses_8f2a' },
  derivedFrom: ['sales/q3.parquet@v3', 'analyst-v4/memory.md@v148'],
})

report.version   // 12
report.sha256    // 9e1f…c3a0

Thousands of agents writing at once is the normal case. You pay for bytes and bandwidth.

Storage limits
Total storageUnlimited
Artifacts per orgUnlimited
API and Git rate limitsNone
Concurrent writes per artifactContact us
Max artifact sizeContact us
Version historyUnlimited
Sync with GitHub, S3, GCSYes
Usage pricing
Hot storage (touched in 7 days)Contact us
Cold storageContact us
Inbound (put, push)Contact us
Outbound (get, clone, fetch)Contact us
Lineage queries, diffs, webhooksFree
Seats, requestsNot billed
Bring your own cloudContact us

Storage is deduplicated across versions, so you pay for unique bytes. Metered hourly, invoiced monthly. Commitment discounts and dedicated tenancy on enterprise plans.

Your users expect their work to still be there.

Writes commit with a quorum across replicas before they are acknowledged. Failover is transparent, migrations have no downtime, and nothing in the write path is shared between tenants.

Uptime SLA
Contact us
Replicas per write
Contact us
Per-tenant encryption keys
Yes
Audit log on every read and write
Yes
SOC 2 Type II
Contact us
Data residency
Contact us

Give your agents somewhere to keep their work.

Create an org, mint a key, make a versioned write. Contact us for preview storage allowances.

npm i @constal/artifact-storage
pip install constal-artifact-storage
go get constal.ai/sdk/artifact-storage
Get an API key