# jsonschema-explain
[](https://crates.io/crates/jsonschema-explain)
[](https://docs.rs/jsonschema-explain)
[](https://github.com/lintel-rs/lintel/actions/workflows/ci.yml)
[](https://github.com/lintel-rs/lintel/blob/master/LICENSE)
Render JSON Schema as human-readable terminal documentation
## Features
- Man-page-style terminal output from `serde_json::Value` schemas
- ANSI colors with bold headers, dimmed metadata, and highlighted types
- Syntax-highlighted code blocks in schema descriptions (via `markdown-to-ansi`)
- Renders properties, required fields, enums, defaults, `oneOf`/`anyOf`/`allOf` variants
- Auto-sizes to terminal width
## Usage
```rust
use jsonschema_explain::explain;
use serde_json::Value;
let schema: Value = serde_json::from_str(r#"{"type": "object"}"#).unwrap();
let output = explain(&schema, "my-config", true, true);
println!("{output}");
```
Part of the [Lintel](https://github.com/lintel-rs/lintel) project.
## License
Apache-2.0