Skip to content

Configuration

All settings are in the jsonschema namespace and can be set in User, Workspace, or Folder settings.


jsonschema.preview.autoOpen

TypeDefault
booleanfalse

When true, the preview panel opens automatically whenever a JSON Schema file becomes the active editor (on file open or tab switch). Silently skipped in untrusted workspaces.

json
// .vscode/settings.json
{
  "jsonschema.preview.autoOpen": true
}

jsonschema.preview.liveUpdate

TypeDefault
booleanfalse

When true, the preview refreshes as you type (debounced). The preview panel must already be open — live update does not auto-open the panel. Skipped in untrusted workspaces.

json
{
  "jsonschema.preview.liveUpdate": true
}

jsonschema.preview.liveUpdateDelay

TypeDefaultMinimum
number (ms)1500500

Milliseconds to wait after the last keystroke before the live preview refreshes. Increase this value on slower machines.

json
{
  "jsonschema.preview.liveUpdateDelay": 800
}

jsonschema.preview.renderTimeout

TypeDefaultMinimum
number (ms)300001000

Milliseconds to wait for the json-schema-for-humans render subprocess before it is killed and an error page (with a timeout hint) is shown instead. Values below the minimum are clamped.

json
{
  "jsonschema.preview.renderTimeout": 60000
}

jsonschema.remoteFetchTimeout

TypeDefaultMinimum
number (ms)300001000

Milliseconds to wait for any outbound remote-schema HTTP request — authentication fetches, schema caching, and catalog lookups all share this timeout — before it is aborted.

json
{
  "jsonschema.remoteFetchTimeout": 15000
}

jsonschema.cache.autoRefresh

TypeDefaultValues
string"off"off, onOpen, daily

Automatically revalidates a locally cached schema against its origin using conditional (ETag / Last-Modified) requests. off never revalidates automatically; onOpen revalidates a schema at most once per session when a bound file becomes the active editor; daily revalidates at most once every 24 hours. A 304 Not Modified response leaves the cache untouched, and a failed revalidation is silent — the stale cached copy keeps serving IntelliSense.

json
{
  "jsonschema.cache.autoRefresh": "onOpen"
}

jsonschema.catalog.useSchemaStore

TypeDefault
booleantrue

Includes the public SchemaStore catalog in the Bind Schema… → Browse catalog… picker.

jsonschema.catalog.sources

TypeDefault
array of string[]

Additional schema-catalog URLs in the SchemaStore catalog format ({ "schemas": [{ "name", "description", "url", "fileMatch" }] }). Private catalogs are fetched with the credentials configured via Configure Schema Authentication….

json
{
  "jsonschema.catalog.sources": ["https://internal.example.com/schema-catalog.json"]
}

jsonschema.lint.enabled

TypeDefault
booleantrue

Reports schema-quality diagnostics — missing description/$schema, unknown keywords, duplicate enums, and similar — on JSON Schema files, in a dedicated Problems-panel source separate from data-file validation.

jsonschema.lint.rules

TypeDefault
object{}

Per-rule severity overrides. Map a rule id to off, hint, info, or warning. Rule ids: no-unknown-keywords, require-schema-declaration, require-root-id, require-descriptions, explicit-additional-properties, no-duplicate-enum, no-empty-required.

json
{
  "jsonschema.lint.rules": {
    "require-descriptions": "off",
    "no-unknown-keywords": "warning"
  }
}

.json-schema-preview-config.json

The extension discovers a .json-schema-preview-config.json file in the workspace folder that contains the schema being rendered (with fallback to other workspace folders in order). The file controls the json-schema-for-humans renderer and the output template.

Example:

json
{
  "template_name": "js",
  "show_toc": true
}

All json-schema-for-humans options are supported. Create or edit the file via JSON Schema: Configure Preview (visual UI) or JSON Schema: Open Config File (opens the raw JSON).

Output templates

The template_name field controls the rendered format:

ValueOutputNotes
flatHTMLDefault when no config file is present
jsHTMLJavaScript-style collapsible tree
mdMarkdownMarkdown table; displayed as raw source in VS Code, downloadable as .md
md_nestedMarkdownNested Markdown structure
rstreStructuredTextPlain text display
htmlStandalone HTMLSelf-contained file with embedded styles

The Download button in the preview panel uses the correct extension (.html or .md) based on the active template.


Schema Binding (json.schemas / yaml.schemas)

Schema bindings created via Bind Schema… are written to VS Code's standard json.schemas (for JSON/JSONC/JSONL files) and yaml.schemas (for YAML files) settings, or inline as the file's own $schema field. Choose the scope when prompted:

ScopeStored inLifetime
Workspace file.code-workspace fileCommitted with the repo (multi-root workspaces only)
Workspace folder.vscode/settings.jsonCommitted with the repo
UserUser settings.jsonAll workspaces on this machine
Inline ($schema field)The data file itselfPortable to other editors and tools

Bindings can be edited manually in the relevant settings.json file. TOML files use the inline scope exclusively — VS Code has no built-in toml.schemas mechanism, so the picker offers only the inline option for .toml files.

Released under the MIT License.