Skip to content

Pakku Command Reference

aerhazu edited this page Aug 6, 2026 · 3 revisions

Pakku Command Reference

This page covers the Pakku commands used in Lavendre's development workflow, plus two rules specific to this project: how mods get added, and what happens to files that aren't tracked by Pakku.

Command Overview

Category Command Description
Project operations pakku add Add new projects with automatic dependency resolution
pakku rm Remove projects safely with dependency checking
pakku update Update projects individually or in bulk
pakku ls List projects
pakku insp Inspect project details
pakku diff Compare different versions of your modpack
Development environment pakku init Create a new modpack
pakku import Import existing modpacks
pakku fetch Set up or update your development environment
pakku sync Sync your local project files with your modpack
Modpack distribution pakku export Create distribution-ready packages
pakku remote Install a modpack from a Git URL (great for server owners)

For the full command reference, see the official Pakku documentation.


Adding Mods: Modrinth Only via pakku add

Important

In Lavendre, only Modrinth pulls are allowed through pakku add.

This isn't an arbitrary rule, it comes down to how CurseForge's official API works.

Why CurseForge is restricted

CurseForge's official API includes a per-project distribution toggle that mod authors control. When an author disables third-party distribution on their project, the mod becomes unavailable to third-party tools through the API entirely, including Pakku, other modpack managers, and server auto-installers. This isn't a Pakku limitation; it's a restriction CurseForge enforces at the platform level to give authors control over how their work gets distributed and to protect their Author Rewards Points earnings.

In practice, this means:

  • Some CurseForge mods can still be fetched automatically via pakku add.
  • Many others cannot, and will fail or be skipped during pakku fetch.
  • Whether a given mod is fetchable depends entirely on that author's toggle, not on anything Pakku or Lavendre controls.

What this means for contributors

  • Default to Modrinth. If a mod exists on both platforms, add it from Modrinth.
  • If a mod is CurseForge-only, check whether it can still be fetched via the API. If it can't, see the next section.

Handling CurseForge-Only Mods

If a mod only exists on CurseForge and its distribution toggle blocks API access, it cannot be added with pakku add. Instead, it has to be manually bundled into the modpack.

Important

Before bundling any CurseForge-only mod, check the mod's license. It must explicitly allow redistribution. If the author's license doesn't allow redistribution (or says nothing about it), the mod cannot be bundled, no exceptions.

If redistribution is allowed:

  1. Download the mod file directly from its CurseForge page.
  2. Place it in the correct .pakku overrides folder, following the same client/server/shared logic covered in Directory Structure:
    • Client-only mod → .pakku/client-overrides/mods/
    • Shared between client and server → .pakku/overrides/mods/
    • Server-only mod → .pakku/server-overrides/mods/
  3. Note the mod's source and license permission in your commit message or PR description, so it's traceable later.

This keeps the mod working in the modpack without relying on API access Pakku doesn't have permission to use.


pakku fetch and Unregistered Files

Important

Running pakku fetch will automatically delete, without warning, any resource packs, shaders, or mods present in your instance that were not added through Pakku.

This includes files you might assume are safe because they're "required," such as the Mizuno's 16 Craft JE and Mizuno's 16 Craft JE CIT resource packs referenced in Building From Source. If those packs weren't added as a tracked Pakku project, a plain pakku fetch will wipe them out on the next run.

Use pakku fetch shelf instead

If you have resource packs, shaders, or mods in your instance that aren't tracked by Pakku, run:

pakku fetch shelf

Instead of deleting untracked files, this moves them into .pakku/shelf, where they're preserved rather than wiped. You can then copy them back into your instance's resourcepacks, shaderpacks, or mods folder as needed.

When to use pakku fetch shelf:

  • You've manually installed a resource pack or shader that isn't part of the modpack definition.
  • You're testing a CurseForge-only mod locally before deciding whether to bundle it.
  • You're unsure whether everything in your instance is currently tracked by Pakku, and want to be safe before fetching.

When in doubt, shelf it first. A plain pakku fetch gives you no second chance to recover deleted files.