
proxyline
github.com/openclaw/proxyline- Category
- Developer Tools
- Rank
- No. 1482Tools index
Previous survey · No. 1474 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- openclaw
- GitHub
- 32 stars
- Latest release
- v0.3.12
- Date
About
Process-global proxy routing for Node.js — declarative rules for forwarding requests through different proxies based on host, header, or process.
What it does
Proxyline puts one reversible networking policy around a Node process. Managed mode requires a chosen HTTP or HTTPS proxy, while ambient mode reads standard proxy environment variables once. It covers built-in HTTP clients, global fetch, Undici, compatible WebSocket clients, and explicit CONNECT tunnels.
Why it's ranked here
The appeal is unusually clear policy behavior across several common Node networking stacks. Managed mode refuses missing or unsupported proxy configuration, reports routing reasons, and restores captured globals during shutdown. That makes it credible for controlled application egress, within its documented process boundary.
What's good
Routing decisions distinguish proxied, direct, and blocked outcomes, with reasons and credential-redacted proxy URLs. Direct exceptions can be process-wide or limited to one asynchronous context. Proxy CA trust stays separate from destination TLS validation. The documented test suite covers tunneling, authentication, bypasses, TLS, WebSockets, fetch, and environment behavior.
Tradeoffs
This is not a sandbox. Raw sockets, DNS, native transports, private transport stacks, and networking references captured before installation can escape its policy. Install order therefore matters. Only one runtime may be active per process, ambient configuration is snapshotted at installation, and the package requires a recent Node release plus a compatible Undici peer dependency.
How to use it well
Use it in Node applications or command-line tools that need consistent proxy behavior across mixed networking clients. Install it before application and plugin imports, keep managed bypasses narrow, inspect reported decisions, and always restore the runtime during tests. Pair it with operating-system egress controls when handling untrusted code. It does not cover raw sockets, DNS policy, or every private transport implementation.
Technical notes+
package.json defines an ESM-only public npm package with TypeScript declarations, Node >=22.19.0, and an Undici >=8.5.0 <9 peer range. src/index.ts exposes the public library surface. src/runtime.ts patches Node HTTP(S), fetch globals, and the Undici dispatcher, while using AsyncLocalStorage for scoped bypasses. src/env.ts snapshots upper- and lowercase proxy variables and implements exact, suffix, wildcard, port, and IPv6 NO_PROXY matching. src/connect.ts validates CONNECT authorities, supports HTTP and HTTPS proxy endpoints, applies abort and timeout handling, caps response headers at 16 KiB, and preserves bytes received after the CONNECT header. src/shared.ts scopes proxy CA loading and strips credentials, query strings, and fragments from reported proxy URLs. docs/testing.md describes unit, integration, package-entrypoint, and coverage-gated testing across Ubuntu, macOS, and Windows.
Observed
- License
- MIT
- Primary language
- TypeScript
- Packaging
- Public ESM-only npm package named @openclaw/proxyline, with TypeScript declarations
- Install surface
- npm or pnpm, with Undici >=8.5.0 <9 as a peer dependency
- Interface
- Node.js library API
- Platform support
- Node.js 22.19.0 or newer
- Network surfaces
- Node HTTP and HTTPS, global fetch, Undici, compatible WebSocket clients, and explicit HTTP CONNECT tunnels
- Test structure
- Documented unit, integration, package-entrypoint, end-to-end proxy lab, and coverage-gated tests
Read from README.md, package.json, src/index.ts, src/env.ts, src/types.ts, src/shared.ts, src/connect.ts, src/runtime.ts, src/node-http.ts, src/dispatcher-brand.ts, docs/index.md, docs/modes.md, docs/README.md, docs/testing.md, docs/security.md.
What it can do
Route requests through different proxies based on hostname
HTTP requests and hostname-based routing rules → Requests forwarded through specified proxies
Route requests through different proxies based on headers
HTTP requests and header-based routing rules → Requests forwarded through appropriate proxies
Route requests through different proxies based on process context
HTTP requests and process-based routing rules → Requests forwarded through designated proxies
Configure declarative proxy routing rules
Routing configuration with host, header, or process conditions → Active proxy routing rules for the Node.js process
Apply process-global proxy settings
Node.js application and proxy configuration → All HTTP requests routed through configured proxy system
Tags
Tech Stack
Media

Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.