Use case

Proxies for PicoClaw: two fields, and the useful one is undocumented

Set a proxy in PicoClaw: the undocumented web tools field, the four accepted schemes, why the login goes in the URL, and the guard exception for your proxy.

HProxy Team··Updated September 20, 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

PicoClaw is a small agent written in Go that runs on modest hardware. It has a proxy setting, which puts it ahead of most of this series. It has two, in fact, and the one you find first is the one you probably do not want. We read release v0.3.1 on 20 September 2026, and checked the default branch too.

Two fields

FieldWhat it routesIn the documentation
the web tools proxyweb searches and page fetchesno
registries.github.proxyinstalling skills from GitHubyes

Search the tools reference for the word proxy and you find the second one, described as an HTTP proxy for GitHub API requests. It is real and it works, and it covers skill installs only.

The field that matters is the web tools one. The agent passes it to the page fetch tool at startup, every search integration hands it to the shared client, and the web interface exposes it as an editable setting. It is simply not in the reference tables, which list the fetch size limit, the output format, the native search preference and the private host whitelist, and stop there.

So if you concluded this project can only proxy skill downloads, that is the documentation talking, not the code.

What the helper accepts

Every proxied client in the project comes from one small function, and it is strict in a good way:

An unsupported scheme does not fall back to a direct connection. It returns an error that names the four it accepts. A URL without a host is refused the same way. That is the behaviour we want from a proxy setting, because the alternative is traffic leaving from an address you did not choose.

The login goes inside the URL here. This runtime passes a userinfo part as a proxy authorization header, so http://user:pass@host:8080 is the right shape. Readers of our browser pages will notice that is the exact opposite of Chrome, which ignores a login written that way.

The h that does nothing

Plenty of good advice says the h in socks5h decides who resolves the hostname, and that leaving it off leaks your DNS. That is true of curl. It is not true here.

Go's own documentation for the HTTP client says it plainly: the supported schemes are http, https, socks5 and socks5h, and socks5 is treated the same as socks5h. Both spellings send the hostname to the proxy. PicoClaw accepts both, which is sensible, because people type the one their proxy vendor's documentation shows them.

Two ways in

The empty value in that chart is not an error and not a proxy. It means the process proxy settings are used instead.

That is a deliberate line of code, not a default. In this language a hand built HTTP transport has no proxy at all unless something sets one, and this helper sets it in both branches: your address when the field is filled, the environment when it is not.

So you can configure the field, or export the usual variables and leave the field empty. Both work, and they cover the same three places: searches, page fetches, skill installs.

The exception for your own proxy

Here is the part we want to praise, because the previous page in this series shows the alternative.

The page fetch tool uses a guarded client. It refuses to connect to private or local addresses, checks again on every redirect, and stops after ten of them. That protects an agent from being talked into fetching something on your own network.

A proxy is usually on a private address. A blanket refusal would therefore block the connection to your own proxy, so they wrote one narrow exception: the first hop to the configured proxy is allowed, and nothing else.

TargetAllowed
a public addressyes
a private or local addressno
a redirect to a private addressno
the first hop to your configured proxyyes

Our nanobot page covers the same hazard solved the other way, by dropping the protective transport when a proxy is configured. Both are defensible. This one keeps more.

If you genuinely need an internal host, there is a documented whitelist for that rather than a flag that turns the whole guard off.

Which proxy type fits it?

Residential, for the sources that answer a hosting address differently. Our own paired test is the size of that effect: 4 of 13 sites answered a residential address differently from a server one, using plain requests of the kind this fetch sends.

The traffic is small. A page fetch stops at ten megabytes by default and search results are text, so a per gigabyte line goes a long way on this tool. Two notes. This agent is built to run on small hardware, and an allowed address means no login sits in a configuration file on a device that might be imaged or shared: on a Residential Premium plan your machine's address can be allowed, up to 150 per plan. And because the guard already permits the first hop, a local forwarder in front of your line works without any extra configuration. The residential proxies page lists the plans, and the plan API manages allowed addresses from code.

What breaks

  • Skills install through the proxy and searches do not. You set the documented field. The web tools have their own.
  • The agent refuses to start a request. Check the scheme. Only four are accepted, and the error names them.
  • Your login is ignored. Put it in the URL rather than in a separate setting.
  • You added the h and nothing changed. Correct. In this runtime the two SOCKS spellings are the same.
  • An internal host will not load. That is the guard. Use the whitelist rather than removing it.

What this page does not cover

We read the release as text and did not run the agent, so we did not watch a fetch use an address, did not exercise the guard and did not measure a run's traffic. We read the client helper, the guarded client, the skills installer, the search integration's call sites and the tools reference closely, and used a code search rather than reading the whole repository. We did not establish whether model provider calls go through any proxy, only the web tools and the skill installs. The release we read is from 3 July 2026 while the branch was pushed to on 17 September 2026, so a reader on the nightly build may see more. We will read it again by 20 October 2026.

Where to go from here

Proxies for nanobot covers the same private address problem solved the other way round. Proxies for OpenClaw covers a larger agent with more network paths and a harder configuration. Proxies for the Google Maps scraper covers another Go project, where a local forwarder is started for you and refuses to run without a login.

Sources

  • The shared client helper with its four schemes, its errors and its environment fallback (pkg/utils/http_client.go). The guarded client, the private target dialer, the redirect check and the exception for the configured proxy (pkg/utils/http_guard.go). The call sites in the search integration and the skills installer, and the agent wiring the fetch tool with the web proxy (pkg/tools/integration/web.go, pkg/skills/installer.go, pkg/agent/agent_init.go). sipeed/picoclaw, release v0.3.1 of 3 July 2026, read 20 September 2026.
  • The documented skills registry proxy, the web fetcher settings and the private host whitelist. PicoClaw tools configuration reference, docs/reference/tools_configuration.md, same release.
  • The supported proxy schemes, the equivalence of socks5 and socks5h, and the userinfo handling. Go standard library, src/net/http/transport.go, read 20 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. Raw output is kept in the research folder of our OpenClaw page.
  • Plans, allowed addresses and per gigabyte pricing. HProxy documentation, hproxy.com/docs, 20 September 2026.

Frequently asked questions

Where is the proxy setting in PicoClaw?
There are two. The documented one is the GitHub skills registry proxy, which only installs skills. The one that routes your searches and page fetches is the web tools proxy, which the code and the interface use but the reference does not mention.
Which proxy types does it accept?
Four: http, https, socks5 and socks5h. Anything else is a hard error naming the four, rather than a silent direct connection.
Where do the username and password go?
Inside the proxy URL. This runtime turns a userinfo part into a proxy authorization header, which is the opposite of the browser based tools in this series.
Does the h in socks5h change anything?
Not here. Go's own documentation says socks5 is treated the same as socks5h, so the hostname goes to the proxy either way.
Will its private address guard block my local proxy?
No. The guard refuses private and local targets, and then makes one narrow exception for the first hop to the proxy you configured.

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