MoodlIA Sync
Copies reviewed course content between different Moodle sites without backup files.

Here for one clear job.
A command-line tool for one-way, no-backup course synchronization across Moodle 4.5 and later sites. Each site may use MoodlIA, Moodle Core services, or both. Nothing is written until a person approves the exact plan.
Open the npm package01
What it helps with
- Plans read-only, then applies only an approved plan with a matching digest
- Chooses MoodlIA or Moodle Core per capability for each site
- Supports durable status, cancellation, reconciliation, conflicts, verification, and history
02
A good fit for
- Administrators keeping a master course in step with copies on other sites
- Moving a course from a staging Moodle to production
- Mixed Moodle versions or sites where only one endpoint has MoodlIA
03
What you need
- Node.js 22.13 or later
- Separate limited REST credentials for every Moodle site
- Permission to build the better-sqlite3 module when npm asks
How installation and use work.
MoodlIA Sync never uses Moodle backup files and never copies submissions, grades awarded, or logs.
Set it up once
- Ask a colleague who uses command-line tools to install MoodlIA Sync.
- Describe each Moodle site in a profile file; keep tokens in environment variables.
- Use a test course as the target for the first run.
Try one small thing
- Create a read-only plan between the two courses.
- Review every action, gap, and conflict in the plan.
- Approve that exact plan, apply it, and check the target course in Moodle.
CONCRETE STEPS
Install MoodlIA Sync
Use this developer preview between a source course and a target course you are allowed to change.Install the command
npm may ask you to approve the native SQLite module the first time.
Open MoodlIA Sync on npmnpm install -g moodlia-sync npm approve-scripts better-sqlite3Create a read-only plan
Describe both sites in .moodle-profiles.json, then plan. Nothing is written.
moodlia-sync plan --source-profile school_a --source-course-id 42 --target-profile school_b --target-course-id 81 --plan-file plan.jsonApprove and apply
After reviewing plan.json, approve that exact plan and apply it with the digest it printed.
moodlia-sync approve plan.json --yes moodlia-sync apply plan.json --plan-digest sha256:... --allow-writeVerify
Check the target by live readback; planning again should report no actions.
moodlia-sync verify --plan-id <plan_id>
Want help with MoodlIA Sync?
Tell us what you are trying to achieve. We can help you choose, start, configure, or troubleshoot the right MoodlIA project.
Write to contact@moodlia.com