Add the Helper Labs plugin marketplace
Inside any Claude Code session, run:
/plugin marketplace add HelperLabs/mypenny-pluginThis points Claude Code at the Helper Labs plugin marketplace so it knows where to find the Penny plugin. You only need to do this once per machine.
Install the plugin
Then install the Penny plugin:
/plugin install mypenny-claude@mypennyClaude Code downloads the plugin and wires up the bundled Penny skill, hook scripts, and the Penny MCP server definition pointing at https://app.mypenny.ai/mcp. On the next session you start, you'll see a message in stderr letting you know the plugin needs to be authenticated.
Upgrade an existing install
If you already installed the Penny plugin, refresh the mypenny marketplace/source in Claude Code's plugin browser, then reinstall the plugin or rerun:
/plugin install mypenny-claude@mypennyAfter upgrading, restart Claude Code or open a fresh session so the bundled Penny skill and hooks reload.
Sign in for the hooks
There's no fixed command to memorize. On the first session after installing, the plugin prints an auth hint to stderr with the exact command for your machine — the resolved path to its bundled login script. It looks like:
node "<plugin-dir>/scripts/auth_login.mjs"Run the command it printed (the <plugin-dir> is filled in for you). It prints a short user code and a verification URL — open the URL, sign in to Penny, and approve the plugin's access. The CLI polls in the background and confirms once you've approved.
The resulting plugin token is written to ~/.mypenny/token with 0600 permissions. It expires on a rolling basis and the plugin renews it automatically in the background — you only need to re-run this if you revoke it from the dashboard or leave the client unused for a long stretch.
This authorizes the hooks only. The MCP server has its own OAuth sign-in in the next step. Use your own Penny account for both.
Authorize the Penny MCP server
In an interactive Claude Code session, open:
/mcpSelect the Penny server bundled with mypenny-claude and complete its browser OAuth sign-in. Approve the access shown for your own Penny account. This authorizes tool calls independently of the hook token.
Start a fresh Claude Code session
End your current session (or open a new one in a different directory). The plugin's SessionStart hook fires on launch, queries your Penny memory, and injects relevant context as a <mypenny_subconscious> block in Claude's system prompt.
On each subsequent UserPromptSubmit, the plugin refreshes (throttled to once every 30s) so memory stays current without re-querying on every keystroke.
Verify the connection
In a fresh Claude Code session, confirm the Penny MCP server is connected in /mcp, then run this read-only check:
Search Penny for the exact phrase "Penny connection check 7c98e2". An empty result is fine. Do not save or change anything.Check the actual tool result, including an empty result. In Penny Settings → Connections, the MCP connection and the hook’s Plugin tokens grant are separate. A hook token row alone does not prove MCP calls work.
That's it — work as usual
Work as usual with Penny enabled. The skill guides tool use; hooks recall context and send a scrubbed transcript for memory learning when the session ends. Review the permissions below before using it on private work.
Having trouble? These published hooks require Node.js 22 or newer. If hooks report “plugin not authenticated,” rerun the printed device-login command and check that ~/.mypenny/token is owned by you with mode 0600. If MCP calls fail, complete the client’s separate OAuth sign-in. Reopen the client after changing configuration, and confirm the Penny subscription is active. If the read check still fails, contact Penny Support with the client version and error message, without credentials.
Permissions and privacy
The hook login is saved in ~/.mypenny/token with 0600 permissions and is shared by the published Claude Code, Codex and Cursor shells. Native MCP OAuth is separate. The public package includes neither login nor memory data; sign in to your own Penny account for each authorization.
Hooks query Penny and inject recalled notes into the client’s context. When a session stops, they send a transcript with detected secrets scrubbed to Penny for memory learning. Detection does not guarantee every sensitive value is removed: only enable hooks in projects whose conversations you want processed. The Penny skill can also read and save through MCP. Review the client’s tool approvals, history and sharing controls.
Remove or disconnect
Use Claude Code’s /plugin installed-plugin manager to disable or uninstall mypenny-claude@mypenny. From a terminal, the supported uninstall is:
claude plugin uninstall mypenny-claude@mypennyIf installed at project or local scope, use that same scope when uninstalling. Required organization plugins may need an administrator’s help.
Uninstalling locally does not revoke account access or erase notes already saved. Revoke the hook grant under Penny Settings → Connections → Plugin tokens. Because the three published shells share that token, revoking it disconnects their hooks together. Separately disconnect this client’s MCP OAuth connection in Penny. Recalled context remains in existing chats; restart in a fresh session after changes.
Keep these instructions handy
Open this guide in your Penny dashboard · Read as Markdown
Need help with your connection? Email support@mypenny.ai. Keep passwords, tokens and private notes out of support messages.
