NAME
punk - the Punk command line
SYNOPSIS
punk new MyApp # generate a new application
punk new MyApp --kit diy # ...or a whole one, from an installed kit
punk routes # the compiled routing table
punk api sync # stubs for operations added to the spec
punk config check # resolve configuration and every secret
punk doctor # versions, C ABIs, application health
punk console # a REPL with the application compiled
punk dev # Hyperman with restart-on-change
punk help [command] # generated from each command's declaration
DESCRIPTION
The command line for Punk applications. Except for new, every command finds the application by walking up from the current directory looking for app.psgi, and takes the class from that file's Class->to_app.
Help is generated from each command's declared options, so punk help X and punk X --help always match what the command actually accepts. Exit codes: 0 success, 1 something is wrong with the application or its environment, 2 the command was used wrongly.
Commands live in Punk::Command, which also documents how a plugin distribution adds its own subcommand.
KITS
punk new MyApp --kit NAME generates through Punk::Kit::<Name> instead of the basic skeleton - a distribution's own generator, handing you a whole working application rather than a welcome page. A kit brings its own options, which punk new --kit NAME --help lists under the command's.
Kits ship in their own distributions; "KITS" in Punk::Generate is how one is written.
ENVIRONMENT
PUNK_ENV selects the environment (production when unset). punk dev sets it to development for the server it runs unless already set.
SEE ALSO
Punk, Punk::Command, Punk::Generate.
AUTHOR
LNATION <email@lnation.org>
LICENSE AND COPYRIGHT
This software is Copyright (c) 2026 by LNATION <email@lnation.org>.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)