Ace map · conversation

Conversation

Talk to agents and teammates in a channel: messages, runs, chats, questions and approvals.

testedvisualpartialbrokenuntestedmissingplannednopen gap
^470

Choose Chat or Ace mode

visual

Chat posts to the channel; Ace invokes the channel's agent. The mode is remembered per channel.

  1. ^471

    Pick a mode from the dropdown

    tested
    Channel → composer → mode button (Ace ⌄ / Chat ⌄)

    Chat shows Mention @ace to ask the agent and no model picker; Ace puts an ace chip in the composer and shows the model and effort pickers.

  2. ^472

    Type @ace to switch to Ace

    tested

    Type @a, then Enter or Tab on the ace suggestion, or type @ace and a space.

    The text becomes an ace chip and the mode switches to Ace. Removing the chip switches back to Chat.

  3. ^473

    Leave or enter Ace with Esc

    tested

    In Ace, Esc goes to Chat and turns the chip back into words. In Chat, Esc twice within 350 ms goes to Ace.

    From ace hi, Esc left hi in Chat mode. Esc Esc from Ace only goes to Chat (the first Esc leaves Ace, the second does nothing).

^480

Send a message

partial
  1. ^481

    Send with Enter

    tested

    Chat mode posts the message (say). Ace mode posts it and starts a run (ask); the reply streams under the agent's model name.

  2. ^482

    Add a line with Shift+Enter

    tested
  3. ^483

    Send with the Send button

    tested
    Composer → Send (green arrow)

    An empty composer shows a microphone in its place.

  4. ^484

    Mention @ace from the suggestion list

    tested
    Composer → type @

    The list offers only ace; Enter or Tab inserts the chip.

  5. ^485

    Mention a person

    tested
    Composer → type @

    @ suggests ace, then the channel's members: ace-demo-rivera, present in x4, was listed with their avatar.

  6. ^486

    Type @ in the Dashboard composer

    tested
    Dashboard → Start a new channel

    @Add a note stays plain text, and @ suggests only ace.

    1 Not reproduced here: @, Backspace, then typing did not leave the popup armed, and Enter still sent, in headless Chromium on both the Dashboard and the channel composer. The reported dead Enter may be WebKit-only.

  7. ^900

    See who is typing

    tested

    A teammate types in the chat you have open.

    A typing line names them under the transcript; it clears when their message arrives, or about 5 s after their last keystroke. The app signals every ~3 s while you type.

^490

Format a message

visual
  1. ^491

    Show or hide the formatting tools

    tested
    Composer → A (Show tools / Hide tools)

    Hides the row of Bold, Italic, Underline, Strikethrough, Link, lists, quote, code, Attach and Emoji. Phones start with it hidden.

  2. ^492

    Format with shortcuts

    tested

    Cmd+B, Cmd+I, Cmd+U, Cmd+E (code), Cmd+Shift+S (strike), Cmd+Alt+7/8 (lists), Cmd+Shift+. (quote), Cmd+Alt+` (code block).

    The sent message keeps the formatting.

    2 Markdown typing converts ` code , - lists and ` fences, but ~~strike~~ and bold` stay literal.

  3. ^493

    Add a link

    tested
    Composer → Link, or Cmd+K

    Enter a URL and a name, then Apply.

    The link is sent as a link and listed under Links in the details sidebar.

  4. ^494

    Insert an emoji with :

    tested

    Type :thumbs and pick from the list.

  5. ^495

    Insert an emoji from the picker

    tested
    Composer → Emoji

    The picker focuses its search: typing tada filters to 🎉 and Enter inserts it at the cursor without sending.

^500

Attach files

visual

