Skip to content

docs(readme): add Network behavior section documenting every endpoint#270

Open
veetihietasalo wants to merge 1 commit intosuperagent-ai:mainfrom
veetihietasalo:docs/network-behavior
Open

docs(readme): add Network behavior section documenting every endpoint#270
veetihietasalo wants to merge 1 commit intosuperagent-ai:mainfrom
veetihietasalo:docs/network-behavior

Conversation

@veetihietasalo
Copy link
Copy Markdown
Contributor

@veetihietasalo veetihietasalo commented Apr 17, 2026

Summary

Adds a "Network behavior" section to the README that documents every host Grok connects to, when, and why.

Why

While evaluating Grok CLI I ran strings on the compiled binary to understand its network surface before wiring it into sensitive workflows. I was initially surprised to see Coinbase AgentKit hosts (basescan.org, mainnet.base.org), the brin.sh endpoint, and several blockchain-tooling domains (abitype.dev, openchain.xyz, 4byte.sourcify.dev). All of them turned out to be legitimate — but tracing each one back to its triggering code path took time that would be better spent once, in docs.

This PR captures that research so the next curious user (or compliance reviewer) doesn't have to redo it.

Structure

Two tables, grouped by trigger:

  • Always on (2 hosts) — api.x.ai (provider), api.github.com (updates)
  • Feature-gated (8 hosts/groups) — Telegram, payments/brin, AI Gateway, Coinbase AgentKit (wallet + Solidity), IPFS/Arweave, sigstore, skills/MCP

Each row traces back to a source file or dependency so the table can be mechanically updated as code evolves.

Notable specifics

  • api.brin.sh is explained correctly: it's scoped to the x402 payments feature and only sees the target domain of a payment operation — not prompts, not code. First-party threat-detection from the same team. Having this documented upfront preempts "why is this binary calling an unknown endpoint" concerns.
  • Blockchain endpoints are attributed to @coinbase/agentkit so users understand they're dormant unless wallet/on-chain tools are invoked.
  • Explicit "no telemetry / no analytics" statement — rare-but-valuable reassurance for enterprise evaluators.

Non-goals

  • This PR does not add any opt-out env vars (none currently exist in the code). If you want to add e.g. GROK_DISABLE_BRIN=1, that's a separate PR I'm happy to send.
  • This PR does not change behavior — docs only.

