Haruno Knowledge base

Permissions and approvals

Haruno asks before it does something that matters. This page shows what a request looks like, what the permission modes are, and what is always asked.

  • Mac appAvailableThe normal view is fixed at Automatic. The advanced view chooses the mode.
  • Windows appAvailableThe mode chip and the Default permission mode setting are only in the advanced view.

Haruno asks before it does something that matters. When a card stops it for that reason, the normal view says so in one plain line: Haruno pauses before anything that sends, publishes, changes shared data, or can't be undone.

How much it asks depends on the permission mode.

What a request looks like

A card appears in the chat and Haruno waits for you.

Normal view. The card is one plain sentence and the thing it acts on. For example:

  • Haruno wants to change a file. with the file name.
  • Haruno wants to save a file. A note says an existing file with that name will be replaced.
  • Haruno wants to search the web. A note says your search text leaves your Mac.
  • Haruno wants to add an event to your calendar. If guests are listed, a note says they will be emailed an invitation.
  • Haruno wants to run something on your Mac.

When a step cannot be put in plain words, the card says Haruno needs your approval for a technical step. and tells you to check the details or deny it and ask Haruno what it is trying to do. Show details opens the technical version of any card.

The buttons are Allow once and Deny.

Advanced view. The card shows every detail, a risk label, why Haruno wants to do it, and where the request came from. The buttons are Allow once, Deny and, where it is offered, Allow for this session. Where Haruno offers rules to choose from, that button is a menu of them.

No button is the default one. Return does not approve anything.

When you are not looking. If the chat is not on screen, a notification titled Permission required appears with the same buttons. A chat you are looking at does not send one.

Plans

When Haruno has planned a piece of work, a card says Haruno finished planning. Review the plan before it starts. It shows the plan. The buttons are Approve plan, Send feedback and Reject.

Websites

Haruno works in an isolated space. It can only reach sites you allow. A site that is not allowed asks first.

  • Normal view: Let Haruno open this website? with the site name, and Allow once or Deny.
  • Advanced view: Allow the sandboxed agent to connect to this site? with Allow once, Deny, Always allow this website and Allow all sites for this session. Always allow this website is kept in Settings ▸ Advanced. Allow all sites for this session lasts only for that chat.

If nobody answers within about a minute, the request is refused, and Haruno asks again next time. See Sandbox.

Permission modes

In the normal view the mode is always Automatic. There is no choice. The advanced view lets you choose.

ModeWhat it means
Automatic (shown as Auto in a chat)Haruno carries on with routine steps. An automated safety review checks the other steps. Haruno stops and asks if one looks risky. A step the review blocks shows in the chat as blocked by auto mode
Ask each time (shown as Ask)Haruno asks before steps that change things
Accept EditsHaruno changes files in its working folder without asking. It still asks about other things
PlanHaruno only reads and plans. It asks you to approve the plan before it starts
Allow allHaruno does not ask. Settings only
Deny allHaruno turns down every step that needs your permission. Settings only

Where to set it, in the advanced view:

  • For every new chat: Settings ▸ General ▸ Permissions ▸ Default Permission Mode. The choices are Ask each time, Allow all, Deny all and Automatic.
  • For one chat: the Add Context (+) button next to the message box, then Permissions. It names the current mode, for example Permissions (Auto), and lists Auto, Ask, Accept Edits and Plan.
  • ⌃⌘P (Chats ▸ Cycle Permission Mode) steps through the four. In the normal view it does nothing.

In the advanced view, a list of what you allowed for this session appears above the message box, with a way to take each one back.

Sending data off the Mac is always asked

A command that clearly sends data off your Mac, such as uploading a file, posting data or pushing changes, is never left to the automated review. In Automatic and in Ask each time, Haruno stops and asks you. Allow all does not ask at all, so use it with care.

Scheduled tasks

