﻿---
title: assemble cli command
description: Do a full assembler clone, build, and optional serving of the full documentation in one step. This command is shorthand for running the following in sequence:...
url: https://docs-v3-preview.elastic.dev/docs-builder/cli/assemble
products:
  - Elastic Docs Builder
---

# assemble cli command
```bash
docs-builder assemble [options]
```

Do a full assembler clone, build, and optional serving of the full documentation in one step.
This command is shorthand for running the following in sequence:
```bash
docs-builder assembler clone
docs-builder assembler build
docs-builder assembler serve
```


## Options

<definitions>
  <definition term="--[no-]strict">
    Treat warnings as errors.
  </definition>
  <definition term="--environment string">
    Named deployment target, e.g. dev, staging, production. Determines which configuration branch and index names are used.
  </definition>
  <definition term="--[no-]metadata-only">
    Write only metadata files; skip HTML generation. Ignored when --exporters is also set.
  </definition>
  <definition term="--[no-]show-hints">
    Print documentation hints emitted during the build.
  </definition>
  <definition term="--exporters string">
    Comma-separated list of exporters to run.
  </definition>
  <definition term="--[no-]assume-build">
    Skip the build step when .artifacts/docs/index.html already exists. Intended for test scenarios only.
  </definition>
  <definition term="--[no-]fetch-latest">
    Fetch the HEAD of each branch instead of the pinned link-registry ref.
  </definition>
  <definition term="--[no-]assume-cloned">
    Skip cloning; assume repositories are already on disk. Useful for iterating on the build.
  </definition>
  <definition term="--[no-]serve">
    Serve the site on port 4000 after a successful build.
    **Default:** `false`
  </definition>
  <definition term="-l --log-level enum">
    Minimum log level.
    **Values:** trace, debug, information, warning, error, critical, none
    **Default:** `information`
  </definition>
  <definition term="-c --config-source enum">
    Override the configuration source: local, remote
    **Values:** local, remote, embedded
  </definition>
  <definition term="--[no-]skip-private-repositories">
    Skip cloning private repositories
  </definition>
</definitions>


## Using a local workspace

Where this command really shines is when you want to create a temporary workspace folder to validate:
- changes to [site wide configuration](https://docs-v3-preview.elastic.dev/docs-builder/configure/site).
- changes to one or more repositories and their effect on the assembler build.

To do that inside an empty folder, call:
```bash
docs-builder assembler config init --local
docs-builder assemble --serve
```

This will source the latest configuration from [the `config` folder on the `main` branch of `docs-builder`](https://github.com/elastic/docs-builder/tree/main/config)
and place them inside the `$(pwd)/config` folder.
Now when you call `docs-builder assemble` rather than using the embedded configuration, it will use the local one you just created.
You can be explicit about the configuration source to use:
```bash
docs-builder assembler config init --local
docs-builder assemble --serve -c local
```