Test plan

  • Review the table accuracy against current code — every row is cited, but confirm per-file attributions
  • Check the rendered markdown in GitHub's preview
  • Flag any hosts I missed (the table is based on strings of the binary + source grep; bundled deps may reach additional hosts I didn't catch)

Note

Low Risk
Low risk because this PR only updates documentation and does not change runtime behavior. The main risk is documentation drift or inaccurate endpoint listings that could mislead compliance/network-allowlist setups.

Overview
Adds a new Network behavior section to README.md that documents which HTTPS hosts Grok may contact, split into always-on vs feature-gated traffic, with pointers to the triggering codepaths/dependencies.

Also clarifies what is not sent (no default telemetry; prompts/code stay within the model provider channel) and provides guidance for network-restricted/allowlist environments, including the minimum required hosts and how sandbox flags further constrain egress.

Reviewed by Cursor Bugbot for commit 7943680. Bugbot is set up for automated code reviews on this repo. Configure here.

Document which hosts Grok connects to, when, and why. Useful for
network-restricted environments, compliance reviews, and users who
see unexpected endpoints in packet captures or allowlist audits.

Covers:

- Always-on: api.x.ai (provider), api.github.com (updates)
- Feature-gated: Telegram, payments/brin, AI Gateway, Coinbase AgentKit
  (wallet + Solidity tooling), IPFS/Arweave (generated media),
  sigstore
- Explicitly notes that brin.sh is scoped to the x402 payments feature
  (not general URL scanning) and sees only the domain being checked
- Affirms no analytics/telemetry in default config

Traces every host back to the specific source file or dependency that
invokes it so maintainers can update this table mechanically as deps
change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 17, 2026 08:39
@brin-security-scanner brin-security-scanner Bot added the contributor:verified Contributor passed trust analysis. label Apr 17, 2026
@brin-security-scanner brin-security-scanner Bot added the pr:verified PR passed security analysis. label Apr 17, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new “Network behavior” section to the README to document Grok CLI’s outbound network surface area for compliance/restricted-network use cases.

Changes:

  • Introduces an “Always on” table of core endpoints (provider + update checks).
  • Introduces a “Feature-gated” table mapping optional features to additional endpoints.
  • Adds guidance on what data is (and is not) sent, plus a minimal allowlist suggestion.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md
| `mainnet.base.org`, `basescan.org`, `api.basescan.org`, `sepolia.base.org` | Coinbase AgentKit tools — Ethereum/Base wallet operations. Only reached when the agent invokes wallet/on-chain functions. | `@coinbase/agentkit` |
| `abitype.dev`, `openchain.xyz`, `4byte.sourcify.dev`, `docs.soliditylang.org` | Solidity ABI lookups and contract decoding (Coinbase AgentKit). Only reached when decoding on-chain data. | `@coinbase/agentkit` |
| `ipfs.io`, `arweave.net` | Decentralized storage for generated media (images, videos) via the built-in `generate_image` / `generate_video` tools | agent tools |
| `fulcio.sigstore.dev` | Sigstore verification for signed release artifacts | `@npmcli/arborist` |
Comment thread README.md
| `abitype.dev`, `openchain.xyz`, `4byte.sourcify.dev`, `docs.soliditylang.org` | Solidity ABI lookups and contract decoding (Coinbase AgentKit). Only reached when decoding on-chain data. | `@coinbase/agentkit` |
| `ipfs.io`, `arweave.net` | Decentralized storage for generated media (images, videos) via the built-in `generate_image` / `generate_video` tools | agent tools |
| `fulcio.sigstore.dev` | Sigstore verification for signed release artifacts | `@npmcli/arborist` |
| `api.github.com/repos/*`, `raw.githubusercontent.com` | Skill installs, release artifact downloads, MCP server fetches | `@modelcontextprotocol/sdk` and skill subsystem |
Comment thread README.md
| Host | Purpose | Source |
| --- | --- | --- |
| `api.x.ai` | xAI Grok API — the model provider. This is where your prompts and model responses travel. | `src/grok/client.ts` |
| `api.github.com` | Version resolution for `grok update` and release-manifest checks. | `src/utils/install-manager.ts` |
Comment thread README.md
Comment on lines +429 to +435
If you operate behind an allowlist, the minimum viable set is:

- `api.x.ai` (provider)
- `api.github.com` (if `grok update` is used)

Everything else is feature-gated — only allowlist the hosts above that correspond to features you actually use. The [Sandbox](#sandbox) mode additionally restricts outbound connections at the microVM level (see `--allow-host` and `--allow-net` flags).

Comment thread README.md

## Network behavior

Grok connects to a small, well-defined set of HTTPS endpoints. This section documents what hits the network and when, so you know what to expect — especially useful for network-restricted environments, compliance reviews, or running Grok in sensitive repos.
Comment thread README.md
| `ai-gateway.vercel.sh`, `ai-sdk.dev` | AI Gateway routing when configured as an alternative to direct xAI access | `@ai-sdk/*` dependencies |
| `mainnet.base.org`, `basescan.org`, `api.basescan.org`, `sepolia.base.org` | Coinbase AgentKit tools — Ethereum/Base wallet operations. Only reached when the agent invokes wallet/on-chain functions. | `@coinbase/agentkit` |
| `abitype.dev`, `openchain.xyz`, `4byte.sourcify.dev`, `docs.soliditylang.org` | Solidity ABI lookups and contract decoding (Coinbase AgentKit). Only reached when decoding on-chain data. | `@coinbase/agentkit` |
| `ipfs.io`, `arweave.net` | Decentralized storage for generated media (images, videos) via the built-in `generate_image` / `generate_video` tools | agent tools |
@homanp
Copy link
Copy Markdown
Contributor

homanp commented Apr 17, 2026

@veetihietasalo this is good but makes the README a bit bloated. Mind making a much more condensed version of this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contributor:verified Contributor passed trust analysis. pr:verified PR passed security analysis.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants