NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4578 most downloaded on npm
Find and fix unused dependencies, exports and files in your TypeScript and JavaScript projects
Last release 2 days ago
16 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
622 releases · first in 2022
One column per quarter.
See the pre-releases for details:
Blog post: Announcing Knip v6
See the pre-releases for details:
Breaking changes:
classMembers--include-libs → this is now the default and only behavior--isolate-workspaces → this is now the default and only behavior--experimental-tags → use --tagsissues.files is consistent with other issue shapes. Removed issues._files.files.Improve Nuxt plugin (staticExports → ExportNamedDeclaration)
staticExports → ExportNamedDeclaration) (6554251a8)isReferencedInUsedExport items (d4d996758)Bump GitHub actions to their latest versions
--fix exit code (37b6f6013)useLocalVersion to vscode extension (resolve #1572) (e180e65be)module {} syntax (f4706c96e)Remove --include-libs flag, always include external type definitions
namespaceMembers issue type (resolve #1603) (750236c1f)collectIdentifiers in nuxt plugin (.vue → .vue.ts) (157450ff4)parseFile (77ae0c7ff)Replace TS backend with oxc-parser
module.register with node:module import (872e3ef8b)_files issue type → consistent objects (d48955be3)Bump GitHub actions to their latest versions (#1624) (bf2ffca61184504734145b01db29da095c62064b) - thanks @deining!
--fix exit code (37b6f60133c406d07fcbae69cdc3a17808060e1f)Add Sanity plugin (#1608) (f777834a6db8530f7588e24a916f47b5d5b75673) - thanks @jonahsnider!
extends entries as dependencies (96f178f96490045ad5ae766193d7bbc726a5896f)Add pkg as built-in pnpm command (#1597) (32ee5591e) - thanks @azat-io!
test() (d010c5597)find -exec (#1601) (f7367fd48) - thanks @t3chguy!@babel/runtime is needed when @babel/plugin-transform-runtime is used (#1602) (ef4da0691) - thanks @t3chguy!find (0bd97f01f)cwd (resolve #1595) (e71c9acc9)Rewrite import specifiers to use .ts extensions, remove tsx (#1548) (58674ade551d04ca38eea5b8273e8843eed7659d) - thanks @wojtekmaj!
bun test (c112b6c68b13976e4b601c5169a09e748e67fd4f)externalHelpers setting ignores @swc/helpers dependency (#1560) (4bcb1f5429d003e6e2b28e2bd65a64c849fe0786) - thanks @bobaaaaa!pageExtensions (resolve #1581) (c6a6d9e72b7674392cb58675befcc4c6bbb64e11)js-yaml → yaml (fb042ae235e57b340d167bb7bb7d7ddb0fa5b1fb)ts.isInTopLevelContext → isInTopLevelScope (1819c2050440f82eb30e7be9d271298e6b4c8f14)session.handleFileChanges in try/catch (185afb8cc6b914df31ca0c22315190e44c2834da)null reporter (#1596) (0f1ce7d1bba7a80ce0697378efd2be0968383a86) - thanks @shrink!extends in nuxt plugin (9fcbdf5244f81820b9a2f53d5b320e6c54fba792)Fix require.context regex matching for path-aware patterns (#1547) (c33d93ae24dc1304baa49f85b25beb24af803dd8) - thanks @jstaab!
Fix false positives for arrow-wrapped dynamic imports assigned to variables (#1544) (75a42c3aa4b8f9db59fb450ef4f45540ab94ec26) - thanks @jantimon!
module.register if 2nd arg is not import.meta.url (#1535) (970fdb1f747c0941759aa3e0394c30ff6cf63481)Move most compilers to plugins & register from there
bun test positionals as entry points (resolve #1521) (da9472555b28b04eddba703b1dfee69b2cb8b6f9)ignore and ignoreFiles items (a4989eef8c870aa038d9c9d9e09597590ca444e7)date to IGNORED_GLOBAL_BINARIES (#1476) (f08f92bd9eac95ec4eafd01ddb01279cb047544e) - thanks @duci9y!repository fields (781a0fd44a2cece4fd9c1413e50caa88df528607)initializationOptions.config or default fallback config obj (resolve #1503) (0abe5684083428340254dc1b0136760aacb9acff)chdir shenanigans (close #1516) (0cbee8f38f4a91504b3adc4faee466b9624120fc)console.* to distinguish internal↔ external logs (3eac278273856994483a9164539bf57a51ed440b)isFilterTransitiveDependencies flag (close #1507, close #1101) (8678df2d6f6cbedfe9483dae75e84a5605d730df)plugin.setup & tear down plugin.teardown (4dbf23dd54ec7712f33eb8c714c8dd9942eb5538)@source matcher from tailwind plugin (resolve #1537) (b7149b6185407be18aaa1613f3cb275a1a92a4b7)-w → -W flag for Yarn (f305250f06c84653162c15f9500cad2d65dea8c7)Add minimal test suite to vscode-knip
fix: skip empty string entries in package.json exports (#1477) (6b64ac5b89916869a2361077a51dc28adb4679df) - thanks @SBoudrias!
relative path helper (ac8a45454f9e8d88898141e112897803c844f803)postinstall script to non-production (360110bed44d77da4ed5e553a63986176d2ed716)Improve coverage for isReferencedInExport types
isReferencedInExport types (570eafe3a69cc2738e5aabb800cc9dd0076b83ca)Release @knip/create-config@1.2.0
deputy.addIgnoredUnresolved (4f6d9e5c9216fe9743ddaec1fa8f71d4fc33469f)Update CLI documentation to match current implementation (#1458) (937dd832d9421a295e733d0046266b3154fd78fc) - thanks @sebacardello!
ConfigurationChief (602603fdf428d329925e191dde319388e8726597)keyof typeof MyEnum used (7d5b9d6c34f0c25d5608f398defe3ed12f0f49c3)npm login to release script (968d339f8583c678bb891a446ac038d79b6716c9)Add astro-og-canvas plugin (#1445) (bb93a2b8ea4cbd87b300f5bcc4676cd8e83d786d) - thanks @JoshuaKGoldberg!
cwdOrPath in isDirectory and isFile (2d0bb0cd38fb8d0502532b0999cb4cf795c3e4cb)hasRefsInFile (86bde97ea1a202fdd9dad1fd05a30026fa78f284)pos from exported default keyword to identifier (8e74ec7154f408e53973a9cdad7492c711d7811b)Resolve _partial.scss in compiler (close #1439)
ignoreExportsUsedInFile from default config (f3eddf3d)resolve in plugins (5b98269b)appDir + fix glob escaper (f993591b)Only try to use tsconfig files if tsconfig.json exists
hasRefsInFile (#1435) (c6fa5e47)isReferenced and hasStrictlyNsReferences to better express intent (fa23a330)importedBy, and then some.. (cabee8e6)hasStrictlyNsReferences (resolve #1427) (0768c8a5)Added docs to explain dynamic config (#1423) (834104176c634ee939093480eba79b92c70ff3c0) - thanks @AlexanderKaran!
Allow subpath entries in webpack plugin (resolve #1164)
node_modules/ specifiers in deferred entries (resolve #1271) (5c1f0beebc11b46a9bb4ede49c1243b8c6bd5942)ignore patterns to filter issues (resolve #1420) (b2cbbd5a2bd5e345a0e124906cc1be90d9583842)Go process.chdir and defer process.cwd() usage
process.chdir and defer process.cwd() usage (a83d858789e48eb4c00ac809fd1093ae5967611c)Safe config hints set → array (for json-rpc serialization)
Fix missing import in mcp server
Improve a few notes here & there
read options after help or version (#1412) (9120432e1c274b3a421975796019191018fdfc14) - thanks @GameRoMan!
Release @knip/create-config@1.1.0
bunx handler (resolve #1410) (5ab0488ae59b9f06d82709df86b038c2fc125e93)externalRefs work if we're not in a session (0fc619424771e7d00e7c2718aca64f261944ecd9)--files or --dependencies runs (60d760cb7630ceec3868073b0d41b9c49744d844)fix docs url (#1408) (bcbb1dd2a96eebb0ba673c011bb82f5bb331cecb) - thanks @GameRoMan!
Session re-export monorepo test setup (#1407) (69050886a9e62b51bfba9b716841643f08b81854) - thanks @Sheraff!
fix: Unexpected error when pnpm catalogs are empty (#1406) (e2dc8ba8f935f07bad08d2d7e7562f111fa65da7) - thanks @Promise2679!
getDependencyUsage operation to explorer (3ff7afae57245bdba9801839b561b2276c2d0871)--trace-dependency flag + trace reporter (a4a8528528f60576f727761380e3e2fb11711ff1)imports.externalRefs (136ff8afc814a01860f715be8aee6bb478f3c299)workspace:* protocol (e1eaa5ee6a59fe88913a574861505c5ef9067b53)ovsx publish (ed49b41b920392868e98900d4c67ee037de8d859)Add build & publish script for vscode-knip
vscode-knip (fc88bd82a7015d99c0983fcd9bec640e1c0e8e55)op to endOfCommandBinaries (resolve #1399) (164532dbdc43b5a2387ec5afacf086da10e7e7ed)configFilePath setting (843c2ff950e74cc16351e0d026914f3e783793ee)* Release v0.0.1 packages (c38a8c0f19ee4170f9a321d635e30d242dbc7925) * Revert sourceMap setting (443ce672147329b9141573358bc20c4169346af3) * Loosen sa
sourceMap setting (443ce672147329b9141573358bc20c4169346af3)Add Language Server & VS Code extension
isReExport → via (c01868def0e5f4a5e349ce64d5fac547cedb4ce2)loadTSConfig (8bf4cced8fe126d4dbb07a5c5b720a583b4bdd2a)--use-tsc-files flag for project files (#1354) (3432dd9f6a1629285d8c8d5fbcbf3187878b3cc4)isUseTscFiles: true in session w/o config file (78c913aeb7a6d1d89de5fc2b14d2656c272c71c1)Rename import modifiers → flags
resolveSync (d6e9a13dd32ef4a4634be25ecae6c7a15489c6cd)isSkipLibs in module resolver now that we're using oxc-resolver (bcd97330641f2933cf9565e6021d2d543eb90ce3)fix(bun resolver): detect "publish" and others as builtin commands instead of unlisted binaries (#1387) (542e2ad11603d9652809fdd8c841f24dff402626) - t
Fix up package.json after previous release
Sync issue types in json schema
Improve handling of "bridged" require calls in ts modules
Bail out early if specifier starts with colon (resolve #1379)
clear to list of ignored global binaries (91522bb59a8844c0259646f4d34e2b49b6fa65a7)--commentWithDev flag (c9af60858ed02c3ce8fe3c2137514096743ce052)require call in ts file (resolve #1383) (557c7456c41e8574cfe6bbb10ee52e15eeb1f65e)Resolve setupFiles and globalSetup from config file dir (resolve #1317)
void lint issue in explorer helper type (33d7497809b6458044082d1505d1f750d98eb2b4)traceRefs out and improve export tracer (62d574eb3b6f744fa698668ef2bbae2d61fff80d)importAliases to refs tracker (f90eed6d1f612a169c8ed677a53c3028c0e2eb44)--performance-fn (5be3cdc3908d55585e915b68889a6e065edc7034)extensionAlias (ebf3ff3ac0775a57cfc16bfbf90dd425c75bf7d3)tsconfig: auto and use resolveFileSync method (b2f213d4db15050e22a7b8f973a443b89dcb632c)containingFile (not dir) (ed0cdacf972b44d57bcf739a39bbffc4bec61c77)viteConfigPath in storybook plugin (ec9d6ccf647e305758cbb03df6f4ddc188e5f98b)formatTrace (143755e9c916dd884b01da9740a98905152bdd26)Add sed to globally ignored binaries (#1365) (ea8d61899fe8d4ba160ec998d564d3c9f5aafd55) - thanks @jmoses!
sed to globally ignored binaries (#1365) (ea8d61899fe8d4ba160ec998d564d3c9f5aafd55) - thanks @jmoses!Restore & add TS v5.5.0 workarounds ↻ oh my
Import in module graph (ad25794fc5ed465cf4be151df05fc4196d1589e4)TYPE_ONLY instance (b431303d60f84f6abf77f37f93ccf9ab399d4cc9)project patterns from astro plugin (ac9e378d2bdf84b70791bdce9febc511bee924b4)chore: fix vitest node env recognition (#1360) (9a38e10230b18b256ee8ed03dcc5217029b5298d) - thanks @jonathansamines!
Revert "Revive some tests in Bun"
isIdentifierReferenced (f31eab4b443f084ff4af3eab187c352deab27089)Release @knip/create-config 1.0.8
issue.fixes (d7b45cfebb135881160ecda2acf0ad5239d98441)Correct mdxlint setup in package.json (#1337) (71a4d125a8450c7a9e4a5c78735bbb3c2aabdae1) - thanks @remcohaszing!
pnpm-workspace.yaml (#1342) (46e33d95f8390ca051ddc43f711724dfc2ac0e4e) - thanks @taro-28!import.meta.url (resolves #1310) (ffff5a625bfd7c3f8647cdf8f326907a5089f6dc)KnipConfig that can be an (async) function (4310d2065bf5caab6641a7e6145d745c1a5eed3a)catalog issue type (#1204) (063b647951d3f446f94639921a1ca276dc27017e)Plugin type annotation (f1e8b8263656d2e7998fdeb7adf4c221312a0bbc)Re-gen sponsorships chart + add link
ignoreMembers to workspace schema (#1332) (4a4687ed402b4d74be8fcc8cd73816451de4a005) - thanks @Jiralite!"astro:env/*" imports (#1331) (b88336b12e41ad3c5b9ec91672cd6d8294f648a1) - thanks @jimmy-guzman!Import default exports in tailwind compiler (resolve #1330)
docs: fix typo in writing a plugin section (#1327) (c27b46a1e8bc75f5bcdaf4f65f7e5e15cb18bcae) - thanks @nikolailehbrink!
Add experimental nextjs conventions support (#1322) (b7acf1fc7038f31797f82ec55a007cb73e9af08c) - thanks @vinnymac!
feat(next): add proxy to entry file pattern (#1318) (c730727babd1321c5c1037178651113360ed38bc) - thanks @filipweilid!
Fix negated patterns from package.json#exports (related to #1308)
Fix up SymbolType and reuse SYMBOL_TYPE (resolves #1306)
SymbolType and reuse SYMBOL_TYPE (resolves #1306) (d7c1c8313c751419588c0bec3e5e3b1f7e636ba0)defineNuxtConfig writable and deletable (resolves #1307) (c31a77f923452b4df88fe9a2bb9914ee400afbfd)Add coverage for ignoreFiles feat
ignoreFiles feat (87ca476cdc1ebcc7637e2ff17a88e4fd7dfe790d)ignoreIssues to JSON Schema (90056915e49be7b36a03cb35ec563876110d16c9)Fix some typos in docs and code comments (#1299) (715d7cc75f4349547fba049839b4dca253acf57f) - thanks @jdufresne!
ignoreFiles config option (c9ab3c9db213ff2036245af254129943e96e111e)strip-json-comments a tad (7172653aff27e53d9d87ee10d684c9738ce82e0b)Add support for json5 files (#1290) (5dd115f29d073916c3f612334758197a94c18621) - thanks @rfalke-rtl!
refactor: use toC12config for bump plugin (#1280) (dbdd98bd28a623eb8a6e33330a171f5b9b4c181b) - thanks @nyarthan!
toC12config for bump plugin (#1280) (dbdd98bd28a623eb8a6e33330a171f5b9b4c181b) - thanks @nyarthan!packageManager field for corepack users (#1281) (7c70d9f9926a002468285d4493ef05ff747d0b7e) - thanks @nyarthan!Add "How to keep package.json under control" article
Add env-cmd Support (#1254) (21d6b5183ad10b3296cdb9c8f21a8f2d01bb36e9) - thanks @joealden!
env-cmd Support (#1254) (21d6b5183ad10b3296cdb9c8f21a8f2d01bb36e9) - thanks @joealden!getAccessedIdentifiers (8fb95019030533909c970bdb204b4779c19eaf5d)binaries values in plugins (aac28c491ead836231e7487a8ebea056d0cf16cc)containingFilePath value in angular plugin (92089275df7752a830c171d8d1d4cb39b0a83565)isRootOnly to pnpm plugin (fe99f594ac79c2bb3590091651300062b690a12b)time & unzip to ignored binaries (#1276) (4f8d9df599ffaba171e2535ffe61153f4ce1089a) - thanks @nyarthan!Rstest Plugin (#1277) (5b7d92f101153294708a3d1afe8d2c4d61595116) - thanks @nyarthan!bumpp (#1278) (136a14bc4ff4138389a831afc62f5406f66223a5) - thanks @nyarthan!Your coding agent can read these notes before it upgrades. Set up the MCP server →