Skip to contents

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 manual mode 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.