Feature request for product/service
Cursor IDE
Describe the request
I keep a local people map, a small contact database, outside the workspace. Each person is linked to one or more companies and to the client projects they belong to. The same first name can point to different people in different projects. The current project is what selects the right person.
I want to type a person’s name in chat and have Cursor resolve who that is from that map. The text that leaves my machine should contain only an opaque person id. The name, surname, email address, and phone number should stay local. The goal is data minimization: personal data should not be uploaded to Cursor servers when an id is enough for the model to do the work. This is the workflow I need for GDPR data minimization.
Example. The open project is one client folder. I type: “Write a report for John.” The local map resolves John in this project to p-001. The backend request should contain p-001, not “John”. I should not have to type the id myself.
Today this is impossible. beforeSubmitPrompt is the right place to fix it. The docs say this hook runs after I hit send and before the backend request. Its input already includes the prompt text. Its output allows only continue and user_message, so the hook can allow or block the message, but it cannot change the prompt. Returning updated_input.prompt is ignored, and the original sentence is what reaches the model. A Cursor team reply on the forum describes that as the current contract: forum.cursor.com/t/bug-beforesubmitprom…reaches-the-model/158883
Please add an output field on beforeSubmitPrompt that replaces prompt in the backend request. The replacement has to happen locally, before the request is built. The original string must not be uploaded, logged in the server-side transcript, or sent to the model.
additional_context does not solve this. That field would add text and would still upload the original sentence with the name. The existing request for additional_context is a different feature: forum.cursor.com/t/add-additional-conte…rompt-hook-output/157231
Two related gaps matter for the same workflow. The chat should keep showing the sentence I typed, while the model sees the replaced text. If the reply or an edited file contains only p-001, a local step such as afterAgentResponse or afterFileEdit should be able to show the name again on my machine without sending the name back to the server. The people map must stay outside the workspace, and the hook must not need to put its path into rules or the prompt.
The change belongs in the beforeSubmitPrompt output contract, applied to the payload of the backend request.
Operating System (if it applies)
Windows 10/11