Skip to content

PermissionPrompt

Stable

Asks you to allow one thing the assistant wants to do, with a choice to always allow it and an optional note.

Also known as permission request, allow deny, access request

Install with npm install @tattva/ui (setup), or copy the code from the kit in Downloads.

Saving a choice for next time

Send an email

Send the weekly update to your team

To: team@example.com

This command requires approval

Choose how to respond to this request

Choose Allow always to see what the saved choice covers before you confirm.

When to use it

Asks before the assistant does one thing that needs a person's yes. It shows the exact command or target, so people approve what will really happen, and can save the choice for a clearly named group of actions.

Made of: Title of the step · Who asked (optional) · Description · Exact thing it will act on · Reason · Choices · Esc key hint beside Deny · What a saved choice covers · Add a note button with N key hint · Note box and hint · Confirm button · Summary of your choice

Use it for

  • Before a command, file change or web request that needs approval.
  • Letting people allow an action once, for this session, or always for a named group.
  • Letting people send a note with their decision to steer the assistant.

Not for

Do and avoid

Delete files

Clear out old downloads

Downloads/old-photos

This command requires approval

Choose how to respond to this request

Do. Says what will happen and to what, then lets people choose.
Are you sure?
Avoid. Yes or No with no detail means people approve without knowing.

Do

  • Show the exact thing it will act on, not a loose summary.
  • List everything a saved choice would allow.
  • Offer only Allow once when you cannot show everything a saved choice would allow.
  • Name the helper when a background task is asking.
  • Tell people the note box is where they can adjust their choice.

Avoid

  • Don't pick Allow always for people. Allow once is selected first.
  • Don't jump the cursor into the prompt unless the assistant is stuck waiting.
  • Don't use it for a risky action that needs one clear yes or no. Use ApprovalPrompt.
  • Don't rely on the keys alone. Deny, Add a note and Confirm also work with a mouse, a tap, or Tab.
  • Don't change what Tab does. It keeps moving to the next control.

On a phone

  • The Escape to deny and N for a note shortcuts need a keyboard, so on a phone people use the choices and the confirm button.
  • Long commands and file paths scroll sideways inside their own boxes instead of wrapping.
  • The note field is 44px tall with 16px text on a touch screen.
  • The choice rows grow to at least 44px tall on touch screens.

Seen in products

  • In Claude Code Manual mode a Bash prompt shows the description ("Run the test suite"), the command, a "This command requires approval" line, then "Do you want to proceed?".
  • The Claude Code options are Yes, Yes and don't ask again for `npm test *`, Yes and switch to auto mode, and No.
  • The Claude Code footer reads "Esc to cancel, Tab to amend", so the user can add a comment to the approval. On the web, Esc denies and the note field replaces Tab to amend.
  • Claude Code Bash and WebFetch approvals persist per repository, and file edits last until session end.
  • Claude Code offers only one-time approval on some prompts when the UI cannot show everything a rule would allow.
  • Claude Code saves one rule per subcommand (up to 5) for compound commands, so the UI must list them, and read-only commands skip prompts.
  • Vercel AI Elements ships a Confirmation component.
  • Claude in Chrome shows a dialog "Claude in Chrome wants to" with an "allow all actions on this site" option.
  • In Claude Code, background subagents' permission prompts surface in the main session labeled with the subagent's name.

Build your next AI screen with Tattva.

Free and open, with the code. Start in one line.

Get started