---
date: "2019-03-31:00:00+01:00"
title: "Adding new cli commands"
draft: false
type: "doc"
menu:
  sidebar:
    parent: "development"
---

# Adding new cli commands

All cli-related functions are located in `pkg/cmd`.
Each cli command usually calls a function in another package.
For example, the `vikunja migrate` command calls `migration.Migrate()`. 

Vikunja uses the amazing [cobra](https://github.com/spf13/cobra) library for its cli.
Please refer to its documentation for informations about how to use flags etc.

To add a new cli command, add something like the following:

{{< highlight golang >}}
func init() {
	rootCmd.AddCommand(myCmd)
}

var myCmd = &cobra.Command{
	Use:   "My-command",
	Short: "A short description about your command.",
	Run: func(cmd *cobra.Command, args []string) {
		// Call other functions
	},
}
{{</ highlight >}}