A modular toolkit for detecting AI-assisted responses in crowdsourced behavioral research.
slopit provides tools to capture and analyze behavioral signals during text entry tasks, helping researchers identify potentially AI-assisted responses in crowdsourced studies.
TypeScript packages for client-side behavioral capture in web experiments:
- Keystroke dynamics (timing, patterns)
- Paste event detection
- Focus/blur tracking
- Platform adapters for jsPsych, lab.js, PsychoJS, Gorilla, JATOS, OSWeb, PCIbex
Python package for server-side analysis:
- Behavioral feature extraction
- Stylometric analysis
- Machine learning classifiers
- TypeScript Documentation: Behavioral capture packages
- Python Documentation: Analysis toolkit
npm install @slopit/behavioral @slopit/adapter-jspsychimport { SlopitExtension } from "@slopit/adapter-jspsych";
const jsPsych = initJsPsych({
extensions: [{ type: SlopitExtension }],
});pip install slopitfrom slopit import Session
session = Session.from_json(data)
features = session.extract_features()| Package | Description |
|---|---|
| @slopit/core | Core types, schemas, and validation |
| @slopit/behavioral | Behavioral event capture |
| @slopit/adapter-jspsych | jsPsych integration |
| @slopit/adapter-labjs | lab.js integration |
| @slopit/adapter-psychojs | PsychoJS/Pavlovia integration |
| @slopit/adapter-gorilla | Gorilla integration |
| @slopit/adapter-jatos | JATOS integration |
| @slopit/adapter-osweb | OSWeb/OpenSesame integration |
| @slopit/adapter-pcibex | PCIbex integration |
| @slopit/adapter-vanilla | Framework-agnostic adapter |
| @slopit/adapter-shared | Shared adapter utilities |
| Package | Description |
|---|---|
| slopit | Analysis toolkit |
- Node.js >= 22
- pnpm >= 9
- Python >= 3.13
- uv (Python package manager)
# Install Node dependencies
pnpm install
# Install Python dependencies
cd python && uv sync --extra dev# Build all packages
pnpm build
# Run tests
pnpm test
# Type check
pnpm typecheck
# Lint
pnpm lintSee CONTRIBUTING.md for development guidelines.
This project was architected and implemented with the help of Claude Code.