NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4635 most downloaded on npm
Static file serving and directory listing
Last release 7 months ago
03 Mar 2026
Ships fairly regularly
a new release about every 6 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
15 years old
156 releases · first in 2011
Removed useless dependencies: #377
This release marks a completely fresh start for this project.
This release marks a completely fresh start for this project.
Over the years, the core of the package has gotten bigger and bigger, eventually containing features that should not be part of it at all. This led to serve becoming rather slow in certain situations. But not just in terms of serving requests, but also when installing (because of the dependency count).
As of today, the package is going into a completely new direction and we're re-evaluating any feature suggestions we're encoutering on the repository.
If you want to continue using the old serve, please lock it like this in your dependencies:
{
"serve": "6.5.8"
}
Notice that the version number is not prefixed with ^.
However, for those of you who would like to upgrade, there are plenty amazing things awaiting you:
serve – right out of the box: Use serve for development and Now in production.If you have any suggestions, let us know in the issue list or create a pull request to fix something! 🙏
Thank you all for using serve and have a great day!
Leo – @notquiteleo
One column per quarter.
Bumped dependencies to the latest version: #371
Updated update-check package to the latest version: #362
update-check package to the latest version: #362engines field to match readme: #366Huge thanks to @MiniGod, @sreeramjayan and @n0v1 for helping!
Added our linting setup and updated dependencies: #354
Only check for update in non-production: #352
Huge thanks to @thekemkid for helping!
Replaced the update checker: #347
Moved over to Spectrum: 045a2032d60537addc686d2faa00c3d640fcbf83
Added tests for --ignore flag: #341
--ignore flag: #341Huge thanks to @timneutkens for helping!
Add object and array destructuring on XO reported errors: #336
0 cache value triggers no cache: #339prettier to the latest version: 3a8f8ea09341786041c8fe6ee5e8fe29a984ae3dHuge thanks to @fmiras and @EdwardSalter for helping!
Added support for a --local flag: #327
--local flag: #327Huge thanks to @fmiras for helping!
Fixes wrong mime type for .wasm files: #328
.wasm files: #328Huge thanks to @giuseppeg for helping!
Ignored different things: d3e5200143d69aab1632e713146e866fbe1cd4a6
mime-types to the latest version: #331Huge thanks to @giuseppeg for helping!
Scope to working directory correctly: #316
Make installation work properly: a7f1b59bf564590ace2622cc3a69fab194d0d7d7
Save dependencies unprefixed: fae18bb0b0fb2c7c5b40dbf59585eb15fdc139f8
Migrated to Yarn: 0a7e89815087fe68d66073309905fd3653457d07
Removed triangle from company name: bccc217cb1151b6aadd70745503b4aa26a9e4f34
Fixed typo in option alias: #309
nyc to the latest version: 36783f6bcc3439c7f4957f435be0bf72a864c595Huge thanks to @just-boris for helping!
Recycle output of call to file system: #305
Huge thanks to @fritz-c for helping!
Updated license to be correct: 84fa4294ef779acae1a11828764029250c402621
Bumped dependencies to the latest version: cd1940c3c1a8e9dcc52a346aa70ae861d8118896
Huge thanks to @lachlanjc for his help!
Added icons for image files: #286
Huge thanks to @tohjustin for his help!
Fixed duplicated short flag: #278
Huge thanks to @4cm4k1 for his help!
Added ability to toggle the list view: #276
/index.html: #269Huge thanks to @barinali, @justanotherdot and @MarcoThePoro for their help!
Bump dependencies, primarily send for mime time upgrades: #270
send for mime time upgrades: #270Sort to list directories first, then sort alphabetically: #265
--treeless flag for disabling directory listings: #261Huge thanks to @TooTallNate and @javilobo8 for their help!
Output a special message for non-TTY: ff717d7191910e9b51bbce51050b9cc440400ca3
Bumped dependencies to the latest version: 453ed9903a21bd2226cc35d220e279f34126e6e0
Removed useless package fields: e3eb8cd2361d8d4a28be9054022a43fa3421a002
Fixed missing zero in one day cache number: #255
Huge thanks to @albertstill for his help!
Disable cache when --cache flag is set to 0: #245
--cache flag is set to 0: #245Huge thanks to @fabe for his help!
Updated description to reflect current state: 54278bc9b1418a54375b2e84232a045d32a9ff8f
PORT environment variable to integer: #242Huge thanks to @danielking, @ro-savage and @rosszurowski for their help!
Renamed --no-clipboard to --clipless: a75425f6ad99d56e65eddde2386c7305067cc7b8
--no-clipboard to --clipless: a75425f6ad99d56e65eddde2386c7305067cc7b8--clipless: 6ce4aed9184efbb7becf439a2245ff61c6ac8946Don't allow rendering ignored paths: #229
Huge thanks to @paulirish for reporting this bug!
Corrected signal handling inside Docker containers: 604f335547464a8d329f2461537cd83db3260787
Chore(package): update prettier to version 1.4.1: #212
This release reverts a pull request that brought back an issue that we've fixed a while ago already. Now everything should be secure again. Thanks to @radekk for reporting the problem!
Bumped lint-staged to the latest version: 4c6722b7994df0d3c3823376fc2d4175cb30aab8
lint-staged to the latest version: 4c6722b7994df0d3c3823376fc2d4175cb30aab8Huge thanks to @JamesKyburz for their help!
An important security fix is included. Everyone is encouraged to upgrade to this version. For more information, please refer to this document.
Huge thanks to @webtaculars and @egoist for their help!
An important security fix is included. Everyone is encouraged to upgrade to this version. For more information, please refer to this document.
Tell prettier not to use semicolons: ca7ce7581452f0c685acdb2aa8de2d7e77ddcc8a
prettier not to use semicolons: ca7ce7581452f0c685acdb2aa8de2d7e77ddcc8aHuge thanks to @JamesKyburz for their help!
Fix(package): update args to version 2.6.0: #162
This release introduces automatic suggestions for CLI options!
Fix(package): update clipboardy to version 1.1.0: #156
No array needed for XO config: 350a08290f02a23b50c5e9a326c85622a33ce0d0
font-awesome (much faster): #152Huge thanks to @vedam for their help!
Indicate that -n is a boolean: 87787df407d29997edbe13ef96678e5fc4cc3e01
-n is a boolean: 87787df407d29997edbe13ef96678e5fc4cc3e01micro to latest version (fixes #146 and #147): d24bda5e3bfaddec1fe8fd7a7c40d92d5207075dAdded --no-clipboard option: 7657ceba8fb602537003c8231266b7cf2179f180
--no-clipboard option: 7657ceba8fb602537003c8231266b7cf2179f180.editorconfig file: #142.editorconfig: dcde9bfb51e9f41d9ef8f7f7f445dc8f3c6f49daprettier to enforce a code style: 0ca892ac29da6cc6d927684bd44faf633d9fd7baHuge thanks to @williamboman for his help!
Chore(package): update husky to version 0.13.3-0: #133
clipboardy for copying to clipboard in a better way: #130readme.md wording to indicate that serve can also list files: #134Huge thanks to @floatdrop and @francocorreasosa for their help!
Don't freeze if path doesn't exist: #132
Huge thanks to @AndyBitz for his help!
Alias boolean cli flags in minimist config: #129
Huge thanks to @disquisition for their help!
Only show network address if local IP is available: 89651cc61baf333656061dcbcf2722690611d5a3
Huge thanks to @AndyBitz for helping me by testing these patches! ❤️
Switch default port from 3000 to 5000: 829287236fd1731ed9e8ddc9489d40b9798b1bb2
3000 to 5000: 829287236fd1731ed9e8ddc9489d40b9798b1bb2--ignore to args: 1e7ffac7c1fb3518f7476454e5ebee6b33e0622fTreat --single and -s flags as booleans: c9826263d98b2b6bd579c11822458313f2e7ec6c
--single and -s flags as booleans: c9826263d98b2b6bd579c11822458313f2e7ec6cOnly show update message if not in production: b5d3ff05d640d40b150283b796ed92b26e60ec87
Let args decide the short flag for --cors (=> -C): bc94699f6cefba355879bc8b82825d437e35da24
args decide the short flag for --cors (=> -C): bc94699f6cefba355879bc8b82825d437e35da24--silent: https://github.com/zeit/serve/issues/118Only copy to clipboard on darwin: 83ebb04e4324372c7dc7b29f9b4c617df5627647
--auth: 190bc0d996c27a9a342bcb54000e6beeb855a9feAdd a programmatic API (fixes #86): #113
Huge thanks to @dar5hak and @disquisition for their help!
Huge performance upgrade, folks! 🎉
Huge performance upgrade, folks! 🎉
bluebird instead of async/await (much faster runtime): 90a355d89498d481a19ff8e71597ebfe062a5056Huge thanks to @nulltask for his help!
Add title attributes to file links: #106
Huge thanks to @disquisition and @thorn0 for their help!
Mention all old names: 4714bc8a2451e54cb34aa04f55aa250a6b60fa41
Make --cache work again: 38cc9a3e530ef2db6a6fdc738e4cdec98048bacc
--cache work again: 38cc9a3e530ef2db6a6fdc738e4cdec98048bacc--cors be respected again: b7be3483cf40d71878c98e5c2c535c93358f3ad7--cache: 6ffdd4086f2f09d4f2f932d58a0a0670601ee67bBumped micro and async-to-gen: 24940881c93dd092745ee8b7e595a15eab19aa62 and a85d197e8706f9b4c9224a13bf8abe3f3c903ede
micro and async-to-gen: 24940881c93dd092745ee8b7e595a15eab19aa62 and a85d197e8706f9b4c9224a13bf8abe3f3c903edeYour coding agent can read these notes before it upgrades. Set up the MCP server →