# Comments

> Leave feedback on an element or selected text, and keep the discussion with the version you reviewed.
> URL: https://artor.app/docs/comments

Leave feedback on an element or a passage of text, right inside the prototype. Each thread
belongs to the version and screen you reviewed; comments on version 1 don't appear on version 2.

## How it works

1. Open the prototype's preview link. The review widget is added automatically when you set up and publish with Artor.
2. Choose **Comment**, then click a button, heading, card, or other element.
3. Type your feedback and press **Send**.

Comments stay with the element and version you’re reviewing. Open a pin to read and reply
in the **Comment thread** panel. Reviewing a moving prototype? [Pause its animations](https://artor.app/docs/reviewing#pause-animations)
before placing your comment.

The pin follows the element as you scroll or resize the page. If the element is no longer
visible, you can still find the thread in the comment list.

**Note:** 
  **Static HTML prototypes support comments too.** Artor adds the review widget to the
  published copy; your source files stay unchanged. The widget activates on Artor previews,
  so you can keep it in your project without showing it on your production website.

## Commenting on selected text

Select the words you want to discuss, then click the **Comment** button beside the selection.
The comment highlights that quote, including text that wraps onto several lines. If the exact
quote can no longer be found, the thread stays available with its original context.

The quote is also included when an AI agent reads the thread through `artor comments`.

## Replying to a thread

Open a thread, type in the reply box, and press **Send**. **Enter** sends; **Shift+Enter** adds
a line break. Replies stay in the same thread, without creating another pin.

You can reply from the widget or the [dashboard](https://artor.app/docs/comments#triage-from-the-dashboard). Participants may
receive an email, depending on their [notification settings](https://artor.app/docs/notifications). Guests
aren't emailed. The CLI can read threads and change their status, but can't reply.

## Resolving a thread

Choose **Resolve** when feedback has been addressed. Resolved pins are tucked behind
**Show resolved**. Choose **Reopen** to bring a thread back. Members with access to the
version can resolve or reopen threads, including those started by other people.

## Mentioning a teammate

Type `@` in a comment or reply and choose a teammate. Use the Arrow keys to move through
suggestions, **Enter** to select, or **Esc** to close the picker.

The teammate may receive a mention email if they've enabled it in
[Email notifications](https://artor.app/docs/notifications). Mentioning yourself doesn't send an email.
Guests can't mention teammates.

## Editing and deleting your own comments

- **Edit:** use the pencil on your message. **Cmd/Ctrl+Enter** saves; **Esc** cancels.
- **Delete a message:** use its trash icon, then confirm. Deleting the last message removes the thread and its pin.
- **Delete a thread:** open the thread's **···** menu and choose **Delete thread**. This is available for threads you started and can't be undone.

You can't edit another person's words. Guest feedback has separate
[moderation controls](https://artor.app/docs/sharing#moderating-guest-feedback).

Edits don't show an “edited” label and don't send another notification, including when you
add a mention.

## Who can comment

Signed-in members with access to a version can read its team discussion and leave feedback.
A member opening a [public link](https://artor.app/docs/sharing) still sees the team discussion, but the link's
comment settings apply: **Allow new comments** off makes it read-only for members too.

People without an account can comment when the public link's **Guest commenting** setting
allows it. New links use the organization's default, which initially asks for a name.
Check the setting when sharing; older links may have guest commenting turned off.

## Comments from people without an account

Depending on the link's setting, guests can comment anonymously or are asked for a name,
optionally with an email address. They can start threads, reply in their own threads, and
edit or delete their own messages.

- **Guests see only their own threads**, including team replies there.
- **Names and emails are unverified.** Artor doesn't email guests.
- **Guest controls are simpler.** Guests can't resolve threads, mention people, use AI ignore, or copy details for AI.
- **Feedback stays with its version.** When a latest link moves to a new version, earlier guest notes remain on the previous version for the team to review.
- **Use the same browser to return to your notes.** Clearing cookies or switching devices can make you appear as a new guest; people sharing a browser may appear as the same guest.

See [Guest commenting](https://artor.app/docs/sharing#guest-commenting) for link settings and moderation.

## Reading comments from the CLI

The CLI is the primary way for an AI coding agent to read Artor feedback, make changes, and
publish the next version. The [Artor Claude Code skill](https://artor.app/docs/skills#the-artor-claude-code-skill)
helps the agent follow this workflow. For terminal setup, see [Installing the CLI](https://artor.app/docs/install-cli).

Run these in your linked project folder:

```bash
artor comments                       # feedback on the latest version
artor comments --open                # unresolved threads
artor comments --version 3 --json     # version 3, in a format an agent can read
artor comments --guests-only          # guest feedback only
artor comments --no-guests            # team feedback only
```

Each thread includes the screen, element or quote, messages, and status. Use `--version`
to choose a version number or alias. **Copy details for AI** is also available for a manual
handoff of one thread; the CLI is better suited to working through a whole review.

### Resolving from the CLI

```bash
artor comments resolve <thread>       # mark feedback handled
artor comments reopen <thread>        # reopen it
```

Use the thread identifier printed by `artor comments`, or a quoted row number such as `"#3"`.
If you listed with filters such as `--version` or `--open`, use the same filters when changing
a thread. Row numbers can change as the list changes; use the thread identifier when you need
to refer to a particular thread later.

The CLI can resolve, reopen, and change AI ignore. Replying, editing, and deleting are
available in the review interface instead.

## Excluding a thread from AI

Turn on **AI ignore** to leave a thread for a human when an agent works through feedback.
You can set it while composing or in the thread panel. It is separate from resolved status.

```bash
artor comments ignore <thread>       # leave this thread for a human
artor comments unignore <thread>     # include it in the AI workflow again
```

Members with access can change this setting. The CLI labels ignored threads **AI: off**.

## The thread menu

Open **···** in a thread on the running prototype for these actions:

- **Copy details for AI:** copy the whole discussion and its context for a manual handoff.
- **Copy link:** copy a link to this thread. The recipient still needs access to the version.
- **Mark unread:** remind yourself to return to it.
- **Delete thread:** remove a thread you started, after confirmation.

### Unread dots

A dot on the author's avatar marks a thread you haven't opened or that has new replies.
Opening it clears the dot. In the review widget, unread status stays in the current browser;
it doesn't sync across devices and may be unavailable when browser storage is blocked.

## Triage from the dashboard

Open a prototype in the dashboard to see its threads together. The versions are listed on
the left, each with its comment count and how many are new (for example, "3 comments · 1 new").
Pick a version to see its threads on the right, one card per thread. An unread thread has an
orange dot on the author's avatar. Open a card to read the whole thread, then reply, resolve,
or reopen it. Guest feedback appears here too, labelled as guest.

Above the threads:

- **Status** shows open, resolved, or all threads.
- **Mark all read** clears the unread dots on the threads you're looking at.
- **···** switches between **This version** and **All versions**.

Switch prototypes with the breadcrumb above the list (it reads Space > Folder > Prototype, and
the prototype picker groups every prototype you can see by space and folder).

### On a phone

The version list becomes a single card showing the selected version. Tap it to open the full
list and pick another version. An open thread fills the screen. The page's tabs scroll
sideways, and **Open latest** and **Share** move into the **···** menu.

### On a turned-off version

If [access is turned off](https://artor.app/docs/access), or the prototype is trashed, existing comments
remain available for review. Replies and status changes are blocked until access is restored.
The dashboard explains why its controls are disabled; CLI commands report that the version
is read-only.

## Keeping the widget up to date

For a project that installs the review widget as a dependency, update it and publish again:

```bash
npm i @artorapp/web-sdk@latest
artor publish
```

Use your project's package manager if it isn't npm. Re-running `artor init` doesn't update
an already installed widget. Existing builds keep the widget they were published with;
publish a new version to share an updated build. If your project uses a versioned script URL,
update that version before publishing. See [Publishing](https://artor.app/docs/publishing) for troubleshooting.

## Honest limits

- Comments display plain text, without Markdown formatting or embedded content.
- A thread belongs to the screen and version where it was created; it doesn't move to the next version.
- Comments refresh when you return to the page, rather than appearing live as others type.
- Deleted threads can't be recovered. Deleting a guest thread also removes any team replies in it.
- The review widget runs inside the prototype. Only review code you trust with what you enter, including comments and guest contact details.

## Related

- [Reviewing a prototype](https://artor.app/docs/reviewing)
- [The publish → review loop](https://artor.app/docs/workflow)
- [Public sharing](https://artor.app/docs/sharing)
- [Email notifications](https://artor.app/docs/notifications)
