dub-init - Man Page

Initializes an empty package skeleton


dub init [<directory> [<dependency>...]] Options... [-- <application arguments...>]


Initializes an empty package of the specified type in the given directory.

By default, the current working directory is used.

Custom templates can be defined by packages by providing a sub-package called "init-exec". No default source files are added in this case.

The "init-exec" subpackage is compiled and executed inside the destination folder after the base project directory has been created.

Free arguments "dub init -t custom -- free args" are passed into the "init-exec" subpackage as app arguments.


-t,  --type=VALUE

Set the type of project to generate. Available types:

minimal - simple "hello world" project (default) vibe.d  - minimal HTTP server based on vibe.d deimos  - skeleton for C header bindings custom  - custom project provided by dub package

-f,  --format=VALUE

Sets the format to use for the package description file. Possible values:
 json (default), sdl

-n,  --non-interactive

Don't enter interactive mode.

Exit Status


DUB succeeded


usage errors, unknown command line flags


package not found, package failed to load, miscellaneous error


dub.sdl, dub.json


Copyright (c) 1999-2023 by The D Language Foundation

Online Documentation


See Also

dub(1), dub-add(1), dub-convert(1)

Referenced By

dub(1), dub-add(1), dub-convert(1).

2023-03-23 The D Language Foundation