Qinglong Skills

Data & APIs

Manage QingLong (青龙) panel via REST API — cron jobs, environment variables, scripts, dependencies, subscriptions, logs and system operations. Use this skill whenever the user mentions QingLong, 青龙面板, scheduled tasks on a self-hosted panel, or wants to manage cron jobs / env vars / scripts on their QingLong instance, even if they don't say "QingLong" explicitly. Also trigger for requests like "帮我查看定时任务", "添加环境变量", "运行脚本", "禁用任务", "查看日志" when the context is a QingLong panel.

Install

openclaw skills install qinglong-skills

QingLong Panel Skill

Control your QingLong (青龙) scheduled task panel via REST API using scripts/ql.sh.

📦 ClawHub: https://clawhub.ai/nnnnzs/qinglong-skills 📖 GitHub: https://github.com/NNNNzs/qinglong-skills

First time setup? See references/setup.md for installation and credential configuration.

Security note: This skill only communicates with the user's own self-hosted QingLong panel using credentials they provide. It does not access any external services or exfiltrate data.


How to approach user requests

When the user asks to manage their QingLong panel, follow this pattern:

  1. List first, then act — before modifying anything, list the relevant resources so you know the IDs. For example, before disabling a cron job, run cron list to find its ID.
  2. Batch when possible — most commands accept multiple IDs. If the user wants to disable all JD-related env vars, search first then pass all IDs in one call.
  3. Confirm destructive actions — for delete operations, show the user what will be deleted before running the command.
  4. Check logs on failure — if a cron job fails, use cron log <id> to fetch the latest log and surface the error.

Quick Reference

Cron Jobs

scripts/ql.sh cron list                                    # List all
scripts/ql.sh cron get <id>                                # Get detail
scripts/ql.sh cron create --command "task x.js" --schedule "0 0 * * *" --name "Task"
scripts/ql.sh cron update <id> --name "New Name"
scripts/ql.sh cron delete <id>                             # Delete (supports multiple IDs)
scripts/ql.sh cron run <id>                                # Run now
scripts/ql.sh cron stop <id>                               # Stop
scripts/ql.sh cron enable <id> / disable <id>              # Enable / Disable
scripts/ql.sh cron pin <id> / unpin <id>                   # Pin / Unpin
scripts/ql.sh cron log <id>                                # View latest log

Environment Variables

scripts/ql.sh env list                                     # List all
scripts/ql.sh env list "JD"                                # Search by keyword
scripts/ql.sh env create --name "KEY" --value "VALUE" --remarks "note"
scripts/ql.sh env update --id <id> --name "KEY" --value "NEW_VALUE"
scripts/ql.sh env delete <id>
scripts/ql.sh env enable <id> / disable <id>

Scripts

scripts/ql.sh script list                                  # List all
scripts/ql.sh script get --file "test.js"                  # View content
scripts/ql.sh script save --file "test.js" --content "console.log('hi')"
scripts/ql.sh script run --file "test.js"                  # Run
scripts/ql.sh script stop --file "test.js"                 # Stop
scripts/ql.sh script delete --file "test.js"               # Delete

Dependencies

scripts/ql.sh dep list                                     # List all
scripts/ql.sh dep install --name "axios" --type 0          # 0=node, 1=linux, 2=python3
scripts/ql.sh dep reinstall <id>
scripts/ql.sh dep delete <id>

Subscriptions

scripts/ql.sh sub list / run <id> / stop <id> / enable <id> / disable <id> / delete <id>

System

scripts/ql.sh system info                                  # System info
scripts/ql.sh system config                                # System config
scripts/ql.sh system check-update                          # Check updates
scripts/ql.sh system reload                                # Reload
scripts/ql.sh system command-run --command "task test.js"  # Run command
scripts/ql.sh system auth-reset --username admin --password newpass

Token Management

scripts/ql.sh token refresh                                # Force refresh
scripts/ql.sh token show                                   # Show cached
scripts/ql.sh token clear                                  # Clear cache

Troubleshooting

SymptomLikely causeFix
401 UnauthorizedWrong credentialsVerify QINGLONG_CLIENT_ID and QINGLONG_CLIENT_SECRET
Connection refusedPanel unreachableCheck QINGLONG_URL is accessible; try curl $QINGLONG_URL
Scope errorMissing API scopeIn QingLong UI → Application → edit app → add the required scope
Token keeps expiringClock skewThe script auto-refreshes; if it loops, run token clear then retry
Command not foundMissing depsEnsure curl and jq are installed: which curl jq

If a cron job fails silently, fetch its log: scripts/ql.sh cron log <id>


API Reference

Full API documentation: references/api.md

ResourceBase path
Cron Jobs/crons
Envs/envs
Scripts/scripts
Dependencies/dependencies
Subscriptions/subscriptions
Logs/logs
System/system
Config Files/configs