A scheduled task has nobody to answer a request. It goes ahead without asking for routine steps, and these rules hold:

  • Anything that would reach other people is prepared and held for you in the Waiting queue. You are told when something is waiting. A task you have trusted to send on its own may send.
  • A step that would send data off your Mac is refused. The run ends as failed, with the message It tried to send data off this Mac, and nobody was there to approve it. Run it from a chat to approve the send.
  • It runs in the isolated space and changes only its own folder.
  • It does not use the servers you added yourself in Connectors.

See Scheduled tasks and the Waiting queue.

What to tell a customer

Haruno does not act alone on things that matter. In the normal view it checks itself and asks in plain words. Anything that sends data out or reaches other people stops for a person, even when Haruno runs a task on a schedule. People who want the full detail and control can turn on the advanced view.

Last updated · PR #2944 · View this version on GitHub

History (1 version)
  1. Internal knowledge base for staff: site, reader keys, assistant, 197 pages and the PR rule (#2944)
    What changed
    @@ -0,0 +1,93 @@
    +---
    +title: Permissions and approvals
    +summary: Haruno asks before it does something that matters. This page shows what a request looks like, what the permission modes are, and what is always asked.
    +feature: permissions
    +covers:
    +  - apple/Sources/ChatUI/PermissionPromptView.swift
    +  - apple/Sources/ChatDomain/PermissionCard.swift
    +  - apple/Sources/EngineSupport/PermissionPolicy.swift
    +  - apple/Sources/EngineSupport/SessionConfigSpec.swift
    +  - apple/Sources/EngineWire/RuntimePermissionMode.swift
    +  - apple/Sources/ChatFeature/ChatModel+Permissions.swift
    +  - apple/Sources/ChatFeature/ChatModel+Egress.swift
    +  - apple/Sources/ShellNotifications/PermissionNotifier.swift
    +---
    +
    +Haruno asks before it does something that matters. When a card stops it for that reason, the normal view says so in one plain line: <Ui>Haruno pauses before anything that sends, publishes, changes shared data, or can't be undone.</Ui>
    +
    +How much it asks depends on the permission mode.
    +
    +## What a request looks like
    +
    +A card appears in the chat and Haruno waits for you.
    +
    +**Normal view.** The card is one plain sentence and the thing it acts on. For example:
    +
    +- <Ui>Haruno wants to change a file.</Ui> with the file name.
    +- <Ui>Haruno wants to save a file.</Ui> A note says an existing file with that name will be replaced.
    +- <Ui>Haruno wants to search the web.</Ui> A note says your search text leaves your Mac.
    +- <Ui>Haruno wants to add an event to your calendar.</Ui> If guests are listed, a note says they will be emailed an invitation.
    +- <Ui>Haruno wants to run something on your Mac.</Ui>
    +
    +When a step cannot be put in plain words, the card says <Ui>Haruno needs your approval for a technical step.</Ui> and tells you to check the details or deny it and ask Haruno what it is trying to do. <Ui>Show details</Ui> opens the technical version of any card.
    +
    +The buttons are <Ui>Allow once</Ui> and <Ui>Deny</Ui>.
    +
    +**Advanced view.** The card shows every detail, a risk label, why Haruno wants to do it, and where the request came from. The buttons are <Ui>Allow once</Ui>, <Ui>Deny</Ui> and, where it is offered, <Ui>Allow for this session</Ui>. Where Haruno offers rules to choose from, that button is a menu of them.
    +
    +No button is the default one. Return does not approve anything.
    +
    +**When you are not looking.** If the chat is not on screen, a notification titled <Ui>Permission required</Ui> appears with the same buttons. A chat you are looking at does not send one.
    +
    +## Plans
    +
    +When Haruno has planned a piece of work, a card says <Ui>Haruno finished planning. Review the plan before it starts.</Ui> It shows the plan. The buttons are <Ui>Approve plan</Ui>, <Ui>Send feedback</Ui> and <Ui>Reject</Ui>.
    +
    +## Websites
    +
    +Haruno works in an isolated space. It can only reach sites you allow. A site that is not allowed asks first.
    +
    +- Normal view: <Ui>Let Haruno open this website?</Ui> with the site name, and <Ui>Allow once</Ui> or <Ui>Deny</Ui>.
    +- Advanced view: <Ui>Allow the sandboxed agent to connect to this site?</Ui> with <Ui>Allow once</Ui>, <Ui>Deny</Ui>, <Ui>Always allow this website</Ui> and <Ui>Allow all sites for this session</Ui>. <Ui>Always allow this website</Ui> is kept in [Settings ▸ Advanced](/macos/app/settings-advanced/). <Ui>Allow all sites for this session</Ui> lasts only for that chat.
    +
    +If nobody answers within about a minute, the request is refused, and Haruno asks again next time. See [Sandbox](/macos/safety/sandbox/).
    +
    +## Permission modes
    +
    +In the normal view the mode is always **Automatic**. There is no choice. The advanced view lets you choose.
    +
    +| Mode | What it means |
    +|---|---|
    +| Automatic (shown as <Ui>Auto</Ui> in a chat) | Haruno carries on with routine steps. An automated safety review checks the other steps. Haruno stops and asks if one looks risky. A step the review blocks shows in the chat as <Ui>blocked by auto mode</Ui> |
    +| <Ui>Ask each time</Ui> (shown as <Ui>Ask</Ui>) | Haruno asks before steps that change things |
    +| <Ui>Accept Edits</Ui> | Haruno changes files in its working folder without asking. It still asks about other things |
    +| <Ui>Plan</Ui> | Haruno only reads and plans. It asks you to approve the plan before it starts |
    +| <Ui>Allow all</Ui> | Haruno does not ask. Settings only |
    +| <Ui>Deny all</Ui> | Haruno turns down every step that needs your permission. Settings only |
    +
    +Where to set it, in the advanced view:
    +
    +- For every new chat: <Ui>Settings ▸ General ▸ Permissions ▸ Default Permission Mode</Ui>. The choices are <Ui>Ask each time</Ui>, <Ui>Allow all</Ui>, <Ui>Deny all</Ui> and <Ui>Automatic</Ui>.
    +- For one chat: the <Ui>Add Context</Ui> (+) button next to the message box, then <Ui>Permissions</Ui>. It names the current mode, for example <Ui>Permissions (Auto)</Ui>, and lists <Ui>Auto</Ui>, <Ui>Ask</Ui>, <Ui>Accept Edits</Ui> and <Ui>Plan</Ui>.
    +- **⌃⌘P** (<Ui>Chats ▸ Cycle Permission Mode</Ui>) steps through the four. In the normal view it does nothing.
    +
    +In the advanced view, a list of what you allowed for this session appears above the message box, with a way to take each one back.
    +
    +<Callout variant="warning" title="Sending data off the Mac is always asked">
    +A command that clearly sends data off your Mac, such as uploading a file, posting data or pushing changes, is never left to the automated review. In Automatic and in Ask each time, Haruno stops and asks you. <Ui>Allow all</Ui> does not ask at all, so use it with care.
    +</Callout>
    +
    +## Scheduled tasks
    +
    +A scheduled task has nobody to answer a request. It goes ahead without asking for routine steps, and these rules hold:
    +
    +- Anything that would reach other people is prepared and held for you in the Waiting queue. You are told when something is waiting. A task you have trusted to send on its own may send.
    +- A step that would send data off your Mac is refused. The run ends as failed, with the message <Ui>It tried to send data off this Mac, and nobody was there to approve it. Run it from a chat to approve the send.</Ui>
    +- It runs in the isolated space and changes only its own folder.
    +- It does not use the servers you added yourself in Connectors.
    +
    +See [Scheduled tasks](/macos/automation/scheduled-tasks/) and the [Waiting queue](/macos/automation/waiting-queue/).
    +
    +## What to tell a customer
    +
    +Haruno does not act alone on things that matter. In the normal view it checks itself and asks in plain words. Anything that sends data out or reaches other people stops for a person, even when Haruno runs a task on a schedule. People who want the full detail and control can turn on the advanced view.