OpenList File Manager

SkillSearch

Manage files on an OpenList (AList-compatible) cloud storage server. Use when the user wants to list, search, copy, move, rename, delete, upload, or download files on cloud storage managed by OpenList/AList. Triggers on phrases like "openlist", "alist", "manage cloud storage", "network drive", or file operations against a self-hosted file server. Also use when the user mentions Emby, Jellyfin, or media library organization on cloud storage.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the OpenList File Manager skill

What this skill tells your AI

The instructions your AI receives, as published by vaayne/agent-kit in skills/openlist/SKILL.md and read by ahel’s review.

Manage files on an OpenList server via its REST API. OpenList is an AList-compatible multi-storage file listing program.

Setup

{project} is the git repo name (if in a git repo) or the basename of the current working directory.

Copy both SDK and CLI to ~/.agents/sessions/{project}/scripts/, then load env vars:

cp skills/openlist/scripts/openlist_client.py skills/openlist/scripts/openlist.py ~/.agents/sessions/{project}/scripts/
source ~/.zshenv

Environment variables

VariableRequiredNotes
OPENLIST_URLYesBase URL e.g. http://localhost:5244
OPENLIST_TOKENOne of thesePre-issued JWT token (preferred)
OPENLIST_USERNAMEOne of theseUsername for login
OPENLIST_PASSWORDIf USERNAME setPassword for login

Workflow

  1. Verify env vars are set (OPENLIST_URL + auth).
  2. Clarify the target path(s), operation, and any dry-run requirement.
  3. Pick the right approach:
ScenarioApproach
Single operation (ls, rename, mv, mkdir, rm, regex-rename)Bundled CLI directly
Multi-step workflow (mkdir → move → rename → cleanup)Task script importing SDK
Needs dry-run preview of a complex planTask script
Needs retry logic (e.g. Quark async moves)Task script
  1. For task scripts: lint with uvx ruff check --fix, run with uv run --script.
  2. Report results.

Bundled CLI & SDK

  • scripts/openlist_client.pyOpenListClient class + size_fmt helper. Import in custom scripts:
    import sys
    from pathlib import Path
    
    sys.path.insert(0, str(Path(__file__).parent))
    from openlist_client import OpenListClient
    
  • scripts/openlist.py — CLI wrapper covering all endpoints. Run as:
    SCRIPT="uv run --script ~/.agents/sessions/{project}/scripts/openlist.py"
    $SCRIPT ls "/quark/来自:分享/TVs"
    $SCRIPT rename "/path/to/old" "new-name"
    

References

FileWhen to read
references/use-cases.mdEmby/Jellyfin naming, common CLI recipes
references/client-template.mdWriting custom task scripts with SDK
references/api.mdFull API endpoint details

When the user mentions Emby, Jellyfin, or media library organization, read references/use-cases.md first.

Script conventions

  • Save task scripts to ~/.agents/sessions/{project}/scripts/{script_name}.py
  • Always offer --dry-run for destructive operations
  • Print a summary table (via rich.table) before executing
  • Quark storage moves are async — add retry/delay between move and rename steps

Signals

GitHub stars
53
Forks
4
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
openlist
Source
github.com/vaayne/agent-kit