{"id":25576,"library":"fastlint","title":"fastlint","description":"fastlint is a command-line tool (v1.1.0) that speeds up linting by running linters only on files changed in git — either in the working copy, staged, or compared to branches like master. It avoids running on unchanged files, integrating with eslint and other tools via piped filenames. Key features: --staged filter, --diff-filter (A/C/D/M/R/etc.), --glob filtering, and multiple path output modes. Stable, low maintenance, single-purpose tool. Alternatives include lint-staged and husky, but fastlint is more flexible for branch comparison.","status":"active","version":"1.1.0","language":"javascript","source_language":"en","source_url":null,"tags":["javascript"],"install":[{"cmd":"npm install fastlint","lang":"bash","label":"npm"},{"cmd":"yarn add fastlint","lang":"bash","label":"yarn"},{"cmd":"pnpm add fastlint","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"fastlint is a CLI tool, not a library. Use via npx or global install.","wrong":"require('fastlint')","symbol":"fastlint","correct":"npx fastlint ..."},{"note":"Always invoked from shell, not programmatically.","wrong":"fastlint.start()","symbol":"fastlint binary","correct":"fastlint --version"}],"quickstart":{"code":"npm install -g fastlint && echo \"console.log('hello')\" > test.js && git init && git add test.js && git commit -m \"init\" && echo \"console.log('world')\" >> test.js && fastlint HEAD~1 HEAD --print0 | xargs -0 npx eslint","lang":"javascript","description":"Installs fastlint, creates a git repo, makes a change, then lints only changed files with eslint."},"warnings":[{"fix":"Use correct letter: Q for untracked, D for deleted.","message":"--diff-filter=Q includes untracked files, not 'Deleted' as some might assume.","severity":"gotcha","affected_versions":"all"},{"fix":"Always specify two branches or use --working-copy explicitly.","message":"Default behavior includes working copy changes if no branch arguments given; may surprise users expecting empty output.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'a/c/d/m/r/etc':57 'altern':72 'avoid':36 'branch':32,85 'chang':20 'command':6 'command-lin':5 'compar':30 'comparison':86 'copi':27 'diff':55 'diff-filt':54 'either':23 'eslint':43 'fastlint':1,2,80 'featur':51 'file':19,40 'filenam':49 'filter':53,56,59 'flexibl':83 'git':22 'glob':58 'huski':78 'includ':73 'integr':41 'javascript':87 'key':50 'like':33 'line':7 'lint':13,75 'lint-stag':74 'linter':16 'low':66 'mainten':67 'master':34 'mode':64 'multipl':61 'output':63 'path':62 'pipe':48 'purpos':70 'run':15,37 'singl':69 'single-purpos':68 'speed':11 'stabl':65 'stage':28,52,76 'tool':8,46,71 'unchang':39 'v1.1.0':9 'via':47 'work':26","created_at":"2026-05-01T13:45:29.186117+00:00","updated_at":"2026-05-01T13:45:29.186117+00:00","problems":[{"fix":"Use 'origin/main' or 'master' if local branch exists.","cause":"Typo or remote not fetched; branch name incorrect.","error":"fastlint: 'origin/master' is not a valid git reference"},{"fix":"Use correct form: fastlint <since> <until>, e.g. 'HEAD~5 HEAD'.","cause":"Missing space between revisions and paths, or incorrect syntax.","error":"fatal: ambiguous argument 'HEAD~5 HEAD': unknown revision or path"},{"fix":"Place --print0 at end of options before xargs.","cause":"Using --print0 as a boolean flag; it's fine, but if followed by argument, fails.","error":"fastlint: option '--print0' requires a value"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"fastlint","cli_version":null,"type":"library","homepage":null,"github":null,"docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/fastlint","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops","testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-05-01","next_check":"2026-07-30","install_tag":null}}