跳到主要内容

penny

❖ Communityv0.1.0

Penny core memory and private notes for Hermes.

Open in Hermes Desktop
hermes plugins install penny

README

From the reviewed commit 0887dae ↗; it updates when the author re-pins.

Penny for Hermes

Bring your Penny core memory and private notes into Hermes. The provider loads your core memory, recalls relevant notes, and gives the agent three tools for reading and saving selected memories.

Penny is made by Helper Labs. This connector requires a Penny account and Hermes 0.21.6 or later on macOS or Linux. It has no third-party Python dependencies.

Install and connect

hermes plugins install HelperLabs/penny-hermes --enable
PENNY_PROFILE="${HERMES_HOME:-$HOME/.hermes}"
python "$PENNY_PROFILE/plugins/penny/penny_auth.py" login --home "$PENNY_PROFILE"

Open the link printed by the login command in your browser. Sign in to Penny and authorize Penny for Hermes. The command waits for a local callback and times out after three minutes. It never starts a login from an agent turn, scheduled job, or messaging gateway.

Select Penny in your active profile's config.yaml:

memory:
  provider: penny

Start a new Hermes conversation. Hermes selects one external memory provider at a time; selecting Penny replaces your previous external provider for that profile. Your built-in Hermes memory remains managed by Hermes.

For a named profile, use that profile's directory in --home and run Hermes in the same profile. Each profile needs its own Penny authorization. This release supports primary local conversations. Private memory requests from cron, subagents, flush contexts, and messaging gateways are refused.

Memory tools

Tool Purpose
penny_profile Read your core memory and assistant persona.
penny_search Search private notes for past work, decisions, and context.
penny_remember Save a selected note with tags, confidence, and three questions it would answer.

Try these prompts:

  • “Read my Penny core memory before we start.”
  • “Search Penny for the decisions we made about my project.”
  • “Remember that I prefer meeting notes with decisions and next steps.”

Background recall keeps the agent's next turn from waiting on a network request. It can include notes from the previous prompt, labeled with their original query. Use penny_search when an answer needs a search for the current question. If recall has not arrived, the agent can use the explicit memory tools. Long memory responses are available through those tools; this connector keeps no plaintext memory cache on disk.

Data and permissions

The connector makes HTTPS requests to app.mypenny.ai/mcp. Login and credential refresh use the authorization server advertised by Penny's resource discovery, currently clerk.mypenny.ai. Discovery and OAuth endpoints are checked against these fixed trusted origins; redirects do not forward credentials elsewhere.

Automatic recall sends up to the first 4,000 characters of each nontrivial local user prompt to Penny as a search query. Explicit penny_search calls also send their query. Penny receives the content of any note the agent saves through penny_remember; authorize those saves under your usual Hermes approval settings. The connector does not upload raw transcripts, assistant replies, tool results, local files, or built-in Hermes memory. Search results from shared Spaces are excluded. There are no Space writes, deletion tools, telemetry, or self-updates.

Login registers a separate OAuth client for this connector. Access and refresh tokens are stored in <active Hermes profile>/penny/auth.json, with a private directory and owner-only file permissions. The connector reads and refreshes only that file. It does not read another Penny client, vendor CLI, browser, or system credential store. Do not copy another client's token into this file.

Retrieved notes are evidence. They do not authorize shell commands, change approval settings, or override your current instructions. Errors omit memory content, server response bodies, and credentials. Network requests have bounded timeouts and response sizes; note writes are not automatically retried.

Disconnect and update

Revoke Penny for Hermes in Penny's Connected apps settings to disconnect server access. Remove the local credential with:

python "$PENNY_PROFILE/plugins/penny/penny_auth.py" logout --home "$PENNY_PROFILE"

Local logout removes this connector's credential file; server revocation is a separate action. Updates use Hermes's plugin manager. Catalog releases are pinned to an exact commit and require a reviewed catalog update.

Development

Run the unit and real-host integration tests with Hermes on Python's import path:

PYTHONPATH=/path/to/hermes-agent python -m unittest discover -s tests -v
hermes plugins validate /path/to/penny-hermes --install-deps

Automated tests use synthetic responses and isolated temporary profiles. They never use your account, saved memories, or live OAuth credentials. See VERIFICATION.md for the checks performed for this release.

Support

Report connector problems in this repository's Issues. Do not attach tokens, private memories, or unredacted logs. For Penny account questions, use Penny support.

The connector is MIT licensed. Penny's hosted service has its own terms and privacy policy.

← Back to the catalog · catalog built Oct 10, 2026