gptlint
v1.6.0
Published
A linter with superpowers! Use LLMs to enforce best practices across your codebase in a standardized, configurable, scalable manner.
Downloads
97
Maintainers
Readme
GPTLint
A fundamentally new approach to code quality. Use LLMs to enforce higher-level best practices across your codebase in a way that takes traditional static analysis tools like
eslint
to the next level.
Features
- ✅️ enforce higher-level best practices that are impossible with ast-based approaches
- ✅️ simple markdown format for rules (example, spec)
- ✅️ easy to disable or customize rules
- ✅️ add custom, project-specific rules
- ✅️ same cli and config format as
eslint
- ✅️ supports
gptlint.config.js
and inline overrides/* gptlint-disable */
- ✅️ content-based caching
- ✅️ outputs LLM stats per run (cost, tokens, etc)
- ✅️ built-in rules are extensively tested w/ evals
- ✅️ supports all major LLM providers and local models
- ✅️ augments
eslint
instead of trying to replace it (we love eslint!) - ✅️ includes guidelines for creating your own rules
- ❌ MVP rules are JS/TS only for now
- ❌ MVP rules are single-file context only for now
- ❌ MVP does not support autofixing for now
Demo
Here's a demo of gptlint
running on its own codebase:
Check out our docs to get started.
How it works
Check out our docs on how it works to learn more.
Getting Started
Installation is simple, with the only external dependency required by default being an OpenAI API key.
Check out our docs to get started.
FAQ
- How accurate / reliable is gptlint?
- How much will it cost to run gptlint on my codebase?
- How can I use GPTLint with a custom, local model?
- How can I use GPTLint with a different LLM provider?
- How can I disable a rule?
- How can I disable a rule for a specific file?
- How can I disable linting for a specific file?
- How can I customize a built-in rule?
- Are there file size limits?
- What limitations does GPTLint have?
- How does GPTLint compare to ESLint?
- What about fine-tuning?
- Where can I get support?
Citations
@software{agentic2024gptlint,
title = {GPTLint},
author = {Travis Fischer, Scott Silvi},
year = {2024},
month = {4},
url = {https://github.com/gptlint/gptlint}
}
Huge shoutout to Laurentiu Raducu for gifting us the NPM package name. 🙏
License
MIT © Travis Fischer
To stay up to date or learn more, follow @transitive_bs on Twitter.