{"id":45093931,"url":"https://github.com/lintel-rs/lintel","last_synced_at":"2026-03-06T04:04:46.113Z","repository":{"id":339407513,"uuid":"1161560326","full_name":"lintel-rs/lintel","owner":"lintel-rs","description":"Fast, multi-format JSON Schema linter for all your config files","archived":false,"fork":false,"pushed_at":"2026-02-28T05:52:32.000Z","size":2350,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-02-28T05:55:13.843Z","etag":null,"topics":["cli","config","json","json-schema","json5","jsonc","linter","rust","schemastore","toml","validation","yaml"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lintel-rs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-19T08:52:26.000Z","updated_at":"2026-02-28T03:47:05.000Z","dependencies_parsed_at":"2026-02-24T23:01:02.443Z","dependency_job_id":null,"html_url":"https://github.com/lintel-rs/lintel","commit_stats":null,"previous_names":["lintel-rs/lintel"],"tags_count":224,"template":false,"template_full_name":null,"purl":"pkg:github/lintel-rs/lintel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lintel-rs%2Flintel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lintel-rs%2Flintel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lintel-rs%2Flintel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lintel-rs%2Flintel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lintel-rs","download_url":"https://codeload.github.com/lintel-rs/lintel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lintel-rs%2Flintel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29963121,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T06:55:38.174Z","status":"ssl_error","status_checked_at":"2026-03-01T06:53:04.810Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","config","json","json-schema","json5","jsonc","linter","rust","schemastore","toml","validation","yaml"],"created_at":"2026-02-19T18:05:38.416Z","updated_at":"2026-03-02T03:13:01.933Z","avatar_url":"https://github.com/lintel-rs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/lintel-rs/lintel/master/assets/logo.png\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/lintel-rs/lintel/master/assets/logo.png\" alt=\"Lintel\" width=\"300\"\u003e\n\u003c/picture\u003e\n\n**Fast, multi-format JSON Schema linter for all your config files.**\n\n[![CI][ci-badge]][ci-url]\n[![crates.io][crates-badge]][crates-url]\n\n[ci-badge]: https://github.com/lintel-rs/lintel/actions/workflows/ci.yml/badge.svg\n[ci-url]: https://github.com/lintel-rs/lintel/actions/workflows/ci.yml\n[crates-badge]: https://img.shields.io/crates/v/lintel?color=60a5fa\n[crates-url]: https://crates.io/crates/lintel\n\n\u003c/div\u003e\n\n**Lintel** validates JSON, YAML, TOML, JSON5, and JSONC files against [JSON Schema](https://json-schema.org/) in a single command. It auto-discovers schemas via [SchemaStore](https://www.schemastore.org/), the [Lintel catalog](https://github.com/lintel-rs/catalog), inline `$schema` properties, and YAML modelines — zero config required.\n\n**Fast.** Written in Rust with no async runtime, deterministic schema caching, and pre-compiled SchemaStore catalog matching. Warm runs are pure computation.\n\n**Drop-in CI check.** Machine-parseable output, nonzero exit codes on failure, `.gitignore`-aware file walking. Add one line to your pipeline and catch config mistakes before they ship.\n\n**Zero config.** Point it at your repo and go. Lintel figures out which schemas to use.\n\n## Installation\n\n```shell\ncargo install lintel\n```\n\nOr with npm:\n\n```shell\nnpx lintel check\n```\n\nOr with Nix:\n\n```shell\nnix run github:lintel-rs/lintel\n```\n\n## Usage\n\n```shell\n# validate with rich terminal output\nlintel check\n\n# validate with CI-friendly one-error-per-line output\nlintel ci\n\n# generate a lintel.toml with auto-detected schemas\nlintel init\n\n# convert between formats\nlintel convert config.yaml --to toml\n```\n\n## Schema Discovery\n\nLintel auto-discovers schemas in priority order:\n\n1. **YAML modeline** — `# yaml-language-server: $schema=...`\n2. **Inline `$schema` property** — in the document itself\n3. **`lintel.toml` mappings** — custom `[schemas]` table entries\n4. **Lintel catalog** — schemas for tools not in SchemaStore (Cargo.toml, Claude Code agents/skills/commands, devenv.yaml, and more)\n5. **SchemaStore catalog** — matching by filename\n\nFiles without a matching schema are silently skipped. Lintel respects `.gitignore` — `node_modules`, `target/`, and build artifacts are skipped automatically.\n\n## The Lintel Catalog\n\nThe [Lintel catalog](https://github.com/lintel-rs/catalog) provides schemas for tools that don't have SchemaStore entries. It's fetched automatically alongside SchemaStore — no configuration needed.\n\nCurrently includes schemas for:\n\n- **Cargo.toml** — Rust package manifests\n- **Claude Code** — agent, skill, and command definitions\n- **devenv.yaml** — devenv configuration\n\nTo add your own catalogs, use `registries` in `lintel.toml`:\n\n```toml\nregistries = [\"github:my-org/my-schemas\"]\n```\n\nThe `github:org/repo` shorthand resolves to `https://raw.githubusercontent.com/org/repo/master/catalog.json`.\n\n## Configuration\n\nLintel supports project configuration via `lintel.toml`:\n\n```toml\n# stop walking up the directory tree\nroot = true\n\n# exclude files from validation\nexclude = [\"vendor/**\", \"testdata/**\"]\n\n# map file patterns to schema URLs\n[schemas]\n\"my-config.yaml\" = \"https://example.com/my-schema.json\"\n\".ci/*.yml\" = \"//schemas/ci.json\"  # // resolves relative to lintel.toml\n\n# additional schema catalogs\nregistries = [\"github:my-org/my-schemas\"]\n\n# rewrite schema URLs (e.g. for local development)\n[rewrite]\n\"http://localhost:8000/\" = \"//schemas/\"\n\n# per-file overrides\n[[override]]\nfiles = [\"schemas/vector.json\"]\nvalidate_formats = false\n```\n\n## Adding Lintel to devenv\n\nAdd Lintel as an input in `devenv.yaml`:\n\n```yaml\ninputs:\n  lintel:\n    url: github:lintel-rs/lintel\n    flake: true\n```\n\nThen use it in `devenv.nix`:\n\n```nix\n{ pkgs, inputs, ... }:\n\nlet\n  lintel = inputs.lintel.packages.${pkgs.system}.default;\nin\n{\n  packages = [ lintel ];\n\n  # optional: run lintel as a pre-commit hook\n  git-hooks.hooks.lintel = {\n    enable = true;\n    name = \"lintel\";\n    entry = \"${lintel}/bin/lintel check\";\n    types_or = [ \"json\" \"yaml\" ];\n  };\n}\n```\n\n## GitHub Action\n\nUse the official [lintel-rs/action](https://github.com/lintel-rs/action):\n\n```yaml\n- uses: lintel-rs/action@v1\n```\n\n## License\n\nCopyright Ian Macalinao. Licensed under the [Apache License, Version 2.0](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flintel-rs%2Flintel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flintel-rs%2Flintel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flintel-rs%2Flintel/lists"}