[file|path] File or path
Local file, remote object key, or folder path for the selected operation. Required for upload, download, and sync; optional prefix for list.
/ak:storage upload assets/images/launch-hero.png Quick Ref / Command
Marketing Kit
/ak:storage
S3-compatible object storage helper for marketing assets across Cloudflare R2, AWS S3, MinIO, Backblaze B2, and DigitalOcean Spaces.
Identify Operation
Check Config
Check SDK
Choose Provider
Rule 01
Marketing assets can use any S3-compatible backend as long as endpoint, bucket, keys, and region are configured.
Rule 02
The skill returns shareable public URLs when S3_PUBLIC_URL or provider URLs are available.
Rule 03
Fallback behavior is intentional: unconfigured storage should not break local asset workflows.
Rule 04
Credentials are never displayed; use least-privilege bucket-scoped access tokens.
Core lanes from input to output, aligned with the command's real execution path.
Start
Input, scope, route
Work
Agent / skill execution
Verify
Gate, review, validation
Close
Report, handoff, artifact
How to invoke the skill: syntax, positional arguments, shared options, then each subcommand with its own syntax and outcome.
Syntax
/ak:storage [upload|download|list|sync] [file|path] [--bucket <name>][file|path] File or path
Local file, remote object key, or folder path for the selected operation. Required for upload, download, and sync; optional prefix for list.
/ak:storage upload assets/images/launch-hero.png --bucket <name> Bucket name
Override the configured S3_BUCKET for this operation. Credentials still come from the user .env and are never logged.
/ak:storage list designs/ --bucket campaign-assets upload Upload /ak:storage upload [file|path] [--bucket <name>] Upload one approved local marketing asset. Inspect destination collisions before overwrite.
Outcome: PutObject result with a constructed URL or a graceful unconfigured fallback; a URL is not proof of public access.
/ak:storage upload assets/images/launch-hero.png download Download /ak:storage download [file|path] [--bucket <name>] Download one approved remote object to a local path, creating parent directories as needed.
Outcome: Local file written from the object bytes, or a missing-key or config error without throwing.
/ak:storage download designs/pricing-deck.html list List /ak:storage list [file|path] [--bucket <name>] List remote keys under an optional prefix. Does not upload, download, or delete objects.
Outcome: Bounded object list for that prefix, or a graceful fallback when credentials or the SDK are missing.
/ak:storage list designs/ sync Sync /ak:storage sync [file|path] [--bucket <name>] Sync only the requested local files to remote keys. Does not imply remote deletion or changing public access.
Outcome: Requested objects mapped and uploaded only after collision inspection; missing credentials keep assets local and report that no upload occurred.
/ak:storage sync assets/slides/ upload Upload one approved local asset.
download Download one approved remote object.
list List bounded remote keys.
sync Sync requested local files only.
Concrete invocations for each flag, subcommand, mode, or route available in the live workflow.
/ak:storage /ak:storage upload assets/images/launch-hero.png /ak:storage download designs/pricing-deck.html /ak:storage list designs/ /ak:storage sync assets/slides/ /ak:storagelist designs/--bucketcampaign-assets