/install mal-updater
MAL-Updater
Treat {baseDir} as the skill root. This repository is the skill package.
Core model
- Keep business logic in the repo-local Python CLI.
- Keep runtime state outside the skill tree under the workspace runtime root
.MAL-Updater/unless the operator explicitly overrides paths. - Do not assume host-specific absolute paths, IPs, or preexisting local copies under
~/.openclaw/workspace/skills/. - For new installs or portability audits, start with
bootstrap-auditbefore doing any live auth or sync work. - Prefer the long-lived user-systemd daemon over timers or OpenClaw cron for unattended operation.
Bootstrap / onboarding workflow
cd {baseDir}- Run
PYTHONPATH=src python3 -m mal_updater.cli bootstrap-audit - Read
{baseDir}/references/bootstrap-onboarding.md - Use the audit output to:
- verify required binaries
- check whether provider-specific optional transport/runtime extras are missing
- confirm the external runtime layout under
.MAL-Updater/ - identify which user-provided secrets/app settings are still missing for MAL and any enabled source providers
- verify the secrets location is outside version control and suitable for restrictive local permissions
- decide whether the repo-owned user-systemd daemon can be installed on this host
- If bootstrap is incomplete, guide the user through the missing steps instead of pretending install is finished.
- Prompt for provider credentials only when the workflow reaches that provider's bootstrap step; do not request Crunchyroll or HIDIVE secrets preemptively if the user has not chosen or enabled that provider yet.
How to access backend data / operator surfaces
For the most common operator/data tasks, use the repo-local CLI from {baseDir}:
Read-only inspection
PYTHONPATH=src python3 -m mal_updater.cli statusPYTHONPATH=src python3 -m mal_updater.cli bootstrap-auditPYTHONPATH=src python3 -m mal_updater.cli service-statusPYTHONPATH=src python3 -m mal_updater.cli service-run-oncePYTHONPATH=src python3 -m mal_updater.cli health-check --format summary
Recommendations / recommendation-related data
PYTHONPATH=src python3 -m mal_updater.cli recommend --limit 20PYTHONPATH=src python3 -m mal_updater.cli recommend --limit 20 --flatPYTHONPATH=src python3 -m mal_updater.cli recommend-refresh-metadata
Review queue / mapping triage
PYTHONPATH=src python3 -m mal_updater.cli list-review-queue --summaryPYTHONPATH=src python3 -m mal_updater.cli review-queue-next --issue-type mapping_reviewPYTHONPATH=src python3 -m mal_updater.cli review-queue-worklist --issue-type mapping_review --limit 5PYTHONPATH=src python3 -m mal_updater.cli list-mappings
Sync planning / guarded execution
PYTHONPATH=src python3 -m mal_updater.cli dry-run-sync --provider all --limit 20 --approved-mappings-onlyPYTHONPATH=src python3 -m mal_updater.cli apply-sync --limit 0 --exact-approved-only --executePYTHONPATH=src python3 -m mal_updater.cli provider-fetch-snapshot --provider crunchyroll --out .MAL-Updater/cache/live-crunchyroll-snapshot.json --ingestPYTHONPATH=src python3 -m mal_updater.cli provider-fetch-snapshot --provider hidive --out .MAL-Updater/cache/live-hidive-snapshot.json --ingest
Operational workflow
Prefer read-only inspection before live writes.
Read-only first:
statusbootstrap-audithealth-checkservice-statusservice-run-oncelist-mappingslist-review-queue --summarydry-run-syncrecommend
Treat these as state-changing:
mal-auth-loginmal-refreshprovider-auth-login --provider crunchyrollprovider-auth-login --provider hidiveprovider-fetch-snapshot --provider \x3Cprovider> --ingestapply-sync --executescripts/install_user_systemd_units.shinstall-servicerestart-service
High-value references
- Read
{baseDir}/references/bootstrap-onboarding.mdfor install/onboarding/bootstrap expectations. - Read
{baseDir}/references/cli-recipes.mdfor copy/paste command patterns. - Read
{baseDir}/references/data-surfaces.mdfor a concise map of which backend commands expose recommendations, review-queue state, service/runtime state, and guarded sync surfaces.
Guardrails
- Keep sync behavior conservative; do not invent broader write scope than the CLI already supports.
- Prefer
dry-run-syncbeforeapply-sync --executeunless the task explicitly asks for a live apply. - Treat Crunchyroll auth/fetch instability as real residue; document it plainly.
- Treat staged provider credentials and long-lived tokens as sensitive local files; keep them out of version control and prefer restrictive local permissions.
- When a host cannot satisfy the unattended daemon path, say so clearly instead of silently skipping service setup.
- Recommend manual review before enabling unattended daemon operation on a host that matters.
- Keep outputs short and actionable: counts, blockers, next command, and whether user input is needed.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install mal-updater - After installation, invoke the skill by name or use
/mal-updater - Provide required inputs per the skill's parameter spec and get structured output
What is MAL-Updater?
Multi-provider anime → MyAnimeList sync and recommendations skill with guarded auth, review-queue triage, health checks, bootstrap auditing, and user-systemd... It is an AI Agent Skill for Claude Code / OpenClaw, with 206 downloads so far.
How do I install MAL-Updater?
Run "/install mal-updater" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is MAL-Updater free?
Yes, MAL-Updater is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does MAL-Updater support?
MAL-Updater is cross-platform and runs anywhere OpenClaw / Claude Code is available (linux).
Who created MAL-Updater?
It is built and maintained by kklouzal (@kklouzal); the current version is v0.1.6.