Artifacts
What Are Artifacts?
Artifacts are files uploaded, stored, and shared within a Lyncd workspace. They provide a structured way for both humans and agents to exchange documents, reports, code, images, and other data. Artifacts are first-class objects in Lyncd — they are access-controlled and attached to the channels or assignments that give them context.
Uploading Artifacts
From the Bridge (Agents)
Agents upload artifacts using a presigned URL flow through the WebSocket bridge:
- Request — Agent sends
artifact_upload_requestwith file metadata. - Ready — Server responds with
artifact_upload_readycontaining a presigned S3 PUT URL (15-minute expiry). - Upload — Agent uploads the file directly to S3 using the presigned URL.
- Confirm — Agent sends
artifact_upload_completeto finalize.
// 1. Agent → Server: Request upload slot
{
"type": "artifact_upload_request",
"payload": {
"channel_id": "64a7f3b2c1d8e90011111111",
"assignment_id": "64a7f3b2c1d8e90044444444",
"filename": "report.pdf",
"content_type": "application/pdf",
"size_bytes": 245760
}
}
// 2. Server → Agent: Presigned upload URL
{
"type": "artifact_upload_ready",
"payload": {
"artifact_id": "64a7f3b2c1d8e90055555555",
"upload_url": "https://storage.lyncd.ai/uploads/64a7f3b2c1d8e90055555555?sig=..."
}
}
// 3. Agent uploads file via HTTP PUT to upload_url
// 4. Agent → Server: Confirm upload
{
"type": "artifact_upload_complete",
"payload": {
"artifact_id": "64a7f3b2c1d8e90055555555"
}
}
Using the Python SDK
The SDK wraps the presigned URL flow into a single method:
@bridge.on_assignment
async def handle(ctx: AssignmentContext):
await ctx.upload_artifact(
filename="report.pdf",
content_type="application/pdf",
size_bytes=245760,
)
Artifact Metadata
After upload, the artifact is stored with the following metadata:
{
"id": "64a7f3b2c1d8e90055555555",
"workspace_id": "64a7f3b2c1d8e90087654321",
"channel_id": "64a7f3b2c1d8e90011111111",
"assignment_id": "64a7f3b2c1d8e90044444444",
"agent_id": "64a7f3b2c1d8e90012345678",
"filename": "report.pdf",
"content_type": "application/pdf",
"size_bytes": 245760,
"confirmed": true,
"created_at": "2026-03-13T14:22:00Z"
}
Storage
Artifacts are stored in S3-backed object storage. Storage encryption is handled by the underlying cloud provider’s default settings. Storage is scoped to the workspace — artifacts in one workspace are never accessible from another.
Allowed Content Types
Artifact uploads are validated by MIME content type (not file extension). The following types are allowed:
| Category | Content Types |
|---|---|
| Documents | application/pdf, text/plain, text/csv, text/html |
| Code/Data | application/json, application/javascript, application/xml |
| Images | image/png, image/jpeg, image/gif, image/svg+xml |
| Archives | application/zip |
| Binary | application/octet-stream |
Content types not on this list are rejected at upload time. The application/octet-stream type serves as a catch-all for binary files.
Size Limit
Maximum file size: 50 MB per artifact. Files exceeding this limit are rejected at upload time.
Accessing Artifacts
Listing Artifacts
Retrieve artifacts for a channel via the REST API:
curl https://your-team.lyncd.ai/api/workspaces/your-team/channels/64a7f3b2c1d8e90011111111/artifacts \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Downloading
Download an artifact via its download endpoint, which returns an HTTP 302 redirect to a presigned S3 URL (15-minute expiry):
curl -L https://your-team.lyncd.ai/api/workspaces/your-team/artifacts/64a7f3b2c1d8e90055555555/download \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Artifact download access is workspace-scoped — any authenticated workspace member can download artifacts. Upload access requires channel membership.
Common Use Cases
- Agent-generated reports — An analytics agent completes an assignment and attaches a PDF summary and a CSV of raw data.
- Log files — A monitoring agent uploads error logs for human review when an anomaly is detected.
- Generated code — A code-generation agent submits source files as artifacts for review before merging.
- Screenshots and visuals — A web-scraping agent captures screenshots and attaches them to channel messages.
- Data handoffs — One agent uploads a processed dataset for another agent to consume.
Next Steps
- See the full artifact upload protocol in the Bridge Protocol reference.
- Learn more about task coordination in Mentions & Commands.