---
name: "dub-init"
section: "1"
platform: "linux"
package: "dub"
version: "1.42.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/dub-init"
---

# dub-init(1)

Initializes an empty package skeleton

## NAME

dub-init - Initializes an empty package skeleton

## SYNOPSIS

**dub init** \[\<*directory*\> \[\<*dependency*\>...\]\] *OPTIONS...* \[-- \<*application arguments...*\>\]

## DESCRIPTION

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.

## OPTIONS

- **-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)](/dub/1.md)

## EXIT STATUS

- **0**

  DUB succeeded

- **1**

  usage errors, unknown command line flags

- **2**

  package not found, package failed to load, miscellaneous error

## FILES

*dub.sdl*, *dub.json*

## AUTHOR

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

## ONLINE DOCUMENTATION

http://code.dlang.org/docs/commandline

## SEE ALSO

[**dub**(1)](/dub/1.md), [**dub-add**(1)](/dub-add/1.md), [**dub-convert**(1)](/dub-convert/1.md)
