Apache OpenDAL Oli
SkillDev toolsDirect command playbooks for Apache OpenDAL Oli CLI data access and mutation. Use when Codex must run real `oli` commands to list, read, copy, move, delete, edit, stream, or benchmark data across local paths and `profile:/path` locations.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Apache OpenDAL Oli skill
What this skill tells your AI
The instructions your AI receives, as published by apache/opendal-oli in skills/oli/SKILL.md and read by ahel’s review.
Command Principles
- Prefer direct command execution over abstract planning.
- Run read-only checks before mutating data.
- Use explicit paths and explicit profile source selection (config-file mode or environment mode).
Direct Command Playbooks
Inspect Data Without Mutation
oli ls 's3:/warehouse/'
oli ls -r 's3:/warehouse/2026/'
oli ls -T 's3:/warehouse/'
oli stat 's3:/warehouse/events.parquet'
oli cat 's3:/warehouse/schema.json'
Copy Local File To Remote
oli cp ./events.parquet 's3:/ingest/events.parquet'
oli stat 's3:/ingest/events.parquet'
Copy Remote File To Local
oli cp 's3:/ingest/events.parquet' ./events.parquet
Copy Across Profiles
oli cp 's3:/warehouse/events.parquet' 'r2:/backup/events.parquet'
oli stat 'r2:/backup/events.parquet'
Recursive Directory Copy
oli ls -r 's3:/warehouse/2026/'
oli cp -r 's3:/warehouse/2026/' 'r2:/backup/2026/'
oli ls -r 'r2:/backup/2026/'
Move File Or Directory
oli mv 's3:/staging/events.parquet' 's3:/warehouse/events.parquet'
oli mv -r 's3:/staging/old-batch/' 's3:/archive/old-batch/'
Safe Recursive Delete
oli ls -r 's3:/staging/to-delete/'
oli rm -r 's3:/staging/to-delete/'
oli ls 's3:/staging/'
Stream Input To Object
printf '%s\n' '{"status":"ok"}' | oli tee 's3:/logs/healthcheck.json'
Edit Remote File
EDITOR=vim oli edit 's3:/docs/README.md'
Run Benchmark Suite
oli bench --config ./config.toml s3 ./suite.toml
Hard Rules
- Always use
profile:/pathsyntax and avoid://. - Use
profile:/pathfor remote targets and plain paths for local filesystem targets. - For directory-level mutations, explicitly use
-rand inspect scope first. - For delete operations, list first, delete second, verify third.
- For cross-profile copy and move, verify source and destination with
statorls. - In config-file mode, pass
--config <path>explicitly. - In environment-variable mode, do not pass
--config.
Failure Triage
unknown profile: check profile name andconfig.toml.missing 'type' in profile: add profiletype.Host part in a location is not supported: replace://with:/.- Recursive command errors: confirm
-rand target kind (file vs directory).
Resource Navigation
- Read
references/profile-setup.mdfor config-file mode vs environment-variable mode. - Read
references/commands.mdfor command semantics and flags. - Read
references/safety-troubleshooting.mdfor risk control and debugging.
Signals
- GitHub stars
- 27
- Forks
- 6
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
oli- Source
- github.com/apache/opendal-oli