rpk generate app

Generate a sample application to connect with Redpanda.

This command generates a starter application to produce and consume from the settings defined in the rpk profile. Its goal is to get you producing and consuming quickly with Redpanda in a language that is familiar to you.

By default, this will run interactively, prompting you to select a language and a user with which to create your application. To use this without interactivity, specify how you would like your application to be created using flags.

The --language option allows you to specify the language. There is no default.

The --new-sasl—​user flag allows you to generate a new SASL user with admin ACLs. If you don’t want to use your current profile user or don’t want to create a new one, you can use the --no-user flag to generate the starter app without the user.

If you are having trouble connecting to your cluster, you can use the common -X admin.hosts=<host:ports> flag to pass a specific Admin API address.


  • Generate an app with interactive prompts:

    rpk generate app
  • Generate an app in a specified language with the existing SASL user:

    rpk generate app --language <lang>
  • Generate an app in the specified language with a new SASL user:

    rpk generate app -l <lang> --new-sasl-user <user>:<password>
  • Generate an app in the tmp directory, but take no action on the user:

    rpk generate app -l <lang> --no-user --output /tmp


rpk generate app [flags]


Value Type Description

-h, --help


Help for app.

-l, --language


The language you want the code sample to be generated with.



If provided, rpk will generate and use these credentials (<user>:<password>).



Generates the sample app without SASL user.

-o, --output


The path where the app will be written.



Redpanda or rpk config file; default search paths are ~/.config/rpk/rpk.yaml, $PWD, and /etc/redpanda/redpanda.yaml.

-X, --config-opt


Override rpk configuration settings; '-X help' for detail or '-X list' for terser detail.



rpk profile to use.

-v, --verbose


Enable verbose logging.