Presence

by sara-star-quant

Not rated
GitHub

About

Presence: cross-session memory and a verification gate for Claude Code

Details

Author
sara-star-quant
Categories
AI

Setup

Install Presence in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/sara-star-quant/presence

Follow the installation instructions in the repository README, then restart your MCP client.

New inv0.8.0:opt-in webhook notifier for confidence-gate verdicts, off by default and hard-disabled underzerotrust. Seedocs/recipes.md.

Every Claude Code session starts cold. presence makes the next one start where the last one left off.

A Claude Code plugin with read-only projections (MCP server, AGENTS.md adapter) so MCP-aware clients (Cursor, Claude Desktop, Continue) and AGENTS.md-aware tools (Codex, Gemini CLI, Windsurf, GitHub Copilot) can also read its accumulated context. Turns every session into part of a continuum.

presenceadds four things to Claude Code, globally, with one install and zero per-project setup:
- Living project model.Claude builds and reuses notes about each repo it touches. No more re-deriving the same architecture every session.
- Outcome telemetry.Tracks what Claude committed, then watches for reverts, amends, and PR closes. Future sessions see "your last 3 changes here were reverted within 24h" instead of repeating the same mistake.
- Event digest.File changes, test failures, and build results that happened between turns are surfaced at the next prompt instead of needing to be polled.
- Calibrated confidence.The Stop hook checks whether success claims ("fixed", "done", "works") are backed by actual verification (tests run, build green) since the change. Warns when they're not. Optional hard gate ongit commit/push.

State lives in~/.claude/presence/, fully local, never uploaded.

curl -fsSL https://raw.githubusercontent.com/sara-star-quant/presence/main/install.sh | bash

No Python 3.12+? Append-s -- --bootstrapto auto-install it viauv(one call to astral.sh). The plain command above makes zero outbound calls.

That's the whole thing. Idempotent installer, makes no outbound network calls beyond fetching itself, applies globally to every Claude Code project. Restart Claude Code and run/presence-statusto confirm. For options (--bootstrapto auto-install Python,--verify,--build-extfor the native fast path), seeQuickstartbelow.

The--build-extcolumn reflects optional native acceleration via the Rust daemon client (./install.sh --build-extto compile locally, or--download-extto fetch a pre-built binary from the latest release). Without it, hooks run on the stdlib-only path. Seebench/HISTORY.mdfor the full version-by-version benchmark history.

All measurements: macOS arm64, Python 3.14.4. Reproduce locally withpython3 bench/<name>.py --runs N. Seebench/README.mdfor the full convention.

Recent changes: seeCHANGELOG.mdfor the full per-version diff. v0.8.0 ships an opt-in webhook notifier for confidence-gate verdicts, gated by the samenetwork.egress_allowedzerotrust switch as the release-freshness check. v0.5.0 ships composable redaction profiles for jurisdiction-aware sensitive data. Opt-in viaredact.profilesin settings:pii-eu,pii-us,pci-dss(PAN matches gated by Luhn). Newdocs/compliance.mdsays exactly what presence does and does not do for regulated workloads. No certification framing: profile names describe data classes, not compliance frameworks. v0.4.2 ships the cross-tool AGENTS.md adapter. SetPRESENCE_HOST=agents-mdand presence refreshes<repo>/AGENTS.mdon every Claude Code SessionStart, picked up automatically by Codex, Cursor, Gemini CLI, Windsurf, GitHub Copilot, and others reading the open AGENTS.md standard. Seedocs/multi-host.md. v0.4.1 shipped the MCP server: any MCP-aware client (Claude Desktop, Cursor, Continue, custom agents) can read presence's living model + outcome telemetry over JSON-RPC stdio. Seedocs/mcp.md. v0.4.0 shipped the Rust daemon client + warm Python daemon + adapter seam. Optional via--build-ext/--download-ext. Cuts hot-path latency from 82 ms to 8.9 ms (-89%). v0.3.x cut cold-hook latency by ~27% and fixed a latent v0.2 bug where Zero-Trust users had their event digest silently emptied. v0.2.0 shipped the Zero-Trust preset: AES-GCM at rest, tamper-evident audit log, fail-closed SessionStart integrity. Seedocs/zerotrust.md.

If this is your first Claude Code plugin: just run these two commands.

curl -fsSL https://raw.githubusercontent.com/sara-star-quant/presence/main/install.sh | bash

The installer is idempotent. It checks for Python 3.12+, symlinks the plugin into~/.claude/plugins/presence, creates the state directory at~/.claude/presence/with0700perms, generatesMANIFEST.lock, and pre-compileslib/to bytecode.

If you don't have Python 3.12+, the installer prints a warning and continues; presence is installed but stays inactive until a 3.12+ Python is onPATH. This is intentional so you can install on a machine that will get Python later (or run--bootstrap). To auto-install Python 3.13 via[uv(single binary, no sudo, ~5 MB), pass--bootstrap:

curl -fsSL https://raw.githubusercontent.com/sara-star-quant/presence/main/install.sh | bash -s -- --bootstrap

--bootstrapis opt-in because it makes one network call toastral.sh. The default install path makes no outbound calls.

~/.claude/plugins/presence/install.sh --verify

Checks the symlink, plugin registration insettings.json, perms, Python, theMANIFEST.lockintegrity, and synthetically fires all 6 hooks against the real lib/ tree. Exit 0 means ready.FAILlines tell you exactly what is missing. For machine-readable output:--verify --json.

Restart Claude Code (or open a new session) in any repo and run/presence-status.

Via the Claude Code plugin marketplace flow

The repo ships its ownmarketplace.jsonso it can be added directly:

/plugin marketplace add github.com/sara-star-quant/presence /plugin install presence
git clone https://github.com/sara-star-quant/presence ~/code/presence ~/code/presence/install.sh

For the Zero-Trust preset's at-rest encryption (opt-in), also install thecryptographylibrary into the same Python presence uses. On modern macOS / Linux this matters because Homebrew and most distros mark the system Python as PEP 668 externally-managed; a barepip installexits witherror: externally-managed-environment.

Pick the path that matches how you got Python:

# A. You used --bootstrap (presence has its own uv-managed Python). # pip works directly there, no PEP 668 wall. "$(cat ~/.claude/presence/.python_bin)" -m pip install cryptography # B. You're on Homebrew / a system Python and want to override PEP 668 # (installs into your user site, not system; safe in practice). python3 -m pip install --user --break-system-packages cryptography # C. You want isolation (cleanest): create a venv and pin presence at it. python3 -m venv ~/.claude/presence-venv ~/.claude/presence-venv/bin/pip install cryptography echo "$HOME/.claude/presence-venv/bin/python3" > ~/.claude/presence/.python_bin

If unsure which Python presence is using, run/presence-doctorand look at thepinned python/pythonlines, then use that interpreter's-m pip install cryptography.

Other presets and the rest of the Zero-Trust controls (integrity check, redaction, gates, audit log) are stdlib-only.

For installs done via curl or git clone:

~/.claude/plugins/presence/install.sh --update

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.