Images, text files and PDFs. Images are re-encoded as JPEG; PDFs go to the model as their text.

  1. ^501

    Attach with the Attach button

    tested
    Composer → Attach

    Each file becomes a chip above the composer.

  2. ^502

    Paste an image

    tested
  3. ^503

    Drop a file on the composer

    tested
  4. ^504

    Ask about images, a text file and a PDF

    tested

    haiku read four images, a .txt and a PDF in one message: red, green, blue, and orange … 42 … kiwi.

  5. ^505

    Open an attachment in the timeline

    tested

    Images open in a viewer; text files and PDFs (as text) open in a file viewer with line numbers.

  6. ^506

    Remove an attachment before sending

    tested
    Chip → ×
  7. ^507

    Attach a file that isn't text

    tested

    Could not send message — blob.bin isn't a text file; only images, text files, and PDFs can be attached, on send, not on attach.

  8. ^508

    Attach more than four images

    tested

    Choosing six images attaches four, with toast A message can carry 4 images / 2 images weren't attached.

^510

Dictate

partial
  1. ^511

    Record a message by voice

    visual

    Without microphone access, Record toasts Voice input stopped / Microphone access is off for Ace. Allow it in your browser or system settings.

    3 Canary 0.0.51.85: both macOS prompts and the level meter worked; with the Mac muted nothing was transcribed, and silence gave no feedback.

^515

Pick the model and reasoning effort

visual

Ace mode only. The pick is kept per chat in this browser and applies from the next run.

  1. ^516

    Pick a model

    tested
    Composer → model button → Search models

    Automatic first, then every model of each configured provider, filtered as you type. The next reply is labeled with the picked model.

  2. ^517

    Hand the choice back with Automatic

    tested

    The channel picks a model with a working key.

  3. ^518

    Pick a reasoning effort

    tested
    Composer → effort button

    Off, Minimal, Low, Medium, High for claude-haiku-4-5; Default when no effort is picked.

  4. ^519

    Change the model while a run is going

    tested

    Refused: Could not invoke agent — The chat is busy; stop it or wait before changing its model or reasoning effort, with no Providers button. The draft stays.

^520

Watch a run

partial
  1. ^521

    See it working

    tested

    The agent's avatar animates, tool rows appear as they run (Running sleep command for twenty-five seconds… Ran 1 command), and the channel's sidebar icon spins.

  2. ^522

    Open the working rollup

    tested
    Reply → Worked for N seconds, ran N tool calls

    When the answer arrives the work rolls up into a one-line summary; clicking it lists the steps, and each step lists its tools.

  3. ^523

    Read a tool's output

    tested
    Rollup → step → tool row (bash seq 1 60)

    The command's output in a code block. 400 lines showed in full; no Show more appeared.

  4. ^524

    See edited files after a turn

    tested

    Created document notes.txt and Edited 2 files — notes.txt, README.md under the answer. Clicking a file, or Review, opens the chat's Diff tab at it.

  5. ^525

    See a failed run

    visual

    Run failed: OpenAI API error (404): The model gpt-4 does not exist or you do not have access to it. under the model's name.

    4 Unverified in the 2026-10-22 study: it couldn't cause a whole-run failure; a stopped run and a failed tool showed no run-level failure.

  6. ^526

    Retry a failed run

    visual

    Under the composer: The last run failed on openai/gpt-4. Retry switches this chat to Automatic. Retry asks Try again., toasts Switched this chat to Automatic, and the run answers on the automatic model (claude-haiku-4-5).

    5 Unverified in the 2026-10-22 study: no run failed, and a stopped run offers no Retry.

^530

Queue messages and stop a run

visual
  1. ^531

    Send while a run is going

    tested

    1 queued message above the composer with the text and Waiting for the agent.

  2. ^532

    Let a queued message steer the run

    tested

    The queued also say the word banana joined the running turn; the answer was ok then banana.

  3. ^533

    Stop the run

    tested
    Composer → red Stop response (peeks from behind Send)

    The reply ends with Stopped. and the chat stays usable.

    6 Stop sits mostly behind Send and only slides out on hover or focus (by design); on touch there is no hover, so only a sliver shows.

  4. ^534

    Get queued messages back after Stop

    tested

    Toast Stopped before your queued message ran — It's back in the composer.; the text returns with its ace chip, and the reply notes Returned 1 queued message to iamnbutler as a draft.

    7 The Returned … as a draft line was gone after a reload; only Stopped. remained.

