Installation guide

Install Penny for Cursor

Use Penny’s published npm installer in each Cursor project. It adds memory hooks and a Penny MCP server; sign in for both before testing a fresh Agent conversation.

Instructions checked October 11, 2026

Per-project, not global. Unlike Claude Code / Codex, the Cursor installer wires up .cursor/hooks.json in the current directory. Run the install step in each project where you want Penny memory active.

Switch to your project directory

Open a terminal in the root of the project where you want Penny active. The installer writes .cursor/hooks.json to the directory you run it from — pointed at a different project each time is fine.

Run the installer

npx @mypenny/cursor install

The script resolves @mypenny/core on disk and writes a .cursor/hooks.json that references its scripts. It also merges a MyPenny entry into .cursor/mcp.json, preserving any other MCP servers you've configured — Cursor will prompt you to enable the server on first use. The files are self-contained — commit them or gitignore them as you prefer.

Sign in for the hooks

The published Claude Code, Codex and Cursor hooks share ~/.mypenny/token. If you already signed in for those hooks, continue to the separate MCP sign-in below. Otherwise, run:

npx @mypenny/core auth login

Open the verification URL the CLI prints, sign in to Penny, and approve. The CLI polls and confirms when you've approved.

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

Open the project in Cursor. Enable the MyPenny MCP server when prompted and complete its browser OAuth sign-in with your own Penny account. In current Cursor versions, MCP servers are managed under Customize → MCPs; older versions use MCP settings. This authorization is independent of the hook device login.

Open the project in Cursor

Cursor picks up .cursor/hooks.json automatically when you open the folder. Penny adds relevant context to your chats in a <mypenny_subconscious> block.

Verify the connection

Open a fresh Agent conversation in this project with MyPenny enabled. Run this read-only check and inspect the actual tool result:

Search Penny for the exact phrase "Penny connection check 7c98e2". An empty result is fine. Do not save or change anything.

An empty result is valid. Review the native MCP connection and the separate hook grant under Penny Settings → Connections. A hook token badge or an enabled server alone does not prove the tool call succeeds.

That's it

With hooks enabled, context recall runs automatically and a scrubbed transcript is sent to Penny for memory learning when the session stops. Run the installer in each additional project you want connected; the hook token is shared, while MCP authorization is managed by Cursor.

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.

Update or remove

To update the published npm setup, rerun npx @mypenny/cursor@latest install from the project root, review the resulting configuration, and reopen the folder. This guide covers that installer; a separate native Penny Marketplace plugin is not yet a published installation path.

To stop MCP tool use, disable MyPenny under Cursor’s MCP controls. To remove the full project setup, back up the two JSON files, then remove only Penny’s hook entries from .cursor/hooks.json and the MyPenny server entry from .cursor/mcp.json. Preserve other hooks and servers, keep both files valid JSON, and reopen the folder. The npm installer has no uninstall command.

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.