← Back to Blog

How to Run an AI S3 File Storage Agent with OE Runtime

Audit, analyse, and manage your S3-compatible storage with AI. OE Runtime connects to any S3 bucket, inventories your files, identifies the largest objects, and recommends cleanup and archiving actions — all locally, no third-party tool required.

🗄
Step 1
List Bucket Contents
List all files with key, size, last modified date, and storage class.
Step 2
Analyze Storage
Calculate total usage, identify the 5 largest files, group by type, and flag files older than 90 days.
Step 3
Report
Produce a storage summary with totals, type breakdown, top files, and archiving recommendations.

What You Need


Create the Project Folder

Create a folder called file-storage/ and add these two files:

file-storage/
├── SKILL.md         # the portable skill (agentskills.io)
├── agent.yaml       # wires SKILL.md to your connector
└── oe-config.json  # LLM key + connector credentials

The Skill Files

Create SKILL.md inside a file-storage/ directory. This is the portable skill — it follows the agentskills.io format and runs unchanged on Claude, Cursor, Windsurf, or OE Runtime:

---
name: file-storage
description: Upload, list, download, and manage files in S3-compatible storage
license: Apache-2.0
metadata:
  author: Open Enthrium
  version: "1.0"
---

You are a file management agent with access to S3-compatible storage.
List, inspect, and report on stored files. Confirm before any delete operations.
Complete all steps fully before writing your report.

## Step 1: List Bucket Contents
List all files in the configured S3 bucket.
For each file note: key (path), size in KB/MB, last modified date, and storage class.

## Step 2: Analyze Storage
From the listed files:
- Calculate total storage used
- Identify the 5 largest files
- Group files by extension type (images, documents, archives, other)
- Flag any files older than 90 days that may be candidates for archiving

## Step 3: Report
Produce a storage summary:
- Total files and total size
- Breakdown by file type
- Top 5 largest files
- Files flagged for archiving
- Recommended cleanup or archiving actions

Create agent.yaml in the same directory to wire the skill to your connector:

name: File Storage Agent
description: Upload, list, download, and manage files in S3-compatible storage
connectors:
  - connection_name: My S3 Bucket
    connection_type: s3
skills:
  - path: ./
    trigger_type: auto

The Config File

Create oe-config.json in the same directory:

{
  "llm": {
    "provider": "openai",
    "model": "gpt-4o",
    "apiKey": "YOUR_OPENAI_API_KEY"
  },
  "server": {
    "enabled": false,
    "port": 3333,
    "apiKey": "your-secret-api-key"
  },
  "connectors": [
    {
      "connection_name": "My S3 Bucket",
      "connection_type": "s3",
      "accessKeyId": "YOUR_AWS_ACCESS_KEY",
      "secretAccessKey": "YOUR_AWS_SECRET_KEY",
      "region": "us-east-1",
      "bucket": "my-bucket"
    }
  ]
}

Create an IAM user with AmazonS3ReadOnlyAccess (or scoped bucket permissions) and generate an access key at console.aws.amazon.com/iam. The agent works with any S3-compatible storage including MinIO, Backblaze B2, and Cloudflare R2 — just update the endpoint URL.

Download OE Runtime

OE Runtime — Direct Downloads

Run the Agent

From the parent folder containing your skill directory:

MethodBest forDownload
1 npx recommended No install needed — always runs the latest version —
2 Windows .exe Download once, run offline on Windows ⊞ Windows (.exe)
3 macOS binary Download once, run offline on Mac  macOS
4 Linux binary Server deployments, cron jobs, Docker 🐧 Linux
5 API Server integration Call from any app, webhook, or automation pipeline 📮 Postman Collection

1 npx recommended

npx -y @openenthrium/oe-runtime@latest ./file-storage

2 Windows

oe-runtime-win.exe ./file-storage

3 macOS

chmod +x oe-runtime-macos
./oe-runtime-macos ./file-storage

First run blocked? System Settings → Privacy & Security → Allow Anyway.

4 Linux

chmod +x oe-runtime-linux
./oe-runtime-linux ./file-storage

5 API Server integration

Add a "server" block to oe-config.json, then start with --serve:

{
  "llm": { ... },
  "server": { "enabled": true, "port": 3333, "apiKey": "your-secret-key" },
  "connectors": [ ... ]
}
npx -y @openenthrium/oe-runtime@latest --serve --config oe-config.json

Run with inline YAML:

curl -X POST http://localhost:3333/run \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your-secret-key" \
  -d '{"yaml": "...", "params": {}}'

Or run from a file on the server:

curl -X POST http://localhost:3333/run-file \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your-secret-key" \
  -d '{"file": "/path/to/agent.yaml", "params": {}}'

Use Cases

Build your own agents with OE Runtime

Download OE Runtime and run any AI agent locally or as a server — no cloud required.

Get OE Runtime →
Series OE Runtime Agent Guides — 21 Connectors
Series overview →