Your company here — click to reach over 10,000 unique daily visitors

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" sub-package 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" sub-package 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.

Common Options

See dub(1)

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-2024 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).

2024-01-24 The D Language Foundation