^540

Recall and keep drafts

partial
  1. ^541

    Recall sent messages with ↑ and ↓

    tested
    Empty composer → ↑

    ↑ walks back through every sent message (third, second, first note) and ↓ walks forward to an empty composer.

  2. ^542

    Keep a draft across reload

    tested

    draft survives reload? and its Ace chip were back after reloading; drafts are per channel in this browser.

  3. ^543

    Keep the model pick

    tested

    The picked model is stored per chat (ace:pick:/channels/<id>/1) and survived reload.

^545

Answer an agent's question

partial

An agent's question tool shows a card above the composer; the run waits for the answer.

  1. ^546

    See the question

    tested

    Ask @ace to use its question tool.

    Ace needs your input — Requested by the agent, numbered questions with options and descriptions, Write a custom answer, Submit answers.

  2. ^547

    Pick an option and submit

    tested

    The run resumes; haiku replied Kiwi. after kiwi was picked.

  3. ^548

    Write a custom answer

    tested
  4. ^549

    Decline or skip a question

    tested
    Question card → Skip

    The card resolves and the agent is told the question was skipped (it replied NO ANSWER as asked).

  5. ^550

    Answer from the CLI

    tested
    ace answer <channel> [--chat <id>] <text…>

    ace watch and ace ask print the question, its options and an ace answer hint; ace answer cli-one --chat 15 "Kiwi, obviously" resumed the run, which replied Kiwi. A second answer says No question is waiting.

^555

Edit or delete your message

partial

Only your own stored messages, from the hover toolbar's More menu (Edit, Delete).

  1. ^556

    Edit a message

    tested
    Your message → More → Edit

    Change the text in the composer, which shows ✓ and ×, and press Enter.

    The message's text changes for everyone.

  2. ^557

    Cancel an edit

    tested

    Esc or ×.

  3. ^558

    See that a message was edited

    tested

    Only on hover: the byline gains the edit time (Oct 22, 2026, 10:08 AM). Without hover, edited shows only when the edited message is the last in its group.

    8 An edited message in the middle of a group looked unedited until hovered, and the hover shows a bare time with no edited label.

  4. ^559

    Delete a message

    tested
    Your message → More → Delete

    Delete message? — Everyone sees it was deleted; agents won't read it again. Delete message leaves Message deleted.

    9 Re-check, Canary 0.0.54.93: Message deleted appeared at once on both Macs. Its hover toolbar still offers an enabled More whose only item, Delete, is disabled.

^560

React to a message

visual
  1. ^561

    Add a reaction

    tested
    Message → Add reaction

    An emoji picker; the pick shows as a chip under the message.

    10 Pills show no count, and the emoji picker's search text is unreadable on its black field (githubnext/ace#619).

  2. ^562

    Join or leave a reaction

    tested

    Click a chip, such as rivera's 👀.

    👀 2; the tooltip says You and ace-demo-rivera. Click again to remove yours.

^565

Use the message toolbar

partial
  1. ^566

    Copy a message

    tested

    The clipboard holds the message text, and a Copied message toast confirms it.

  2. ^567

    Copy a link to a message

    missing

    The button is always disabled.

^570

See context and cost

partial
  1. ^571

    Open the usage popover

    tested
^575

Notice runs that need you

visual

Only runs you invoked that ended, failed or ask a question while you weren't watching that channel.

  1. ^576

    See an unread dot

    tested

    A run ended in team-chat while ok-reply-test was open: a green dot on team-chat's icon until opened.

  2. ^577

    See Needs you on the Dashboard

    visual

    The agent is waiting for your answer for a pending question, Your run failed for a failure (the sidebar shows a hand icon). A run that just finished isn't listed.

    11 Not shown when nothing needs you; the 2026-10-22 study had only a finished run, and testers looked for a Needs you heading.

  3. ^578

    Get a desktop notification

    untested

    Only in the desktop app, when no Ace window is focused.

^580

Chats in a channel

partial

