Request boundary
What is the request data path?
The path has four owners. Treating them as one system creates inaccurate privacy and capability claims.
- 01
User selects context
The user chooses the request, relevant local records, and current attachment before submission.
- 02
BenAgent prepares transport
BenAgent builds one bounded envelope, checks the configured endpoint, and adds the selected provider token only when one exists.
- 03
The runtime executes
Hermes or OpenClaw owns reasoning, files, tools, skills, memory, network access, and execution under its own configuration.
- 04
The provider performs inference
The runtime's chosen model provider owns model processing, provider retention, account terms, and billing.
Versioned data record
Which data leaves, when, and how is it retained?
Every row names the trigger and deletion boundary. “Local-first” is not used as a substitute for these details.
| Data class | Local storage | Leaves the Mac when | Retention and deletion boundary |
|---|---|---|---|
| Notes and Prompt Inventory | SwiftData | The user selects relevant content, prepares a request and submits it. Destination: The configured Hermes or OpenClaw endpoint | Retained as local records until the user deletes the individual note or prompt, or removes local app data. Boundary: BenAgent can delete its local record; it cannot delete a copy already processed by a configured endpoint. |
| Clipboard History | Dedicated unencrypted SwiftData store in Application Support when the opt-in feature is enabled | The user chooses Send to Agent, reviews the prepared composer content and submits it. Destination: The configured Hermes or OpenClaw endpoint | Controlled by the selected retention and storage limit; pinned entries are exempt from automatic cleanup. Boundary: BenAgent supports per-entry, recent-window and full-history deletion, including pinned entries for a full clear. |
| Completed conversation text | SwiftData conversation records | A new request is submitted with bounded completed history: at most 200 messages and 120,000 text characters. Destination: The configured Hermes or OpenClaw endpoint | Retained for local continuity until the relevant local conversation data or app data is removed. Boundary: Removing a local record does not erase data retained independently by a configured runtime or model provider. |
| Current-turn image attachment | Sanitized image bytes persisted with the local conversation after submission | The user attaches the image to the current request and submits it. Destination: The configured Hermes or OpenClaw endpoint | Retained with the local conversation. Historical images are represented by metadata/placeholders and are not retransmitted as bytes on later turns. Boundary: Cancelling before send discards the composer attachment; provider-side deletion follows that provider's controls. |
| Provider gateway token | macOS Keychain, scoped separately to Hermes or OpenClaw | BenAgent sends an outbound request to that selected provider and the user configured a token. Destination: Authorization header for the selected configured endpoint only | Retained in Keychain until the user clears the field or removes the Keychain item. Boundary: Clearing a saved token removes the local Keychain item; BenAgent never exposes it through prompts, request bodies or the local Feature API. |
| Voice audio and transcript | No BenAgent-hosted audio archive | A recognized transcript becomes a user request and the user or configured voice flow submits it. Destination: The configured runtime receives the submitted text; Apple speech-service processing depends on the active macOS speech path and system terms. | Completed submitted text can become part of the local conversation; raw microphone audio is not uploaded to a BenAgent server. Boundary: The user can stop capture and revoke microphone or speech permissions in macOS System Settings. |
| Supported background event payload | Pending event data in local preferences, bounded to 50 events and retained for up to seven days | The configured runtime or plugin sends the event to BenAgent's loopback-only listener; BenAgent does not relay it to a BenAgent cloud service. Destination: Native BenAgent event/result surfaces | Dismissed events are removed from the pending queue; stale pending events are removed after the retention window. Boundary: Runtime-side cron history and plugin retry queues remain under the configured runtime's controls. |
Guardrails
Which privacy claims are accurate?
No BenAgent prompt relay
Submitted requests go to the endpoint the user configures rather than through a BenAgent-hosted message service.
Remote remains remote
A remote endpoint or model provider can process submitted content outside the Mac even when BenAgent's own records are local.
Credentials stay scoped
Provider gateway tokens are Keychain-backed and are not reused as the separate local runtime-configuration administrative token.
- No claim that every AI workflow is fully local.
- No claim that BenAgent can delete provider-side data.
- No automatic upload claim for local productivity records.
Frequently asked questions
Questions about BenAgent privacy boundaries
Does BenAgent send prompts through a BenAgent cloud server?
No. BenAgent sends a submitted request directly to the Hermes or OpenClaw endpoint the user configures. The endpoint can be local or remote, so direct transport does not mean every request remains on the Mac.
Are Notes, Prompt Inventory, and Clipboard History uploaded automatically?
No. These records stay in local BenAgent stores until the user selects relevant content, prepares a request, and submits it. Clipboard History is opt-in and Send to Agent first prepares reviewable composer content.
Where are Hermes and OpenClaw gateway tokens stored?
Optional provider-scoped gateway tokens are stored in macOS Keychain. BenAgent sends a token only as the Authorization header for the selected configured endpoint and does not expose it in prompts, request bodies, logs, or the local Feature API.
Can BenAgent delete data held by a runtime or model provider?
No. BenAgent can remove its local records and Keychain items through its own controls, but a runtime or model provider has separate retention and deletion policies for content it already processed.
Does local conversation storage mean inference is fully local?
No. BenAgent stores completed conversation continuity locally, while the configured runtime and its model provider can process a submitted request on another machine or service.
