Olares Files (olares-cli files)
Olares Files (olares-cli files) — manage files on an Olares system from the command line, scoped to the active Olares ID. Covers list (ls), upload, download,...
Rank
62
Safety
84
Downloads
1.0k
Updated
Oct 11, 2026
Version
4.0.1
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1K downloads reported by the source. Last updated 10/11/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 11, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 11, 2026
- Adoption signal
- 1K downloadsadoption · observed Oct 11, 2026
- Latest release
- 4.0.1release · observed May 29, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s1718vftp5x2gwbtzenpt3kxch87k6j0:olares-files- Install using `clawhub skill install s1718vftp5x2gwbtzenpt3kxch87k6j0:olares-files` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/olares/olares-files before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-olares-olares-files/snapshot"
Run-check
$0.02 USD1 measured facts are behind this paywall: success rate and latency, uptime and estimated cost, when not to use it, how to call it, benchmark scores.
Agents pay $0.02 in USDC. A card payment is $0.50, the smallest a card allows.
Documentation
CLAWHUB
143,055 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: olares-files
version: 4.0.1
description: "Olares Files (olares-cli files) — manage files on an Olares system from the command line, scoped to the active Olares ID. Covers list (ls), upload, download, cat, edit (open in $EDITOR), mkdir, rm, cp, mv, rename, chown (POSIX owner uid get/set), folder share (internal cross-Olares-ID, public link with password + expiration, SMB Samba), mount / unmount / favorite external SMB servers, and Sync (Seafile) repo CRUD — all against the per-Olares-ID files-backend on Olares (drive/Home, drive/Data, sync, cache, external, awss3, dropbox, google, tencent, share). Use when the user mentions Olares, Olares ID, Olares Files, olares-cli files, LarePass Files on Olares, drive, Home, Data, sync, cache, uploading / downloading / listing / editing remote files on Olares, in-place rename, POSIX file ownership, sharing a folder with another Olares user (by Olares ID), public link with password / expiration, SMB / Samba network shares, the LarePass 'Connect to Server' dialog, or Sync (Seafile) libraries."
metadata:
requires:
bins: ["olares-cli"]
cliHelp: "olares-cli files --help"
---
# files (per-user files-backend)
**CRITICAL — before running any verb here, MUST use the Read tool to read [`../olares-shared/SKILL.md`](../olares-shared/SKILL.md) for profile selection, login, and 401/403 recovery rules.**
> **Source of truth for flags & wire shapes is always `olares-cli files <verb> --help`.** This file only carries what `--help` cannot give: the cross-cutting frontend-path concept, the trailing-slash convention, the five client-side hard constraints, and the verb index.
## Core concept: the 3-segment frontend path
Every resource on the per-user files-backend is addressed by:
```
<fileType>/<extend>[/<subPath>]
```
| Segment | Meaning |
|---------|---------|
| `fileType` | Storage class (lowercase, case-sensitive): `drive`, `cache`, `sync`, `external`, `awss3`, `dropbox`, `google`, `tencent`, `share`, `internal` |
| `extend` | Volume / repo / account inside that class. **Case-sensitive.** Drive: only `Home` or `Data`. Cache / external: node name. Sync: seafile repo id. Cloud (`awss3`/`dropbox`/`google`/`tencent`): account key |
| `subPath` | Path inside `extend` (root if omitted). Leading `/` is implicit |
Examples: `drive/Home/`, `drive/Home/Documents/report.pdf`, `sync/<repo_id>/notes/`, `awss3/<account>/<bucket>/key.txt`.
> Drive's `extend` MUST be `Home` or `Data` exactly — `home` is rejected with `invalid drive type`.
### Per-verb namespace support
| Verb | Supported namespaces |
|------|----------------------|
| `ls` / `cat` / `download` / `rm` / `rename` | all of `drive`, `cache`, `sync`, `external`, `awss3`, `google`, `dropbox`, `tencent` |
| `edit` | `drive`, `sync`, `cache`, `external` only (cloud / tencent / share / internal refused) |
| `mkdir` | all of `drive`, `cache`, `sync`, `external`, `awss3`, `google`, `dropbox`, `tencent` |
| `cp` / `mv`_meta.json
{
"ownerId": "kn7153k9wp5dwxsm6getv104r985vrf5",
"slug": "olares-files",
"version": "4.0.1",
"publishedAt": 1780034074377
}references/olares-files-chown.md
# files chown > **Prerequisite:** Read [`../../olares-shared/SKILL.md`](../../olares-shared/SKILL.md) and the parent [`../SKILL.md`](../SKILL.md) first. > **Flags & wire shape:** `olares-cli files chown --help`. Get or set the POSIX owner UID of a file / directory. CLI counterpart of the LarePass web app's "Permission" tab. ## Modes | Form | What it does | |---|---| | `files chown <path>` | GET — print the current uid | | `files chown <path> --uid <int>` | PUT — replace the uid | | `files chown <path> --uid <int> -r` | PUT — recurse into children | ## UID conventions (LarePass presets) | UID | Meaning | |---|---| | `0` | Root (system; only set this if you know why) | | `1000` | User (the default LarePass user; matches the GUI's "User" preset) | Any integer is accepted, but these are the values the GUI surfaces. ## Supported namespaces (allow-list) `drive/Home/<sub>`, `drive/Data/<sub>`, `cache/<node>/<sub>` only. Refused namespaces: | Namespace | Why | |---|---| | `sync/<repo_id>/...` | Seafile permissions live on the library itself — use `files repos` | | `external/<node>/<volume>/...` | LarePass GUI hides the Permission tab for external mounts | | `awss3` / `dropbox` / `google` / `tencent` | Object stores have no POSIX uid concept | ## Safety constraints - **Destructive when `--uid` is provided — confirm intent with the user.** UID changes affect every app that reads the directory. - **Volume roots are refused** (`drive/Home/`, `drive/Data/`, `cache/<node>/`) — chowning an entire namespace root has too much blast radius. Pick a one-level-deeper path with `-r` if you need to fan out. - **`-r` recurses** — every descendant gets the new uid. Confirm directory contents with `files ls` first. ## Examples ```bash # Inspect. olares-cli files chown drive/Home/Documents/foo.pdf # Hand a file to root. olares-cli files chown drive/Home/Documents/foo.pdf --uid 0 # Hand an entire directory tree to the default user. olares-cli files chown drive/Home/Pictures/Trip2024/ --uid 1000 -r # Cache namespace. olares-cli files chown cache/<node>/scratch/build/ --uid 1000 -r ``` ## Agent notes - The GET form is cheap — use it before any PUT to show the user the current uid and confirm the change. - Inside `-r`, partial-failure behavior is per-server — on an error the server may have already changed some descendants. **Do NOT retry blindly**; re-run the GET form on a few sampled paths to see what landed. ## Common errors | Symptom | Cause | Fix | |---|---|---| | `chown is not supported for this namespace` | sync / external / cloud target | Use `files repos` (sync) or LarePass GUI (external) | | `refusing to chown a volume root` | `drive/Home/` / `drive/Data/` / `cache/<node>/` | Pick a sub-path | | 403 from server | Server-side ACL rejection | Confirm via `files ls -ld` (when available) or LarePass that the active user has permission |
references/olares-files-cp-mv.md
# files cp / files mv
> **Prerequisite:** Read [`../../olares-shared/SKILL.md`](../../olares-shared/SKILL.md) and the parent [`../SKILL.md`](../SKILL.md) first.
> **Flags & wire shape:** `olares-cli files cp --help` and `olares-cli files mv --help`.
Copy / move one or more entries between locations. Same wire endpoint (`PATCH /api/paste/<node>/`), different `action`. Cross-volume (drive ↔ sync ↔ external) is supported.
## Safety constraints
- **Destructive (mutates the server) — confirm intent with the user.** `mv` even more so since the source is removed.
- **`<dst> MUST end with `/` (drop-into-directory mode).** Each `<src>`'s basename is appended; preserves the dir / file marker.
- **Renaming via `cp` / `mv` is not supported** — use `files rename` for in-place basename changes, or rename first and then `mv`.
- **Directory sources require `-r`** (Unix-style refusal otherwise).
- **`mv` source rejects protected names** ([quirk #4](../SKILL.md#4-drivehomepictures-music-movies-downloads-documents-code-cache-data-home-ollama-huggingface-are-system-managed)): `mv drive/Home/Pictures/ ...` is refused because moving would unlink a dir that apps depend on. **`cp` (copy) is intentionally NOT gated** — duplicating bytes (e.g. `cp -r drive/Home/Pictures/ drive/Home/Pictures-Backup/`) preserves the original and is fine.
- **`external/<node>/` destinations are rejected** ([quirk #3](../SKILL.md#3-externalnode-is-a-virtual-volume-listing-layer-read-only)) — point at `external/<node>/<volume>/<sub>/`.
## Examples
```bash
# One file → directory.
olares-cli files cp drive/Home/notes.md drive/Home/Documents/
# Recursive directory copy.
olares-cli files cp -r drive/Home/Photos/ drive/Home/Backups/
# Multiple sources into a directory.
olares-cli files cp drive/Home/a.pdf drive/Home/b.pdf drive/Home/Archive/
# Cross-volume (drive → sync repo).
olares-cli files cp drive/Home/notes.md sync/<repo_id>/inbox/
# Move (mv replaces cp where source removal is intended).
olares-cli files mv drive/Home/notes.md drive/Home/Archive/
olares-cli files mv -r drive/Home/Photos/ drive/Home/Backups/
```
## Preflight existence check
Runs BEFORE any PATCH is sent:
- Each `<src>` MUST exist on the server, AND its trailing-slash form must match the actual file/dir kind.
- `<dst>` MUST exist as a directory on the server. **Create it first with `files mkdir -p` if needed** — `cp`/`mv` does NOT auto-create the destination (the auto-rename quirk #1 would land you in `<dst> (1)`).
A typo on either side aborts before the server's task queue sees it.
## Node selection (`--node`)
Each PATCH carries a `{node}` URL segment. Default cascade:
1. `--node` override (per invocation)
2. External / Cache `<extend>` (when the destination is `external/<node>/` or `cache/<node>/` — the GUI's `dst_node || src_node || default` cascade)
3. First entry from `/api/nodes/`
Use `--node` only when you have a specific multi-node deployment with areferences/olares-files-download.md
# files download > **Prerequisite:** Read [`../../olares-shared/SKILL.md`](../../olares-shared/SKILL.md) and the parent [`../SKILL.md`](../SKILL.md) first. > **Flags & wire shape:** `olares-cli files download --help`. Download a file or directory tree from the per-user files-backend. ## Safety constraints - **Without `--resume` or `--overwrite`, the command refuses to clobber an existing local file** — confirm intent with the user before suggesting `--overwrite`. - `--overwrite` writes to `<dst>.tmp` then renames, so the previous version stays intact until the new bytes land — safe to suggest after the user confirms. - Directory mode mirrors the remote tree under the local destination; the remote root's own basename becomes the top-level directory (matches the LarePass folder-download UX). ## Examples ```bash # One file into the current directory. olares-cli files download drive/Home/Documents/report.pdf # Same, but pick a different local name. olares-cli files download drive/Home/Documents/report.pdf ./Q1.pdf # Resume an interrupted download (server-driven Range; O_APPEND on the local file). olares-cli files download drive/Home/Backups/big.tar ./big.tar --resume # Recursively pull a folder, 4 files at a time (default). olares-cli files download drive/Home/Documents/ ./out/ --parallel 4 ``` ## Agent notes - **`Stat` always lists the parent directory** and finds the leaf in the items array — this is a workaround for [quirk #2](../SKILL.md#2-get-apiresourcesfile-no-trailing-slash-returns-http-500). You never need to suggest "just GET the file URL"; the CLI already handles it. - **Single-file resume** uses server-driven `Range: bytes=<localSize>-` — there is no sidecar progress file. A Ctrl-C + re-run keeps making forward progress as long as the local file is preserved. - **Directory downloads parallelize FILES, not chunks** — each file's bytes still stream sequentially. `--parallel N` bounds concurrent file fetches. - Empty subdirectories are mirrored locally so the tree matches even when a directory has no files. ## Common errors | Symptom | Cause | Fix | |---|---|---| | `<dst> exists; pass --overwrite or --resume` | Local target already on disk | Confirm with user, then `--overwrite` (replace) or `--resume` (continue) | | `HTTP 500` from a raw resource URL | Quirk #2 — the bare file URL embeds bytes in JSON | Use this verb (which Stats via parent), not a manual `curl` | | 401/403 | Token rotation or invalidation | See [`../../olares-shared/SKILL.md`](../../olares-shared/SKILL.md) |
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/olares/skills/olares-files",
"sourceUrl": "https://clawhub.ai/olares/skills/olares-files",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T17:09:02.307Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-olares-olares-files/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-olares-olares-files/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-11T17:09:02.307Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1K downloads",
"href": "https://clawhub.ai/olares/olares-files",
"sourceUrl": "https://clawhub.ai/olares/olares-files",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T17:09:02.307Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "4.0.1",
"href": "https://clawhub.ai/olares/olares-files",
"sourceUrl": "https://clawhub.ai/olares/olares-files",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-05-29T05:54:34.377Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-olares-olares-files/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-olares-olares-files/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 4.0.1",
"description": "Migrate ownership from @pengpeng to @olares (no content change vs 4.0.0)",
"href": "https://clawhub.ai/olares/olares-files",
"sourceUrl": "https://clawhub.ai/olares/olares-files",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-05-29T05:54:34.377Z",
"isPublic": true
}
]
}Record generated Oct 11, 2026.
