---
title: pack init
versions:
fpt: '*'
ghae: '*'
ghec: '*'
ghes: '*'
topics:
- Advanced Security
- Code scanning
- CodeQL
type: reference
product: '{% data reusables.gated-features.codeql %}'
autogenerated: codeql-cli
intro: '[Experimental] Initializes a qlpack in the specified directory.'
---
{% data reusables.codeql-cli.man-pages-version-note %}
## Synopsis
```shell{:copy}
codeql pack init [--dir=
] [--extractor=] ... --
```
## Description
\[Experimental] Initializes a qlpack in the specified directory.
The pack will be created in a child directory of the specified
directory.
## Primary options
#### ``
\[Mandatory] The scope and name of the pack to create. Scope is only
required if this pack is to be published.
#### `--version=`
Initial version of the pack.
#### `-d, --dir=`
The directory to create the pack in. Defaults to current working
directory.
#### `-e, --extractor=`
The extractor to use for this qlpack. Only useful if this pack contains
tests.
### Common options
#### `-h, --help`
Show this help text.
#### `-J=`
\[Advanced] Give option to the JVM running the command.
(Beware that options containing spaces will not be handled correctly.)
#### `-v, --verbose`
Incrementally increase the number of progress messages printed.
#### `-q, --quiet`
Incrementally decrease the number of progress messages printed.
#### `--verbosity=`
\[Advanced] Explicitly set the verbosity level to one of errors,
warnings, progress, progress+, progress++, progress+++. Overrides `-v`
and `-q`.
#### `--logdir=`
\[Advanced] Write detailed logs to one or more files in the given
directory, with generated names that include timestamps and the name of
the running subcommand.
(To write a log file with a name you have full control over, instead
give `--log-to-stderr` and redirect stderr as desired.)