Importing & Migrating
You don't have to start from scratch. PsyCloud can import an existing jsPsych experiment, a PsychoJS experiment, or a PsyCloud bundle, converting it to the shared format so you can edit and run it like any other study.
What you can import
| Source | In Studio | Via CLI | Status |
|---|---|---|---|
| jsPsych (6–8) | ✅ | ✅ | Broad coverage; best for 7.x |
| PsychoJS | ✅ | ✅ | Beta / best-effort; use the import wizard format selector |
PsyCloud bundle (.psycloud.zip) | ✅ | ✅ | Full |
PsychoPy Builder (.psyexp) | — | ✅ | Best-effort |
| Raw custom web files | — | Partial | Usually needs manual porting |
jsPsych coverage
The importer maps jsPsych's timeline to PsyCloud's phases/screens, timeline_variables to the
design pipeline, and plugins to components. Most core (keyboard/button/slider/canvas),
survey, and task-specific plugins convert cleanly. Not currently supported: media recording
(audio/video response), eye tracking (webgazer), sketchpad, and a few specialized plugins — these
surface in the import report so you know what needs a manual replacement.
Import gets you a faithful starting point, not a guaranteed byte-for-byte clone. Behavioral equivalence isn't formally proven for every plugin, so review the converted study (especially timing and any flagged plugins) before collecting data.
Import in Studio
In Studio, choose New Study → Import bundle, or open the Import page and pick jsPsych
or Project Bundle. To import a PsychoJS export, open the jsPsych / experiment import wizard,
set Format to PsychoJS, then upload the generated .js file or project archive. Studio
converts the source and drops you into the Author view to review and edit. See
Creating a Study.
Import on the CLI
# Auto-detects jsPsych / PsychoJS / PsychoPy / bundle
psycloud import ./experiment.html --dry-run # validate only, no output
psycloud import ./experiment.html --out ./importedThe output directory contains the converted project plus an import report:
imported/
project.json
study.json
assets/
import/
report.json # machine-readable conversion result
report.md # human-readable summary + warnings
original/ # the source, preserved
Read import/report.md first — it lists what converted, what fell back, and what's unsupported.
See Importers for the compatibility matrix and report fields.
Keep going in code
After importing (or for any study), you can generate idiomatic SDK code and continue in your language of choice:
psycloud export-code ./study.json --lang python -o design.py
psycloud export-code ./study.json --lang r -o design.RThe SDKs ship side-by-side "jsPsych → PsyCloud" example mappings (Stroop, SRT, recognition memory, adaptive, and more) — a fast way to learn the idioms while porting a familiar task.