Adds paket support to cake.
C# PowerShell Shell
Latest commit cb4b802 Jan 3, 2017 @larzw Release v1.2.1
Failed to load latest commit information.
.paket Basic project setup Nov 1, 2016
Source Release v1.2.1 Jan 4, 2017
docs Release v1.2.1 Jan 4, 2017
.editorconfig added editor config file Nov 7, 2016
.gitattributes (docs) [skip ci] added DocFx manual, api and site. Dec 3, 2016
.travis.yml - Added GitVersion support Jan 1, 2017
LICENSE - Changed default addins and modules group in bootstraper scripts. Nov 28, 2016 updated documentation Jan 4, 2017
appveyor.yml - Added GitVersion support Jan 1, 2017
build.cake [skip ci] (GH 3) Updated documentation. Jan 2, 2017
build.ps1 - Changed default addins and modules group in bootstraper scripts. Nov 28, 2016
paket.dependencies build type Jan 1, 2017
paket.lock build type Jan 1, 2017


Adds Paket support to Cake via a Cake addin and module.

Master Branch

Tool Information Badge
AppVeyor Windows Build AppVeyor branch
Travis CI Linux, OS X Travis branch
DocFX Documentation Documentation Status
Coverall Code Coverage Coveralls branch
NuGet Stable Cake.Paket addin package NuGet
NuGet Stable Cake.Paket.Module module package NuGet
MyGet Pre-Release Cake.Paket addin package MyGet Pre Release
MyGet Pre-Release Cake.Paket.Module module package MyGet Pre Release
Gitter @larzw me for questions Gitter


Allows the use of paket preprocessor directives and commands

// tools
#tool paket:?package=NUnit.ConsoleRunner&group=main
#tool paket:?package=JetBrains.ReSharper.CommandLineTools

// addins
#addin paket:?package=Cake.Figlet&group=build/setup
#addin paket:?package=Cake.Paket


// Restores packages
Task("Paket-Restore").Does(() =>

// Creates a nuget package
Task("Paket-Pack").Does(() =>

// Push a nuget package
Task("Paket-Push").IsDependentOn("Paket-Pack").Does(() =>
    PaketPush("./NuGet/foo.nupkg", new PaketPushSettings { ApiKey = "00000000-0000-0000-0000-000000000000" });


instead of using NuGet

// tools
#tool nuget:?package=NUnit.ConsoleRunner&version=3.4.0
#tool nuget:?package=JetBrains.ReSharper.CommandLineTools

// addins
#addin nuget:?package=Cake.Figlet&version=0.3.1


// Restores packages
Task("NuGet-Restore").Does(() =>

// Creates a nuget pacakge
Task("NuGet-Pack").Does(() =>
    NuGetPack("bar.nuspec", new NuGetPackSettings{OutputDirectory = "./NuGet"});

// Push a nuget pacakge
Task("NuGet-Push").IsDependentOn("Paket-Pack").Does(() =>
    NuGetPush("./NuGet/foo.nupkg", new NuGetPushSettings{ApiKey = "00000000-0000-0000-0000-000000000000"});


Quick Start


If you want to use paket instead of nuget in the preprocessor directive e.g. #tool paket:?package=Cake.Foo and/or #addin paket:?package=Cake.Bar then you need to use Cake.Paket.Module.

  • Get the modified cake bootstrapper script, then create a tools dependency group and add Cake to your paket.dependencies file
    group tools
        nuget Cake
  • Create a modules dependency group and add Cake.Paket.Module to your paket.dependencies file
    group modules
        nuget Cake.Paket.Module
  • Now you can use paket instead of nuget in the preprocessor directive.

Cake.Paket (addin)

If you need to use paket commands such as restore, pack, and push then add #addin paket:?package=Cake.Paket if your using the Cake.Paket.Module, otherwise add #addin nuget:?package=Cake.Paket and #tool nuget:?package=Paket.

Note that if you use #addin nuget:?package=Cake.Paket you can use the cake teams default bootstrappers build.ps1 and/or

Example Project

Cake.Paket.Example is an example project which uses Paket with Cake. Additionally, the project for the paket addin and module is another good resource, see build.cake.


See the Documentation for additional help.


All types of contributions are welcome! Please see the Contributing guidlines.


Feel free to open an issue or @larzw me via Gitter


  • Copyright (c) .NET Foundation and Contributors - Cake icon
  • Copyright (c) 2015 Alexander Groß, Steffen Forkmann - Paket icon
  • Paket icon used with the consent of Paket Team