Commands

Every DeepDoc command, what it does, and whether it costs you anything.

Ten commands. Only two of them call an LLM.

CommandWhat it doesCalls an LLM
initWrite .deepdoc.yamlNo
generateScan, plan and write the docsYes
updateRefresh docs after code changesYes, for changed pages
servePreview locallyNo
deployBuild a static siteNo
statusShow what exists and what is staleNo
configRead or write config valuesNo
performanceTiming and token metricsNo
cleanRemove everything DeepDoc createdNo
benchmarkScore planner qualityDepends

init

Creates .deepdoc.yaml in the current repository.

deepdoc init --provider anthropic

--provider is required. Everything else has a sensible default.

FlagDescription
--provideranthropic, openai, azure, ollama, or any LiteLLM alias
--modelDefaults to a sensible model for the provider
--name / --descriptionProject name and description; default to the directory name
--output-dir / --site-dirDefault deepdoc-docs and deepdoc-site
--with-chatbotAlso scaffold the optional Q&A backend
--llm-max-concurrency / --llm-rpm / --llm-tpmRate limits
--context-window-tokensOverride the detected context window

For Google Gemini, run init with any provider and then set the model with deepdoc config set. See Providers.


generate

Scans your code, plans the structure, and writes Markdown. This is the step that costs LLM calls.

deepdoc generate

Refuses to overwrite existing DeepDoc-managed docs unless you say so:

deepdoc generate --force   # refresh existing pages
deepdoc generate --clean   # delete owned files and saved state, then rebuild
FlagDescription
--forceFully refresh existing DeepDoc-managed docs instead of refusing
--cleanDelete DeepDoc-owned files and saved state, then rebuild
--yesSkip confirmation prompts
--include / --excludeExtra glob patterns for this run
--docs / --siteUse different output directories, this run only
--batch-sizePages submitted per batch
--max-parallel-workersConcurrent LLM calls
--rate-limit-pauseSeconds between batches
--strict-qualityFail if any page is invalid, degraded, fallback or a stub
--deployBuild the static site afterwards

update

The normal command after your first generate. Diffs against the last synced commit and regenerates only the affected pages.

deepdoc update
FlagDefaultDescription
--sincelast synced commitGit ref to diff against
--replanoffForce a full replan even if the change set looks incremental
--strict-qualityoffExit non-zero when any page fails validation — use in CI
--deployoffDeploy after a fully successful update

See Keeping docs fresh for how it decides what to redo.


serve

Previews the docs locally with live reload.

deepdoc serve
deepdoc serve --port 4000

Before starting, it re-applies .deepdoc.yaml from your saved plan — so config changes show up here with no regeneration and no LLM calls:

Applied .deepdoc.yaml changes (no regeneration, no LLM calls): colors, nav

Needs Node.js 18+. The first run installs npm dependencies automatically.


deploy

Builds a static site into <site_dir>/out/, publishable to any static host.

deepdoc deploy

Refuses to ship broken docs:

Refusing to deploy docs with unresolved quality issues:
- invalid docs present: cli-commands
- stub docs present: page-generation-validation

Fix those by regenerating. See Deploying.


status

Shows what has been generated and what is now stale. No flags, no cost.

deepdoc status

config

deepdoc config show
deepdoc config set site.theme.preset ocean
deepdoc config set site.colors.primary "#7c3aed"

config set rejects keys that do not exist, rather than silently writing a setting that does nothing:

Error: Unknown config key: site.theme.presset

Did you mean:
  site.theme.preset

performance

Timing, token usage, retries and I/O for recent runs, from .deepdoc/performance/runs.jsonl.

deepdoc performance

This is where to look if you want to know what a run actually cost.


clean

Resets the repository to a pre-DeepDoc state.

deepdoc clean          # prompts first
deepdoc clean --yes    # no prompt

Removes only files DeepDoc created — tracked against its own manifest — so hand-written pages in your docs directory and chatbot_backend/ survive.


benchmark

Scores planner quality against a gold manifest. Mainly of interest if you are working on DeepDoc itself.

deepdoc benchmark --catalog benchmarks/catalog.json
deepdoc benchmark --generated-root ./deepdoc-docs --scorecard-out .deepdoc/scorecards/latest.json

Use --strict-scorecard to fail when completeness gates are not met. Without a hand-written catalog, artifact mode (--generated-root) computes a provisional scorecard from persisted .deepdoc/ output.

Next