Vessel Installation


It’s been a while since I haven’t used vessel but I tried it yesterday.

So first point:
In order to install Releases · dfinity/vessel · GitHub the only guide is this Download a copy of the vessel binary [from the release page]( or build one yourself which is a bit poor.
So in order to get it I had to run:

  1. wget
  2. chmod +x vessel-linux64
  3. ./vessel-linux64

Simple enough but it would be good to be in the README

Second point:
I noticed the files from the release are not .dmg or .deb so you can’t install them. so in order to run vessel you have to keep a copy in your project root

So if you have more projects you need to keep a copy in each one of them

And the last point:
Previously I had a package-set.json and a vessel.json but it seems that’s not working anymore and you need a package-set.dhall and a vessel.dhall now.

That’s fine but I can’t make it work so my package-set.dhall is

and my vessel.dhall is

{ dependencies = [ "base", "matchers" ], compiler = None Text }
but I get this error:

any help is appreciated


That might be coming from the motoko-matchers package, which has a package-set.dhall itself. This will have a let upstream = ... line at the top where you’ll see the hash it’s checking against.

Did you run vessel init to generate the package-set.dhall for your project first? This should include an upstream entry pointing at kritzcreek’s package set repo instead, try that version and/or working your way up from there.


1 Like

Yeah that’s what I did, I didn’t even changed the files generated by init.
Note: I’m on dfx 0.7.0-beta.3 so they might not be compatible yet

Seems like this has been fixed with this PR `upgrade-set` generates wrong sha256 · Issue #28 · dfinity/vessel · GitHub
Thanks @kritzcreek


I’ve done the 3 steps you mention on the post but getting the error zsh: command not found: vessel I’m on a mac. Any ideas how to fix it?

what PATH did you used?

:thinking: I must have used the default, which one should I use?

You can just add the PATH to the existing one, for example .profile or .zshrc if you are using zsh.

. For linux use:$HOME/bin
For osx: usr/local/bin


Let me slide into this real quick: I’m trying to deploy CAP as per this documentation: Motoko SDK - Getting Started - Documentation | CAP

Running the command dfx deploy cap-motoko-example --argument "(opt \"<Router ID>\")" I’m being prompted with The build step failed for canister 'rrkah-fqaaa-aaaaa-aaaaq-cai' with an embedded error: Failed to invoke the package tool "vessel" "source" the error was: No such file or directory (os error 2).

I have downloaded the vessel-linux64 binary and I’m on Arch Linux. Running ./vessel-linux64 as @Gabriel suggests, doesn’t install the package manager as I’m used to. I don’t have any experience installing executables on Linux but usually I just type ./EXECUTABLE-NAME and it will run an install script. This is the dfx.json for CAP:

  "canisters": {
    "cap-motoko-example": {
      "main": "src/",
      "type": "motoko"
  "defaults": {
    "build": {
      "args": "",
      "packtool": "vessel source"
  "dfx": "0.8.4",
  "networks": {
    "local": {
      "bind": "",
      "type": "ephemeral"
  "version": 1

What am I missing? Could somebody help me out please?

Maybe this helps:

Rename vessel-linux64 to vessel, make sure it’s executable (chmod +x vessel) and move it to usr/local/bin.


Yeah it’s a bit confusing, I’ve created a PR here but it hasn’t been approved:

  1. For Ubuntu in $HOME/bin RUN wget For OSX in usr/local/bin RUN: wget
  2. Rename vessel-linux64 to vessel eg: RUN mv vessel-linux64 vessel
  3. Change permissions, chmod +x vessel