Yak Command Line Interface Reference

A reference for the Yak command line tool.

The Yak command line tool is included with Rhino 6. On Windows the tool is located at C:\Program Files\Rhino 6\System\yak.exe. On macOS there is a convenience script at /Applications/Rhinoceros.app/Contents/Resources/bin/yak.


  • Since 0.2: Command added
  • Since 0.4: Supports multiple .gha files, .rhp files or anything else for that matter

When run in a directory containing a valid manifest.yaml file, creates a package containing all files in the directory.

yak build


Since 0.1

Installs a package (optionally with a specific version).

yak install [--source=URL] <package> [<version>]


Since 0.2

Lists the packages installed on the machine.

yak list


Since 0.2

Authenticates with Rhino Accounts and stores a time-limited OAuth2 access token so that the user can use commands which require authentication.

yak login

On Windows, the token is stored in %appdata%\McNeel\yak.yml. On macOS, it is stored in ~/.mcneel/yak.yml.


Since 0.1

Pushes a package to the server.

yak push [--source=URL] <filename>
  • Since 0.1: Command added
  • Since 0.5: Adds --all and --prerelease flags

Searches the server for packages which match query.

Usage: yak search [options] <query>

    --prerelease      Display prerelease package versions
    -a, --all         Display all package versions
    -s, --source URL  Package repository location
    -h, --help        Get help (equivalent to `yak help search`)


  • Since 0.2: Command added
  • Since 0.4: Adds support for inspecting .rhp files (RhinoCommon only)

Creates a skeleton manifest.yml file based on the contents of the current directory. When run in a directory containing a Grasshopper assembly (.gha) or a RhinoCommon plug-in (.rhp) the file will be inspected and used to pre-populate the manifest.yml file.

yak spec


Since 0.1

Uninstalls a package.

yak uninstall <package>


Since 0.6

Removes a version from the package index.

yak yank <package> <version>

Yanked versions do not appear in searches but can still be installed if the exact package version is known. To all intents and purposes they are hidden.

Note, it is not possible to push a package that has been yanked. If you find yourself in this situation, then simply roll the version number of your package and push.