Mops is a package manager for the Motoko programming language.
- Node.js >= 22.0.0
Mops downloads and manages the Motoko toolchain itself. It does not need dfx, and does not support it.
curl -fsSL cli.mops.one/install.sh | sh
or
npm i -g ic-mops
Run this command in the root directory of your project
mops init
Every command that compiles uses the moc pinned in mops.toml
mops toolchain use moc latest
Use mops add <package_name> to install a specific package and save it to mops.toml
mops add core
You can also add packages from GitHub like this
mops add https://github.com/dfinity/motoko-base
For GitHub-packages you can specify branch, tag, or commit hash by adding #<branch/tag/hash>
mops add https://github.com/dfinity/motoko-base#moc-0.9.1
You can also add local packages like this (put source files inside src directory)
mops add ./shared
Use mops install to install all packages specified in mops.toml
mops install
Now you can import installed packages in your Motoko code
import PackageName "mo:<package_name>";for example
import Itertools "mo:itertools/Iter";Import an existing secp256k1 or Ed25519 private key into mops
mops user import -- "$(icp identity export mops)"
Run this command in your package root and select type "Package"
mops init
Edit description and repository fields in mops.toml file.
Write your package code in *.mo source files in the src/ directory.
Create README.md file with information on how to use your package.
Publish package to the mops registry!
mops publish
Built for the Supernova Hackathon