Memrise
Overview
Use this skill to run memcli safely and produce exact commands for common Memrise course operations. Prefer commands that can be pasted directly, and switch to JSON output when results are consumed by scripts.
Read references/commands.md when you need full command/flag coverage. Read references/example-output.md when you need concrete output examples.
Runbook
-
Confirm installation state.
-
Confirm authentication source (env vars or flags).
-
Run a read-only command first (courses , course-levels , words , search-pool ).
-
For level diagnostics, use course-levels --include-empty to surface empty/draft levels.
-
For automation, append --output json when supported.
-
Before write operations (add-to-course , add-to-level , add-level ), validate the target IDs and fields with read commands.
Installation And Auth
Use package install commands:
npm install -g memrise-cli
or
bun add -g memrise-cli
Use environment variables by default:
export MEMRISE_USERNAME="your_username" export MEMRISE_PASSWORD="your_password" export MEMRISE_CLIENT_ID="your_client_id" # optional
For installed CLI usage with environment credentials:
memcli courses --output json
If running from source during development:
bun run ./dist/index.js courses --output json
Use --username and --password only when explicitly requested.
Common Tasks
Use these as canonical examples:
list teaching courses
memcli courses
list levels (including empty drafts)
memcli course-levels <course-id> --include-empty
list course words
memcli words <course-id>
list words in a level with limit
memcli words <course-id> --level 1 --limit 10
search pool by field
memcli search-pool <pool-id> --field "1=Hello"
add item to course
memcli add-to-course <course-id> --field "1=Hello" --field "2=Bonjour"
When needed, use JSON columns format instead of repeated fields:
memcli add-to-course <course-id> --columns '{"1":"Hello","2":"Bonjour"}'
Output Strategy
Use default human-readable output for interactive use. Use --output json for automation, parsing, and downstream tools.
Safety Checks
Before write operations:
-
Confirm the target object exists (course-by-id , course-levels , get-pool ).
-
Confirm the fields map to the course column layout (course-columns ).
-
Prefer a small test insert in a known sandbox course before bulk updates.
If credentials fail, re-check env var names and whether the user wants explicit --username/--password flags.
Version Notes
Current npm package behavior (verified with memcli --help ):
-
levels|course-levels supports --include-empty .
-
rename-level|set-level-title and delete-level|remove-level are available.
-
Prefer live memcli --help output over stale examples when behavior differs.