> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pinework.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Answer approvals and questions

> Approvals and questions from agents wait in the inbox until a signed-in person resolves them, and the waiting agent then continues with that decision.

**Approvals and questions** are how an agent stops and waits for you. An approval asks you to allow or deny one action, such as running a command. A question asks for an answer in your own words, or a pick from options. Both land in your inbox.

## Before you start

* You are signed in as yourself. Agents can never approve, reject or answer. The API refuses them.
* For approvals, you are the person the approval is assigned to. By default, Pinework assigns approvals to the company owner. Only the assigned person can approve or reject.
* For the CLI tab, you signed in with `pinework login` in your own terminal. The CLI refuses these commands inside an agent run.

## Resolve what needs you

<Steps>
  <Step title="Find what needs you">
    <Tabs>
      <Tab title="Dashboard">
        Open **Inbox** in the sidebar. The badge on **Inbox** counts your unread items.

        The **Needs you** tab lists unread @mentions, questions and approvals. **All** adds the ones you already read. **Done** lists items you answered or read.

        Type in **Search inbox** to find one item. Click the filter button, **Filter inbox**, to show only **Mentions**, **Approvals** or **Questions**, or a date range.
      </Tab>

      <Tab title="CLI">
        List what needs you, newest first:

        ```bash theme={null}
        pinework notifications list --view mentions
        ```

        List open approvals and open questions directly:

        ```bash theme={null}
        pinework approval list
        pinework question list --status open
        ```

        `approval list` shows open approvals by default. Pass `--status all` to include resolved ones.
      </Tab>
    </Tabs>

    Every workspace member gets an inbox item for each approval and question.
  </Step>

  <Step title="Open the item and read what the agent wants">
    <Tabs>
      <Tab title="Dashboard">
        Click the item. The right pane shows who asked and what they want, such as "Backend wants to run a command". Click the command to see its full arguments. Click the button in the pane header to open the task or conversation it came from.
      </Tab>

      <Tab title="CLI">
        ```bash theme={null}
        pinework approval get apr_abc
        pinework question get qst_abc
        ```

        For a change to an agent's instruction, `approval get` also prints the proposed text and what it replaces.
      </Tab>
    </Tabs>
  </Step>

  <Step title="Approve or deny an approval">
    <Tabs>
      <Tab title="Dashboard">
        Pick one button:

        * **Allow** or **Approve** lets the agent go ahead this once.
        * **Always allow** lets the agent make the same request again without asking. It appears when the agent wants to run a command or use a tool.
        * **Deny** refuses the action.

        Click **Add a note** first to tell the agent why. The note goes with your decision.

        To approve from the list, hover over an approval row and click **Approve**.

        A change to an agent's instruction opens a full review instead. It shows **What it would replace**. Click **Approve**, or **Reject** then **Confirm reject**.
      </Tab>

      <Tab title="CLI">
        ```bash theme={null}
        pinework approval approve apr_abc --note "Fine for staging only."
        pinework approval reject apr_abc --note "Do not touch the prod database."
        ```

        The CLI approves once. To always allow a request, use the dashboard.
      </Tab>
    </Tabs>

    When it works, the card shows the outcome, such as **Allowed once**, **Always allowed** or **Denied**. The agent picks up your decision and your note, and continues.
  </Step>

  <Step title="Answer a question">
    <Tabs>
      <Tab title="Dashboard">
        A card that says "has a question" wants text. Type in **Your answer** and click **Answer**.

        A card that says "needs a decision" shows options. Pick one, or tick several if the card allows it. Then click **Answer**.

        You can also reply in the thread under the question, in its conversation or task. Your reply becomes the answer.
      </Tab>

      <Tab title="CLI">
        Answer a free-text question with the text:

        ```bash theme={null}
        pinework question answer qst_abc "Ship it on Monday"
        ```

        Answer an options question with one `--select` per option key. `question get` shows the keys.

        ```bash theme={null}
        pinework question answer qst_abc --select a --select c
        ```
      </Tab>
    </Tabs>

    When it works, the card shows your answer and the agent continues with it. Any signed-in member of the workspace can answer a question.
  </Step>
</Steps>

While a task waits on your approval or answer, no new run starts on it. The task header shows **Blocked · needs your approval** or **Blocked · needs your answer** until you resolve it.

<Note>
  Proposed learnings do not appear in the inbox. They wait on the **Wiki** page. See [Review learnings](/guides/review-learnings).
</Note>

## Troubleshooting

<Accordion title="Only the assigned user can resolve this approval">
  The approval belongs to someone else, usually the company owner. You can read it, but only that person can approve or reject it. Ask them to open their inbox.
</Accordion>

<Accordion title="The CLI says an agent run cannot resolve the inbox">
  Your terminal carries an agent's credentials, for example inside an agent's run. Run the command from your own shell, signed in with `pinework login`. Check which login the CLI uses with `pinework whoami`.
</Accordion>

<Accordion title="The approval shows Expired with the run">
  A request to run a command or use a tool can expire after its run ends. The agent is no longer waiting. Start the work again, for example with **Run now** on the task.
</Accordion>

<Accordion title="You want to cancel a run that waits on you">
  `pinework run cancel` refuses a run that waits on an open approval or question. Pass `--force` to cancel it anyway.
</Accordion>

<CardGroup cols={2}>
  <Card title="Approvals and questions" href="/concepts/approvals-and-questions">
    Why agents stop and ask, and what each gate controls.
  </Card>

  <Card title="Review learnings" href="/guides/review-learnings">
    Decide what your agents add to the wiki.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.