The app shows one chat per channel; other chats exist only for the CLI and agents.

  1. ^581

    Open a Chat tab

    tested
    Channel header → New tab → Chat

    Focuses the channel's one Chat tab; there's no way to start or pick another chat.

  2. ^582

    See other chats

    missing

    ace chat ok-reply-test made chat 38 and ace say/ask --chat 38 worked, but the app showed none of it; subagents' child chats are invisible the same way.

^584

Scroll the timeline

partial
  1. ^585

    Jump back to the latest message

    missing

    Scrolled to the top, there is no Jump to latest button; the timeline re-pins to the bottom only once you scroll there.

  2. ^903

    See where new messages start

    tested

    A New divider sits above the first unread message, and a message that mentions you gets an accent tint and bar.

    12 Re-check, Canary 0.0.54.93: the divider and mention tint worked within one browser session, but unread state lives in the browser: after a fresh sign-in only mention counts remained, with no divider (githubnext/ace#677).

    13 Messages grouped under one header still show only the last one's time (rest of githubnext/ace#602).

^586

Invoke with teammates in the channel

partial

Agent access decides whether teammates may invoke the channel's agent; it never limits the owner.

  1. ^587

    See a teammate invoke @ace

    tested

    In team-chat (agent access on) rivera's @ace does total() handle… ran and answered, and rivera reacted 👀.

    14 The chat's cost isn't split by who asked.

    15 Re-check, Canary 0.0.54.93: the byline worked on both Macs (asked by samechocolixir · ran on your natembp with your key; asked by you · ran on iamnbutler's natembp with their key), but in the owner's browser nothing outside the channel said a teammate had used the agent (the desktop notification wasn't observable), and a teammate's channel showed the owner's Cannot access ANTHROPIC_API_KEY in the keychain… without saying it was on the owner's Mac.

  2. ^588

    Be a teammate without agent access

    tested

    The composer is Chat only, with Message the channel and no @ace; a typed @ace is plain text. The channel refuses an ask with Only the owner can invoke agents here.

    16 The composer was Chat only with no @ace, but @ace what branch is this repo on? typed by hand posted as a green ace chip and was ignored, with no notice to either side.

    17 Pair study, Canary 0.0.53.88: a typed @ace is now refused with Agent access is off… Remove @ace to send this as a message. and the text kept; ace ask refuses with Only the owner can invoke agents here, naming neither agent access nor the owner.

  3. ^589

    Invoke as the owner with agent access off

    tested

    ace agents ok-reply-test off, then ace ask still ran (owner ok).

^590

Converse from the CLI

visual
  1. ^591

    Post without invoking

    tested
    ace say <channel> [--chat <id>] <text…>

    The message appears in the app right away.

  2. ^592

    Ask the agent

    tested
    ace ask <channel> [--chat <id>] [--model <provider/id>] [--detach] <text…>

    Streams the reply; --detach returns at once. --model changes the chat's model for later runs too. An unknown model prints Unknown model … and exits 1.

    18 A failed run prints (run ended) and exits 0, so a script can't tell it failed.

  3. ^593

    Watch a chat

    tested
    ace watch <channel> [--chat <id>]

    Replays the transcript, then follows it. Authors show as Tailscale logins (iamnbutler@gmail.com), not GitHub logins as in the app.

  4. ^594

    Open another chat

    tested
    ace chat <channel> [--model <provider/id>]

    Prints the new chat's id (38).

  5. ^595

    Stop a run

    tested
    ace stop <channel> [--chat <id>]

    The run ends with Stopped. and Needs you clears.

    19 ace kill and worker restarts aren't recorded or told to the agent, and a resumed run doesn't say it resumed (rest of githubnext/ace#442).

  6. ^596

    Kill all work in a channel

    tested
    ace kill <channel>

    A running sleep 30 ended with Stopped.; nothing is deleted.

  7. ^597

    List models and see the default

    tested
    ace models · ace model [provider/id|auto]

    ace models lists every provider/model; ace model printed Automatic. Setting it wasn't tried on the shared host.

^598

Approve an agent's tool call

missing