Yak Command Line Tool Reference

A reference for the Yak command line tool.

The Yak command line tool is included with Rhino 7 WIP. On Windows the tool is located at "C:\Program Files\Rhino 7\System\yak.exe". On macOS there is a convenience script at "/Applications/Rhino 7.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
  • Since 0.9: Appends distribution tag to filename and expands $version placeholder
  • Since 0.10.1: Adds --platform argument

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

Usage: yak build [options]

    --platform PLATFORM  The platform where the package will run ('win', 'mac' or 'any')
    -h, --help           Get help (equivalent to `yak help 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: Command added
  • Since 0.10: User registered during login

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

Usage: yak login [options]

    --ci              Generate a non-expiring API key and display it
    -s, --source URL  Package repository location [default: https://yak.rhino3d.com/].
    -h, --help        Get help (equivalent to `yak help login`)

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

During login, the user is registered on the server.


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.

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

A package with no visible versions will not appear in search results.


Since 0.10

Adds, removes of lists the owners of a package. Package owners can push new versions of the package and (un)yank existing versions.

    yak owner add [--source=URL] <package> <email>
    yak owner remove [--source=URL] <package> <email>
    yak owner list [--source=URL] <package>
    -h, --help
    -s, --source URL  Package repository location [default: https://yak.rhino3d.com/].

New owners can do everything that the original owner can do. Please bear this in mind!