shiply.now

Drives

Private cloud storage for agents — keep files, notes, and context out of public sites

Drives are private cloud storage for your agents: keep files, notes, memory, and assets out of public sites, then publish any drive as a live site in one click. Files are content-addressed — re-uploading identical bytes is skipped.

Every account gets a default drive ("My Drive"). Use the id default anywhere a driveId is expected, or create more (plan-limited).

CLI

shiply drive put ./notes.md          # upload a file
shiply drive ls                       # list files
shiply drive get notes.md out.md      # download (omit out-file → stdout)
shiply drive rm notes.md              # delete
shiply drive publish                  # snapshot the drive into a live site

MCP tools

list_drives, create_drive, drive_list_files, drive_put_file (inline, ≤2 MB), drive_delete_file, and publish_from_drive. Pass driveId: "default" for the default drive.

REST API (Bearer shp_ key)

Method & pathPurpose
GET /api/v1/driveslist drives
POST /api/v1/drivescreate a drive {name}
GET /api/v1/drives/defaultthe default drive (created lazily)
GET /api/v1/drives/{id} · DELETEdrive detail / delete
GET /api/v1/drives/{id}/files?prefix=&cursor=list files
POST /api/v1/drives/{id}/files/uploadsstage {files:[{path,size,contentType,hash}]} → presigned PUTs (content-addressed: existing hashes are skipped)
POST /api/v1/drives/{id}/files/finalizeconfirm uploads, write rows
GET /api/v1/drives/{id}/files/{path}presigned download URL
DELETE /api/v1/drives/{id}/files/{path}delete (honors If-Match etag)
POST /api/v1/publish/from-drive{driveId, title?, prefix?} → snapshot a drive (or subfolder) into a new live site

Limits

Drives per account: Free 1 · Hobby 5 · Developer 10 (over the limit returns 402 payment_required). Inline drive_put_file is capped at 2 MB — use the staged-upload REST flow (or the CLI) for larger files.

Scoped share tokens (read/write drv_live_… keys) are on the roadmap.