Skip to content
/ mops Public

Package manager for the Motoko programming language

License

Notifications You must be signed in to change notification settings

ZenVoich/mops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5184ee4 · Mar 21, 2025
Mar 21, 2025
Mar 21, 2025
Mar 22, 2024
Feb 20, 2025
Aug 28, 2024
Jan 23, 2025
Sep 10, 2024
Mar 21, 2025
Mar 21, 2025
Feb 13, 2025
Mar 21, 2025
Oct 7, 2024
Jul 12, 2024
May 23, 2023
Jul 10, 2024
Mar 25, 2024
Oct 16, 2023
Feb 14, 2025
Feb 13, 2023
Feb 14, 2025
Jul 10, 2024
Dec 10, 2024
Oct 4, 2024
Mar 21, 2025
Aug 22, 2024
Mar 26, 2024
Jul 29, 2024

Repository files navigation

Mops

Mops is a package manager for the Motoko programming language.

Setup

1. Check system requirements

2. Install CLI tool

curl -fsSL cli.mops.one/install.sh | sh

or

npm i -g ic-mops

Install Packages

1. Configure dfx.json

Add mops as a packtool to your dfx.json

{
  "defaults": {
    "build": {
      "packtool": "mops sources"
    }
  }
}

2. Initialize

Run this command in the root directory of your project (where is dfx.json placed)

mops init

3. Install Motoko Packages

Use mops add <package_name> to install a specific package and save it to mops.toml

mops add base

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

4. Import Package

Now you can import installed packages in your Motoko code

import PackageName "mo:<package_name>";

for example

import Itertools "mo:itertools/Iter";

Publish a Package

1. Import Identity

Create new identity to publish packages

dfx identity new mops

Import identity into mops

mops user import -- "$(dfx identity export mops)"

2. Initialize

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.

3. Publish

Publish package to the mops registry!

mops publish

Built for the Supernova Hackathon