gptr sends data to a model provider only when you run a prompt with that provider's model. The package itself collects nothing: there is no telemetry, no usage reporting and no network access when the package loads. This page lists what a request contains so that you can decide what may leave your machine.
Details
R tools compute on objects already in memory; a large dataset does not need to be uploaded in full for a conversational agent to analyze it. Descriptions and tool results can still contain data values. Native typed decision inputs use the separate encoding described below.
What a request contains
Your prompt and the conversation so far.
With summary context, a budgeted description of each attached object (its class, dimensions, column names and types and a few values); a small object can appear in full.
Automatic context: a short listing of the objects in the evaluation environment (names, classes and sizes), the R version, platform and available packages, and the project instruction files (
AGENTS.md,CLAUDE.md,.gptr/vignette.Rmd).Tool results: the printed output of R code the model ran, the parts of files it read, and images of plots it made. In
manualmode every action that is not known to be read-only needs your approval before its result can be sent.
A System 1 question (a classifier model such as Jev) sends the inputs themselves: each
element of a vector (text up to 100,000 characters), each row of a data frame as a record, a
description of larger objects, and for a piped session its last answer (at most
gptr.s1_state_max characters). Do not ask System 1 questions about data that may not leave
your machine.
Registered secrets are replaced by markers before anything is sent.
Limiting automatic context
.opts = list(context = "names") sends workspace object names and attached-object headers,
and .opts = list(context = "none") suppresses workspace and attached-object descriptions.
Prompts, tool results and native typed decision inputs have their own paths. Attach only the
objects the task needs. The plan mode permits actions classified as read-only so you can
inspect a proposed workflow before allowing changes to your workspace.
Acknowledgment
The first time you use a provider (or a command-line route such as claude_code or codex)
in an interactive session, gptr shows what automatic context is sent and records your
acknowledgment in your user settings. A non-interactive run with a provider that was never
acknowledged stops with a gptr_error_egress condition. Record the acknowledgment once with
gptr_config(egress = list(anthropic = "ack"), .scope = "user") (this replaces the stored
list, so name every provider you use), or run with .opts = list(context = "none"). Offline
providers such as gptr_fake_provider() and local providers on a loopback address need no
acknowledgment. An Ollama server can forward requests to cloud models, so Ollama is exempt only
while its local-only inference is on (the default; see providers in gptr_config()).
Other network use
gptr contacts nothing else on its own. The model catalog is refreshed only by
gptr_models(refresh = TRUE), reachability checks run only with
gptr_providers(check = TRUE), and MCP servers, sub-agents and command-line tools are
contacted only when a session uses them. The claude and codex command-line routes send
the conversation through those vendors' tools under their own terms.