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

# Today

> Your morning brief is the first message of a thread. Answer its decisions there, or reply in the thread, and the conversation about this morning stays in one place.

## The brief is a thread

Each day in your workspace's own time zone has one **Today** thread. Its first message is that day's [morning brief](https://docs.attensira.com/agent/morning-brief.md), the same brief the email and `GET /v1/brief` carry. It is listed with your chats as **Today · Tue 15 Sep**.

For a workspace that gets the morning brief, the thread opens at 07:00 your time. Any workspace's thread also opens the first time that day's brief is read, in the app or through the API, if it has not opened already. There is only ever one thread for a day: opening the brief again, from any door, takes you back to the same one. At midnight in your time zone the next day's brief gets a new thread, and yesterday's stays where it was.

## Decisions are answerable in the thread

Each decision in the brief's **What needs you** list (at most three) follows the brief as a card with a yes and a no:

| The decision | Card says | Yes | No |
| - | - | - | - |
| A change waiting for approval | **Change to approve** | Approves it, as **Approve** in the Inbox does (the button carries the change's own label, or **Approve**) | **Decline**, with your reason (**Not now** if you give none) |
| A call a run stopped to ask about | **An agent's question** | Allows it once | Declines it, with your reason |
| Something only you can do | **Something only you can do** | **Done**: marks it done | **Not doing it**: dismisses it |

Each card names the effect class of what a yes does: a call a run stopped to ask about carries the class of that call, a change carries its own, and anything with no recorded class (an outreach email, for one) counts as one that cannot be undone. A yes that cannot be undone says so before you answer: "This can't be undone after it ships.", or "This can't be undone after it's sent." for a call that sends something, and only a person approves it: an API key or a connected assistant is refused, as it is in the Inbox. A card with no such line can be undone. See [Who can approve what](https://docs.attensira.com/agent/approval.md#who-can-approve-what).

When a run stops to ask you questions rather than for a yes or a no, that decision has no card. It stays in the brief's text with a link, and you answer it in the [Inbox](https://docs.attensira.com/agent/inbox.md).

The answer is applied to the same item in your [Inbox](https://docs.attensira.com/agent/inbox.md), so the Inbox and the thread never disagree. Answering a card does not start an agent run and costs no credits. A yes given through an API key or a connected assistant is held to the same [approval rules](https://docs.attensira.com/agent/approval.md#who-can-approve-what) as in the Inbox; if they refuse it, the card stays open for a person.

A decision already answered somewhere else is refused rather than answered twice, and the refusal says what the answer was, who gave it and when, for example "Already answered: approved by a member of your workspace at 10:12." It names the kind of credential (a member of your workspace, an API key with its agent name when it has one, or a connected assistant), never which person, and gives the time in your workspace's time zone, with the date when it was another day.

## The Today screen

In the app, Today is the page you land on after you sign in, at `/`, in [the thread view](https://docs.attensira.com/app/harness.md). **Today** in the rail and in the sidebar opens it.

The screen puts what needs you first and the brief below it:

* **When something is holding your work**, a card above **Needs you** says what it is in one sentence and gives the one thing to do: **Reconnect** a connection, **Top up credits**, **Review the limit**, **Review automations**, or **Review** in the Inbox. A block that is ours says "Work is paused on our side" and asks nothing of you. The card shows nothing when the work is running, and nothing when the check could not be read, because it never claims something is wrong from a read it does not have. See [Loop health](https://docs.attensira.com/agent/loop-health.md#when-a-block-is-yours).

* **Needs you** lists each decision as one row, with the number still open beside the heading. A row has the decision in one sentence, what kind it is ("Change to approve", "An agent's question", "Something only you can do") and whether a yes can be undone. It has at most three buttons: the yes, the no, and **Open** when the decision links to its full page. For a change, **Open** goes to the change's own review page, `/changes/<id>`, where **Back** returns to Today. A change shows its own action as the yes ("Publish", for example) or **Approve**, and **Decline** as the no. Something only you can do shows **Done** and **Not doing it**.

* A decision that takes more than a yes or a no, such as an agent's questions, is listed under the rows with **Open**, and you answer it in the Inbox. A change listed there opens its review page instead. A suggestion that has no change to review, such as a pitch to a creator, opens in the Inbox. It counts as still needing you, so the screen never says "Nothing needs you" while one is in the brief.

* If a yes can't be undone, the row says so before you answer: "This can't be undone after it ships." For a send, it says "This can't be undone after it's sent."

* A yes or a no is sent when you release the button, not when you first touch it, so a scroll that starts on a button answers nothing. Tapping twice sends one answer.

* An answered row stays in the list with what you chose (**Approved**, **Declined**, **Marked done** or **Not doing it**) and leaves the count.

* If someone answered a decision first, in another tab, in the Inbox or through the API, the row closes on what that first answer was, for example "Already answered: approved by a member of your workspace at 10:12." Nothing is answered twice.

* **This morning's brief** is the thread's first message. A link under it opens the whole thread, where every later message and agent run is shown.

* The reply box at the bottom sends a message into the thread and takes you to it. The agent answers there.

When nothing needs you, the screen says so in one line, with the work the brief leads with and the date of the next check, when one is booked. If the brief could not be read, the screen says that instead and gives you **Retry** and the Inbox. It never shows "Nothing needs you" when it could not check. If the brief has no thread, its decisions are listed with a link to answer each one in the Inbox, because they can't be answered on this screen.

## Reply to continue it

Reply in the thread to ask about anything in the brief ("why is the pricing page waiting on me?") and the agent answers there, with the brief as its context. A reply is an ordinary chat turn and is metered like one.

Replying to the morning brief email, or to a brief posted to Slack, does not reach the thread. Open the thread in the app, or reply through the API as below.

## Ask for it in words

In the Today thread, a chat, or a reply your agents receive from email or Slack (see [Reply to act](https://docs.attensira.com/account/reply-to-act.md#words-for-your-agents)), you can name the work in your own words and the agent does it:

| You write | What happens |
| - | - |
| "undo the pricing page change" | Takes back a change that went out, if it can be undone |
| "stop the blog title change" | A change waiting out its 48-hour window does not ship |
| "the FAQ draft looks good, approve it" | Approves a change waiting for your yes, unless it can't be undone or has no recorded class |
| "make the FAQ draft less salesy" | Writes the draft again under your words; it still waits for your yes |
| "lower the monthly budget to \$1,000" | Files a budget proposal; nothing changes until you approve it in the app |

How it works, and what it never does:

* **It finds the change first.** The agent looks among your workspace's own changes by page, lane or how recent they are, and gets at most three back. When more than one fits and your words don't single one out, it asks which one instead of guessing.
* **It acts as you, through the same action as the buttons.** Each act is the same one the app, [`POST /v1/actions`](https://docs.attensira.com/api/endpoints#post-/v1/actions) and `act` over [MCP](https://docs.attensira.com/mcp/tools.md) take, held to the same [approval rules](https://docs.attensira.com/agent/approval.md#who-can-approve-what), and recorded on the change's history as yours, `via=thread`. What it tells you is that act's answer.
* **Only in a turn you started.** It acts only on what a person asked for in the message that started the run: typed in the app, or a reply a door matched to you. A message you send while a run is already going is answered by the next run, not by that one. A run an automation started, a task handed to a project, a note or an answer an API key or connected assistant added to the thread, or the agent carrying on by itself never approves, undoes or stops anything this way.
* **Nothing that can't be undone.** A yes to work that can't be undone is never given from a message, and neither is a yes to a change with no recorded effect class, which counts as one that can't be undone. The agent tells you so and links the change's card, where you approve it yourself.
* **Never more room or more money.** Autonomy is never raised and a budget or cap is never raised from words. That includes setting a cap where none is set yet, and a monthly budget of \$0, which means no budget at all. You get the same sentence and link a reply gets (see [What a reply can never do](https://docs.attensira.com/account/reply-to-act.md#what-a-reply-can-never-do)). A lower budget or cap is filed as a proposal and waits for your approval.

Depending on your workspace's [approval setting](https://docs.attensira.com/agent/approval.md), the agent may ask you to confirm the act before it runs. Through an API key or a connected assistant, take the same actions with `act` directly.

## If the brief is not ready

If that morning's brief could not be put together, the thread still opens, with one sentence saying so. We try again on our own every fifteen minutes and post the brief into the same thread as soon as it is ready. There is nothing for you to do.

## From your own tools

`GET /v1/brief` (MCP: `brief`) returns two fields beside the brief, and reading today's brief this way opens the thread if it has not opened yet:

* `today_thread_id`: the thread's session id. Read it like any session with `GET /v1/sessions/{id}`, and reply to it with [`POST /v1/ask`](https://docs.attensira.com/api/endpoints#post-/v1/ask), passing it as `session`.
* `today_thread_uri`: the same thread as `attensira://{workspace}/thread/{id}`.

Both are left out for a past day that never had a thread, and when the thread could not be opened. Answer a decision card with [`POST /v1/today/{id}/asks/{askId}`](https://docs.attensira.com/api/endpoints#post-/v1/today/id/asks/askid); each card carries that path as its `replyTo`. That route is not on `api.attensira.com` yet; it takes the same key at `https://webapp.attensira.com`. Over MCP, `act` with `approve` or `decline` on `attensira://{workspace}/today_ask/{thread}_{ask}` answers the same card, the thread being `today_thread_id` and the ask id the `{askId}` in the card's `replyTo`.


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