Skip to content

jspsych/metadata

Repository files navigation

metadata

Tools for generating Psych-DS compliant metadata for jsPsych experiments. Point them at a folder of jsPsych data files and they produce a dataset_description.json (plus, for the CLI, a ready-to-share Psych-DS project) describing your experiment and its variables — no more hand-writing the description file.

This is a monorepo (npm workspaces) with three packages:

Package Description
@jspsych/metadata Core library: reads jsPsych data and builds Psych-DS metadata.
@jspsych/metadata-cli Terminal tool for local folders and scripted/automated pipelines.
frontend Browser wizard — upload data, fill in a few fields, download a project.

Quick start (CLI)

Requires Node.js 22 or later.

npx @jspsych/metadata-cli

Running it with no flags launches interactive mode, which walks you through pointing it at a folder of jsPsych data files (.csv, .json, or .jsonl) and writes a self-contained Psych-DS project alongside them (data/, dataset_description.json, README.md, CHANGES.md).

Prefer a browser? The web wizard needs no install — use it at metadata.jspsych.org/wizard.

Documentation

The docs site lives in website/ and is built with Docusaurus on the shared jsPsych docs theme. Once deployed it is available at https://metadata.jspsych.org, with the web wizard (built from packages/frontend) embedded at /wizard. It covers:

Running the docs locally

# From the repo root: install the workspaces and build the core library,
# so the wizard build can resolve the local @jspsych/metadata.
npm ci
npm run build --workspace=@jspsych/metadata

cd website
npm install
npm start      # dev server with hot reload
npm run build  # production build into website/build

npm start and npm run build automatically run npm run build:wizard first, which builds the wizard from packages/frontend into website/static/wizard-app/ (gitignored) so the /wizard page can embed it.

Development

npm install         # from the repo root
npm run build       # build all packages
npm test            # run the full test suite (jest, all workspaces)
npm run typecheck   # tsc --noEmit / tsc -b across all packages

Each package also has its own README.md with package-specific instructions (metadata, cli, frontend).

Contributing

Issues and pull requests are welcome at github.com/jspsych/metadata. Please make sure npm test and npm run typecheck pass before opening a PR.

License

MIT

About

Library and CLI tool to generate Psych-DS compliant metadata for jsPsych experiments

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages