Use case

Proxies for NemoClaw: two proxies, only one of them yours

Give NVIDIA NemoClaw a proxy: the variables it carries into the sandbox, the seven hosts it keeps off them, and why a policy edit beats a proxy setting.

HProxy Team··Updated September 21, 2026·7 min read
HProxy.Use case

Free proxies won't hold up here.

Shared datacenter IPs get flagged and dropped fast. When it has to hold, gaming, streaming, accounts, you need mobile and residential IPs that read as a real device, from $0.44/GB, pay as you go.

Proxies for AI Agents

Most projects in this series have no proxy support and we have to go looking for a door. NemoClaw has the opposite problem. Search its code for the word proxy and 870 files answer, and almost none of them are about yours.

NVIDIA's sandbox runs a proxy of its own in front of every agent, and a network policy decides what that proxy will connect to. Your proxy is a second hop. Knowing which one is refusing you saves the whole afternoon. We read tag v0.0.127 on 21 September 2026.

Whose proxy is in the path

Read the last row first. A host the policy does not allow is refused whatever you configure. A contributor reported exactly that the day we read the code: the baseline policy allowed one service endpoint and

denies HTTPS CONNECT to portal.nousresearch.com. The request is rejected by the sandbox proxy before it reaches the origin service

So when an agent cannot reach something, your first question is not which proxy to set. It is whether the policy allows the host at all.

Where your proxy goes

On the host, in the ordinary variables. The onboarding collects HTTP_PROXY, HTTPS_PROXY, NO_PROXY and their lowercase spellings and carries them in. A named allow list forwards the same six into the processes the agent spawns, which is where the agent's own fetching happens. The list beside it covers certificates, starting with SSL_CERT_FILE, which is what an intercepting company proxy needs.

That alone puts this project ahead of most of the field. It is proxy aware on purpose rather than by accident.

The seven hosts it keeps off your proxy

Here is the part worth stealing. When a proxy is present, the sandbox adds seven hosts to your bypass list:

Added to NO_PROXYWhat it protects
localhost, 127.0.0.1, ::1, 0.0.0.0the agent reaching its own services
host.docker.internal, host.containers.internalthe container reaching the machine it runs on
inference.localmanaged inference, which must not leave through your proxy

Their own comment says the goal plainly: keep host loopback, container host aliases and managed inference off any forwarded host proxy chain. Your existing entries are kept and theirs are appended, so nothing you set is thrown away.

And then the detail that made me sit up:

Keep both spellings identical so a consumer's case precedence cannot discard exclusions configured through the other spelling.

Clients disagree about whether the uppercase or lowercase variable wins. This writes both to the same value so the disagreement cannot cost you anything. It is the most careful handling of these variables we have read in this whole series, and it quietly prevents the bug that breaks agents elsewhere, where loopback traffic goes through the proxy and the agent cannot reach its own services.

The login question, answered better than anywhere else

This project looks inside your proxy address for a username and password. Two functions exist for nothing else.

And when it finds one, it refuses to remember it:

Non-secret replay intent. Proxy credentials remain launch-only and never enter the canonical startup profile or durable receipt.

A proxy address without a login gets written into the saved startup profile. One with a login does not, and the profile records instead that you will have to supply it again.

Proxy login in the URLAllowed address
Written to the saved profileno, by designyes
Needed again at each launchyesno
Can appear in a durable receiptno, by designnothing to appear

That is correct engineering, and it has a practical consequence: on this project an allowed address fits better than a password. Not because a password is unsafe here, but because the sandbox deliberately forgets it, and you will be typing it again every single launch.

Why you cannot simply open the policy

The obvious workaround is to allow everything in the network policy and let your proxy sort it out. The policy validator is built to stop that. It rejects catch-all endpoints and tells you to name a specific public hostname instead, while permitting scoped subdomain wildcards such as one covering a single domain.

Which is the right call. A sandbox whose policy says everything is not a sandbox. It does mean a blocked host is a policy edit, not a proxy setting, and the page you are reading cannot sell you out of that.

One more thing you may find and should leave alone: the managed lanes have their own trusted proxy variable. It is not yours to set, and an open report shows the project is currently tightening what happens when someone forges it.

Which proxy type fits it?

The lane your address touches is the agent fetching public sites, and whatever it spawns to do that. Managed inference and managed search never use it, because the gateway holds those keys and makes those calls itself.

Residential, for hosts that answer a server address differently. Our own paired test is the honest size of it: 4 of 13 sites answered a residential address differently from a server one, and four refused both.

One sandbox host, one address, which suits address authentication. Here that is more than tidiness: it matches how the project chooses to store things. The machine is allowed by its address, up to 150 per plan on a Residential Premium plan. The residential proxies page lists the plans, and the plan API manages allowed addresses from code.

What breaks

  • A host is refused although your proxy works. The policy does not list it. Edit the policy.
  • You tried to allow everything. Catch-all endpoints are rejected by design.
  • Your login vanishes between launches. That is deliberate, and an allowed address is the way around it.
  • Local inference stopped working. Check that the bypass list still carries the seven local hosts.
  • You searched the code for proxy. Most of the 870 files are the sandbox proxy, the DNS proxy, or a reverse proxy in front of local inference.

What this page does not cover

We read the code and the issue tracker as text and did not run NemoClaw, so we did not watch a request leave through an address and did not test a policy edit. We did not launch a sandbox twice to watch the credential behaviour, and we did not test an intercepting company proxy with its certificate. The project publishes no releases, only tags, and it was pushed again on the day we read it, with 709 open issues and pull requests. We will check by 21 October 2026 whether the bypass list still holds seven hosts, whether proxy credentials are still launch only, and whether the catch-all rule has changed.

Where to go from here

Proxies for NanoClaw is the closest relative: another sandbox where the address belongs at the gateway rather than in the agent. Proxies for OpenClaw covers one of the agents this sandbox runs, on its own. Proxies for ComfyUI is the opposite case, where no setting exists and half the program ignores the variables anyway.

Sources

  • The sandbox proxy refusing a host at CONNECT, and the policy as its allow list. NVIDIA/NemoClaw issue 12166, opened 21 September 2026, read the same day.
  • The host proxy variables and the credential detection: src/lib/onboard/host-proxy-env.ts, tag v0.0.127.
  • The seven local hosts, the appended bypass list and the case precedence comment: src/lib/proxy/local-no-proxy.ts, same tag.
  • Proxy credentials kept launch only: src/lib/onboard/managed-startup/onboard-profile.ts, same tag.
  • Catch-all hosts rejected in policy endpoints: src/lib/policy/semantic-validation.ts, same tag.
  • The proxy and certificate variables forwarded to subprocesses: nemoclaw/src/lib/subprocess-env.ts, same tag.
  • Managed search keys kept gateway side and rewritten at egress: src/lib/onboard/web-search-verify.ts, same tag.
  • The trusted fetch proxy variable being hardened: issue 12127, 20 September 2026.
  • Repository facts, tags and issue counts: GitHub API, read 21 September 2026.
  • Our paired address test of 19 September 2026: 16 URLs, plain requests, two runs from our server and two through a residential line of our house plan.
  • Plans, allowed addresses and per gigabyte pricing. HProxy documentation, hproxy.com/docs, 21 September 2026.

Frequently asked questions

How do I give NemoClaw a proxy?
Set the standard variables on the host. The onboarding reads them and carries them into the sandbox and into the processes the agent spawns.
Why is a host still blocked?
Because the sandbox runs its own proxy and the network policy is its allow list. A host outside that policy is refused before your proxy matters.
Will it break my local inference?
No. Seven local hosts, managed inference among them, are added to your bypass list automatically.
Can I use a proxy login?
Yes, but it is never written to the saved profile, so you supply it at every launch. An allowed address avoids that.
Can I allow every destination in the policy?
No. Catch-all endpoints are rejected, and you are told to name a hostname. Subdomain wildcards are allowed.

Proxies that don't die mid-job

Residential, ISP, datacenter and mobile, verified by the same engine that runs tens of millions of checks. They read as a real device and hold up under load. Pay as you go, and your balance never expires. $0.44/GB is the 2,000 GB+ rate; a single gigabyte is $0.50/GB, with no minimum order.

129M+ proxy checks run · 100+ countries · HTTP / HTTPS / SOCKS · re-checked every few minutes · no signup

HProxy.

Honest guides and comparisons on proxies, scraping and staying unblocked, from the team that runs the network.

RSS feed