
Security News
curl Shuts Down Bug Bounty Program After Flood of AI Slop Reports
A surge of AI-generated vulnerability reports has pushed open source maintainers to rethink bug bounties and tighten security disclosure processes.
awesome-lint
Advanced tools
Linter for Awesome lists
Intended to make it easier to create and maintain Awesome lists.
Includes a bunch of general Markdown rules and some Awesome specific rules.

The CLI requires Node.js and Git.
Type the command npx awesome-lint followed by the URL of the repo you want to check:
❯ npx awesome-lint https://github.com/sindresorhus/awesome-something
readme.md:1:1
âś– 1:1 Missing Awesome badge after the main heading awesome-badge
âś– 12:1 Marker style should be - unordered-list-marker-style
âś– 199:3 Remove trailing slash (https://sindresorhus.com) trailing-slash
3 errors
You can enable, disable, and ignore rules using special comments. This is based on remark-message-control.
By default, all rules are turned on. For example, 2 errors of awesome-list-item will be generated for following code snippets.
- [foo](https://foo.com) - an invalid description.
- [foo](https://foo.com) - invalid description.
disableThe disable keyword turns off all messages of the given rule identifiers. If no identifiers are specified, all messages are turned off.
Don't leave spaces after the last rule identifier.
For example, when awesome-list-item is disabled, no errors are reported:
<!--lint disable awesome-list-item-->
- [foo](https://foo.com) - an invalid description.
- [foo](https://foo.com) - invalid description.
enableThe enable keyword turns on all messages of the given rule identifiers. If no identifiers are specified, all messages are turned on.
For example, only the second line reports a awesome-list-item rule violation:
<!--lint disable awesome-list-item-->
- [foo](https://foo.com) - an invalid description.
<!--lint enable awesome-list-item-->
- [foo](https://foo.com) - invalid description.
ignoreThe ignore keyword turns off all messages of the given rule identifiers occurring in the following node. If no identifiers are specified, all messages are turned ignored. After the end of the following node, messages are turned on again. This is the main difference with disable.
For example, to turn off certain messages for the next node:
<!--lint ignore awesome-list-item-->
- [foo](https://foo.com) - an invalid description.
List items share the same parent node. So let's create a new list.
- [foo](https://foo.com) - invalid description.
You can use GitHub Actions for free to automatically run awesome-lint against all pull requests.
Create /.github/workflows/main.yml with the following contents:
name: CI
on:
pull_request:
branches: [main]
jobs:
Awesome_Lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- run: npx awesome-lint
fetch-depth: 0 is needed so that we can check the repo age.
You may add branch protection rules to prevent merging branches not passing awesome-lint.
You can use pre-commit to run awesome-lint as a Git pre-commit hook.
Add this to your .pre-commit-config.yaml:
repos:
- repo: https://github.com/sindresorhus/awesome-lint
rev: v2.1.2 # Use the latest version
hooks:
- id: awesome-lint
Then run pre-commit install to set up the Git hook.
npm install awesome-lint
import awesomeLint from 'awesome-lint';
// Lint the current directory's readme.md
await awesomeLint.report();
// Lint a specific file
await awesomeLint.report({filename: 'my-awesome-list.md'});
// Lint a GitHub repository
await awesomeLint.report({filename: 'https://github.com/sindresorhus/awesome'});
// Get raw results without console output
const files = await awesomeLint();
Returns a Promise for an array of VFile objects containing lint results.
Type: object
Type: string
Default: 'readme.md'
Path to the file to lint, or a GitHub repository URL.
Type: Array
Default: config (from config.js)
Custom remark plugins configuration.
Lint and display results to the console. Returns a Promise that resolves when linting is complete.
Takes the same options as awesomeLint(), plus:
Type: Function
Custom reporter function to format the output.
FAQs
Linter for Awesome lists
The npm package awesome-lint receives a total of 732 weekly downloads. As such, awesome-lint popularity was classified as not popular.
We found that awesome-lint demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
A surge of AI-generated vulnerability reports has pushed open source maintainers to rethink bug bounties and tighten security disclosure processes.

Product
Scan results now load faster and remain consistent over time, with stable URLs and on-demand rescans for fresh security data.

Product
Socket's new Alert Details page is designed to surface more context, with a clearer layout, reachability dependency chains, and structured review.