You can register custom console commands using app.RootCmd.AddCommand(cmd), where cmd is a cobra command.

Here is an example:

package main import ( "log" "github.com/pocketbase/pocketbase" "github.com/spf13/cobra" ) func main() { app := pocketbase.New() app.RootCmd.AddCommand(&cobra.Command{ Use: "hello", Run: func(cmd *cobra.Command, args []string) { log.Println("Hello world!") }, }) if err := app.Start(); err != nil { log.Fatal(err) } }

To run the command you can build your Go application and execute:

# or "go run main.go hello" ./myapp hello

Keep in mind that the console commands execute in their own separate app process and run independently from the main serve command (aka. hook events between different processes are not shared with one another).