Skip to main content
Disk provides persistent file storage with paths, metadata, and secure download URLs.

Agentic Disk SDK

Bring filesystem to your agent with one-line code.

Quick Start

1

Create a disk

import os
from acontext import AcontextClient, FileUpload

client = AcontextClient(api_key=os.getenv("ACONTEXT_API_KEY"))
disk = client.disks.create()
2

Upload a file

artifact = client.disks.artifacts.upsert(
    disk.id,
    file=FileUpload(filename="notes.md", content=b"# Meeting Notes"),
    file_path="/documents/",
    meta={"author": "alice"}
)
3

Get file with URL

result = client.disks.artifacts.get(
    disk.id,
    file_path="/documents/",
    filename="notes.md",
    with_public_url=True,
    with_content=True
)
print(result.public_url)
print(result.content.raw)
4

List files

result = client.disks.artifacts.list(disk.id, path="/documents/")
for artifact in result.artifacts:
    print(f"{artifact.filename} - {artifact.meta}")
5

Search files

# Search content with regex
results = client.disks.artifacts.grep_artifacts(disk.id, query="TODO.*")

# Find by path pattern
results = client.disks.artifacts.glob_artifacts(disk.id, query="**/*.md")
6

Update metadata

client.disks.artifacts.update(
    disk.id,
    file_path="/documents/",
    filename="notes.md",
    meta={"author": "alice", "reviewed": True}
)
7

Clean up

client.disks.artifacts.delete(disk.id, file_path="/documents/", filename="notes.md")
client.disks.delete(disk.id)

Complete Example

import os
from acontext import AcontextClient, FileUpload

client = AcontextClient(api_key=os.getenv("ACONTEXT_API_KEY"))

# Create disk
disk = client.disks.create()

# Upload file
artifact = client.disks.artifacts.upsert(
    disk.id,
    file=FileUpload(filename="notes.md", content=b"# Meeting Notes\nQ4 goals discussed."),
    file_path="/meetings/",
    meta={"date": "2024-01-15"}
)

# Get with URL
result = client.disks.artifacts.get(
    disk.id, file_path="/meetings/", filename="notes.md",
    with_public_url=True
)
print(f"URL: {result.public_url}")

# List files
files = client.disks.artifacts.list(disk.id, path="/meetings/")
print(f"Found {len(files.artifacts)} files")

# Cleanup
client.disks.delete(disk.id)

Next Steps