NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2400 most downloaded on npm
The leanest and most handsome HTTP client in the Nodelands.
Last release 6 months ago
12 Mar 2026
Release timing varies
gaps range from 4 weeks to 2.3 years
Some releases are documented
notes for 34 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
15 years old
115 releases · first in 2011
package: update version
package: update version
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Remove on_socket_end callback by @tomas in #401
Docs: clarify connection keep alive behaviour by @Al-Kostryukov in #378
iconv.decodeStream instead of iconv.decode; Fixes #374 by @yetzt in #375Full Changelog: v3.0.0...v3.1.0
Removed usage of deprecated API by @adityapatadia in #348
application/vnd.api+json content types by @kfitzgerald in #362Full Changelog: v2.7.0...v3.0.0
Nothing published for this version
Removed usage of deprecated API by @adityapatadia in #348
application/vnd.api+json content types by @kfitzgerald in #362Full Changelog: v2.7.0...v2.9.0
Add support for application/vnd.api+json content types by @kfitzgerald in #362
application/vnd.api+json content types by @kfitzgerald in #362Full Changelog: v2.7.0...v2.8.0
add lookup param for request by @machao in https://github.com/tomas/needle/pull/360
Full Changelog: https://github.com/tomas/needle/compare/v2.6.0...v2.7.0
Support brotli compression on Node 10+ by @colinskow in https://github.com/tomas/needle/pull/282
follow_if_different_location config by @laurent35240 in https://github.com/tomas/needle/pull/300Full Changelog: https://github.com/tomas/needle/compare/v2.3.1...v2.6.0
Nothing published for this version
Nothing published for this version
Support brotli compression on Node 10+ by @colinskow in https://github.com/tomas/needle/pull/282
follow_if_different_location config by @laurent35240 in https://github.com/tomas/needle/pull/300Full Changelog: https://github.com/tomas/needle/compare/v2.3.1...v2.5.0
Nothing published for this version
Full Changelog: https://github.com/tomas/needle/compare/v2.3.1...v2.4.0
Full Changelog: https://github.com/tomas/needle/compare/v2.3.1...v2.4.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Right way to fix the socket.destroy issue (Node v8.12.0) by @tomas in https://github.com/tomas/needle/pull/263
Full Changelog: https://github.com/tomas/needle/compare/v2.2.2...v2.3.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Include sax parser as a dependency and use our own simple parser instead of xml2js by @tomas in https://github.com/tomas/needle/pull/236
Full Changelog: https://github.com/tomas/needle/compare/v2.1.2...v2.2.0
Nothing published for this version
Nothing published for this version
Full Changelog: https://github.com/tomas/needle/compare/v2.0.1...v2.1.0
Full Changelog: https://github.com/tomas/needle/compare/v2.0.1...v2.1.0
Update README.md by @cinjoff in https://github.com/tomas/needle/pull/206
Full Changelog: https://github.com/tomas/needle/compare/v1.5.2...v2.0.1
Nothing published for this version
Update README.md by @cinjoff in https://github.com/tomas/needle/pull/206
Full Changelog: https://github.com/tomas/needle/compare/v1.5.2...v1.6.0
Nothing published for this version
Ensure Accept header is respected when set, even if is true. For #205
Added stream_length option. If a stream is passed and its value is 0, detect the stream's length via stat and set it as 'Content-Length' header. If hi
Added stream_length option. If a stream is passed and its value is 0, detect the stream's length via stat and set it as 'Content-Length' header. If higher than 0, set is as the 'Content-Length' header directly.
Handle malformed cookies gracefully. Fixes #203
Nothing published for this version
Enable Z_SYNC_FLUSH to avoid zlib errors on truncated responses. Fixes #202
Emit a 'response' event on response.
Allow setting proxy via defaults (#194).
Just some cleanup and a haircut.
Just some cleanup and a haircut.
If output is requested, make sure callback is called after the file written to is closed.
err and timeout events to output stream object.Added 307 as a valid redirection code (#189, thanks @lauracpierre)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Convert all headers to lowercase when reading and setting. Fixes #167.
urlencoded. Fixes #171.Removed Connection: close header by default, unless running node < 0.11.4. This should make multiple requests to a server run much faster. More info a
Added rdf+xml to the list of parseable XML content types. Fixes #136
Allow setting parse/parse_response option to 'xml' or 'json' in order to skip parsing unwanted types.
needle.post('//foobar.com') should work now.New cookie parsing strategy (based on RFC 6265), thanks to the work by @jorgeaguirre.
Fixed Host header name in redirects.
follow_set_cookies when no cookies are received (#121).Added .parser property to response ('xml' or 'json' depending on the parser used).
debug module as a dependency.Fixed global variable leak. Thanks @bausmeier!
Added follow_set_referer option.
This version introduces a number of new things:
This version introduces a number of new things:
Important changes:
follow: true will no longer default to 10 redirects. You now need to explicitly pass a number.timeout: true will no longer default to 10000 milisecs. Same as above, a number is expected.Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →