Scroll to navigation

JEKYLL(1) User Commands JEKYLL(1)


jekyll - blog-aware, static site generator


jekyll command [options...]


It requires the jekyll-docs plugin to be installed.
This command allows one to import blog content from various resources as markdown files into the Jekyll ./_post/ and ./_drafts/ structure. It requires the jekyll-import plugin to be installed.
new [PATH]
Creates a new Jekyll site scaffold in PATH.
b, build
Build the site from its sources and put the results into the destination directory.
s, serve, server
Serve the site locally.
doctor, hyde
Search site and print specific any deprecation or configuration issues.
Remove the destination directory.
Creates a new Jekyll theme scaffold
help [COMMAND]
Show the help message, optionally for a given subcommand.

Plugins like jekyll-compose can provide more commands then documented here.


There are some general flags to control Jekyll's behavior:
-s, --source [DIR]
Source directory (defaults to ./). This can also be set in _config.yml via the source: option.
-d, --destination [DIR]
Destination directory (defaults to ./_site). This can also be set in _config.yml via the destination: option.
-p, --plugins PLUGINS_DIR1[,PLUGINS_DIR2[,...]]
Plugins directory (defaults to ./_plugins).
Safe mode (defaults to false). This disables custom plugins, and ignores links. This can also be set in _config.yml via the safe: option.
--layouts DIR
Layouts directory (defaults to ./_layouts).
Generate a Liquid rendering profile.
-h, --help
Show the help output.
-v, --version
Print the name and version
-t, --trace
Show the full backtrace when an error occurs.


The following options control a new site's creation.
Create just the site scaffolding but with empty files.
Force creation of the site even if the default or given destination PATH already exists.
Skip 'bundle install' which is run by default.


The following options control the build command.
Use one or more (custom) configuration files instead of or together with _config.yml. Settings specified in later files override earlier definitions.
-b, --baseurl URL
Serve the website from the given base URL.
-I, --incremental
Enable incremental rebuilds. Only generate documents and pages that were updated since the previous build. The file .jekyll-metadata keeps track of both file modification times and inter-document dependencies.
-w, --[no-]watch
Watch for changes and rebuild the changed sites from source. This
--limit_posts MAX_POSTS
Limit the number of posts to parse and publish.
Publish posts or collection documents with a future date.
-D, --drafts
Process and render posts in the _drafts folder (defaults to no).
Render posts that are marked as unpublished (defaults to no).
Force watch to use polling.
Use a Latent Semantic Indexer (LSI) like classifier-reborn for an improved related posts feature.
Fail the build if errors are present in the front matter.
-q, --quiet
Silence output.
-V, --verbose
Print verbose output.


Serving a site all options to the build command are supported together with these additional options.
-H, --host [HOST]
Local server hostname to listen to. The default is or localhost.
-P, --port [PORT]
Local server port to bind to. The default is 4000.
--ssl-cert [CERT]
X.509 (SSL) certificate.
--ssl-key [KEY]
X.509 (SSL) private key.
-B, --detach
Run the server in the background.
Skip initial site build which occurs before the server is started.
-o, --open-url
Launch the site in a browser.
Show a directory listing instead of loading the index file.
-l, --livereload
Use LiveReload to automatically refresh the browser.
--livereload-ignore ignore GLOB1[,GLOB2[,...]]
Files for LiveReload to ignore. The values must be quoted so the shell won't expand them.
--livereload-min-delay [SECONDS]
Minimum reload delay.
--livereload-max-delay [SECONDS]
Maximum reload delay.
--livereload-port [PORT]
Port for LiveReload to listen on.


The following options control the new-theme command.
-c, --code-of-conduct
Include a Code of Conduct (defaults to false).


The main configuration is done by default in the file _config.yml. This file can control both Jekyll's behavior (see OPTIONS) and site/theme configuration variables. If the configuration shall be split or a non-default file shall be used one can use the --config switch to define all configuration files.

See <> and <>.


This environment variable defaults to development and can be checked during build via conditional statements to influence the output for example. It usually only affects the build and serve commands. The other well known value is production, but really any value can be assigned.

See <>.


There is extensive documentation at <>.


This manual page was originally written by Youhei SASAKI <>, for the Debian GNU/Linux system (but may be used by others). It was later updated by Daniel Leidert <>

January 2020 Jekyll 3.8