Skip to content

Latest commit

 

History

History
86 lines (71 loc) · 4.62 KB

PRIVACY.md

File metadata and controls

86 lines (71 loc) · 4.62 KB

Privacy

Eggshell is local software. It has no hosted Eggshell service, telemetry, analytics, advertising identifier, or account system.

Data Eggshell observes

When an integration is enabled, Eggshell can receive the current user prompt, supported tool inputs and results, the final assistant message, session and turn identifiers, and the working directory. It does not scrape private transcripts or collect hidden chain-of-thought. The separate harness adapters forward selected event fields, excluding account details, transcript paths, and reasoning fields.

The active turn is staged under the local Eggshell data root described below. In a writable profile, observed tool results are journaled and queued for saving to the single .egg memory database selected by that profile while the turn is still running. The final answer is queued when the turn stops. If the turn is interrupted, already observed tool outcomes can still be saved; the parent task stays open until a final outcome is available. Read-only and off profiles are available. !egg drop clears the active turn but does not erase saved observations or cancel queued commits. It is not a way to retract data that a hook has already recorded.

Network access

Eggshell's runtime and matcher operate locally. Installation downloads the Eggshell release, the pinned fastembed Python package, and the configured MiniLM model. After installation, prompts, tool results, embeddings, and .egg databases are not sent to an Eggshell server. The daemon listens only on the local loopback interface.

Selected prior work is sent to your agent as model input. It may contain earlier prompts, source code, commands, and tool results. That context is processed under the settings and terms of the agent's model provider. Local memory storage does not make model inference local. Normal task and handoff tokens still count toward model usage; Eggshell makes no additional LLM calls to organize memory.

A read-only profile prevents new saves but still permits existing memory to be sent to the agent. Use !egg off in Codex, or the adapter's control ... off command, to disable both recording and handoff delivery for that session.

Stored data

  • Project .egg memory paths are restricted to non-symlinked paths below that project. Shared paths may be named only by user-owned global or explicit configuration. Each database is a directory containing page data and a committed head. Missing read paths are not created.
  • Staged turns, recovery state, and daemon coordination live under EGGSHELL_DATA_ROOT, which defaults to $EGGSHELL_PREFIX/share/eggshell/plugin. Integrations use this stable root, with separate adapter session namespaces for each harness. It does not select or relocate any saved .egg database.
  • Adapters store session ownership, opaque turn/call identifiers, and correlation hashes in per-session JSON files under the data root's adapters directory. Writable turns may also retain an authorized turn snapshot for late tool results and a temporary answer candidate under their session directory. Ambiguous Gemini tool results, when recording is permitted, stay in adapters/unattributed without being assigned to another task or inserted into the memory graph.
  • The MiniLM runtime and model live under $EGGSHELL_PREFIX/share/eggshell/minilm.
  • EGGSHELL_PREFIX defaults to ~/.local and may point to another absolute filesystem when the home directory has limited quota.
  • Disposable embedding vectors live under the Eggshell data root. They are a cache and cannot add saved work on their own.

Created database data, staged-turn, and session-state files use owner-only 0600 permissions. Eggshell-owned session and database directories use 0700 permissions.

egg uninstall codex removes the Plugin and launcher but intentionally keeps user-owned .egg databases and recovery data. The adapter uninstaller similarly removes its integration entries while retaining memory and shared runtime files. To erase Eggshell data completely, remove the .egg paths listed by !egg inspect and the local Eggshell data directory after uninstalling. Inspect those exact paths before deleting them.

Control boundary

Prior outcomes are fallible historical data, not instructions. Recorded tool occurrences are never rewritten by semantic matching. Hook errors return without blocking ordinary agent execution. Eggshell does not invent missing results or mark an incomplete task as completed when saving observed work.

Security issues should be reported through GitHub's private vulnerability reporting rather than a public issue. See SECURITY.md.