Ace map · channels

Channels

Create, find, rename, move and delete channels, and decide who can use them.

testedvisualpartialbrokenuntestedmissingplannednopen gap
^370

Create a channel

partial

Every entry point but the Dashboard composer creates an empty channel at once, with a generated name such as amber-grove, and opens it with @ace already in the composer. The first agent run names an unnamed channel.

  1. ^371

    Create from the sidebar

    tested
    Channels → Channels section header → +

    A new channel opens at the top of Channels, header on this host's machine chip.

  2. ^372

    Create from the empty channel pane

    tested
    Channels, no channel open → New channel

    Choose a channel in <project> with a New channel button; shown after the open channel is deleted.

  3. ^373

    Start a channel with a prompt

    tested
    Dashboard → composer (Start a new channel) → Enter

    The channel opens with the prompt sent to @ace and named from it (cart-item-count in checkout); the run completes.

  4. ^374

    Create from the Dashboard list

    tested
    Dashboard → Channels → New channel
  5. ^375

    Create from the palette

    tested
    Cmd+K → Channel: New Channel in <project>
  6. ^376

    Create in another project from All Projects

    tested
    Project picker → All Projects → project header → +

    New channel in <project> on each project's header.

  7. ^377

    Create with the command line

    tested
    ace new [--project <dir>] [--name <name>] [--model <provider/id>]

    Prints the name and id; the channel is dormant until first used. An invalid name fails with A channel name must be lowercase kebab-case, at most 63 characters; an unavailable model fails with This model is unavailable. Add its provider key first. and exits 1.

    1 --model nope/model, which names no provider at all, gets the same Add its provider key first.

  8. ^378

    Choose the model at creation

    partial
    New channel → composer → model picker (Automatic)

    The app has no model choice in the create step; the composer's picker sets the first run's model. The CLI takes --model.

    2 No create entry point in the app asks for a model; it can only be picked afterwards in the composer.

    3 New channels don't start on the last-used model (left by githubnext/ace#640).

  9. ^379

    Start from an issue or pull request

    tested
    Channels header → ⋯ → Continue a pull request… / Issues, PRs pages

    Only in a GitHub project; channels-lab's ⋯ shows Share project… only.

    4 Starts a paid run at once, with no chance to edit the prompt.

  10. ^380

    Pick a cloud place

    tested

    Offered in a GitHub project when Settings → Beta → Run in cloud is on and a compute service is set; neither exists on the smoke host.

  11. ^381

    Create with a keyboard shortcut

    missing

    There is none; Cmd+K then the palette action is the shortest path.

^383

Read the sidebar

partial

Sections in order: Pinned, Channels (yours), one per teammate (with <name> · Archived folded), Inactive (idle 6 h, any owner), and Archived, which is a footer that opens its own list.

  1. ^384

    Collapse or expand a section

    tested
    Click a section label (Pinned, Channels, …)
  2. ^385

    See a busy channel

    tested

    A spinning arc replaces the #.

  3. ^386

    See an unread channel

    tested

    A green dot on the # when someone else wrote since you last looked, and a count when they @mentioned you (@IAMNBUTLER counts too); opening the channel clears both. The palette says Unread or Mention.

    5 Pair study saw the mention count live (1 direct mention); the plain unread dot went unseen because each tester turn used a fresh browser profile, which also forgets mentions across reloads.

  4. ^387

    See a channel that needs you

    tested

    A raised hand when a run you started failed or is waiting on your answer; runs started with ace ask count too.

    6 A browser profile only counts runs that end after its first visit: a question already waiting when a new profile opened read Busy in the palette until another question was asked.

  5. ^388

    See who is here

    tested

    Avatars of teammates in the channel, dimmed when away; hover says ace-demo-sam away. The project header shows the project's facepile.

  6. ^389

    See a teammate's section

    tested

    Their channels under their GitHub login, <name> · Offline when every host of theirs is unreachable.

    7 Pair study, Canary 0.0.53.88: in All Projects a shared section reads pair-sandbox · natembp · iamnbutler, truncated and sorted last, with no Shared with you heading; Archived and Inactive weren't seen.

  7. ^390

    See the Inactive section

    untested

    Channels idle more than 6 hours, from every owner.

  8. ^391

    See a hosted, cloud or PR channel

    partial

    A globe for hosted, a cloud for cloud compute, a lock for private, and PR state icons when the channel has a pull request.

    8 A hosted channel shows a globe in the sidebar but a cloud in the header chip (apps/app/src/channel-access.tsx:53).

    9 Canary 0.0.51.85: a renamed cloud channel kept its old name in the sidebar until opened, and a PR channel shows no PR mark.

^393

Pin a channel

visual

Pins belong to the person and this browser profile (ace:pinned-channels in localStorage), so teammates never see them.

  1. ^394

    Pin

    tested
    Sidebar → right-click a channel → Pin channel

    A Pinned section appears above Channels with it.

  2. ^395

    Unpin

    tested
    Sidebar → right-click → Unpin channel

    10 Pins live in one browser's localStorage, so another device or the desktop app doesn't share them.

^397

Rename a channel

partial
  1. ^398

    Rename from the sidebar

    tested
    Sidebar → right-click → Rename channel

    Edit the name and press Rename.

    The row, tab and Channel facts update. Use lowercase letters, numbers, and hyphens, up to 63 characters.

  2. ^399

    Get a rename refused

    tested

    A taken name says A channel named shared-room already exists in the dialog. A malformed name is stopped by the browser's own Please match the requested format.

  3. ^400

    Rename with the command line

    tested
    ace rename <channel> <name>

    Same rules and messages as the app; prints nothing on success.

  4. ^401

    Rename from the channel header

    missing

    The channel's tab menu offers Rename and Close, both disabled for the chat tab.

  5. ^402

    Let the agent name it

    tested

    An unnamed channel takes its name from the first run: a fork named fork-of-lab-one became counting-test after one prompt. A name you set stays.

^404

Fork a channel

visual

Starts a sibling channel in the same project from the source's summary and lane. Not offered for cloud compute channels.

  1. ^405

    Fork from the sidebar

    tested
    Sidebar → right-click → Fork channel

    Toasts Forking lab-one… then Forked lab-one into fork-of-lab-one; the fork opens with a first message Forked from #lab-one (channel <id>). and the summary, and keeps the source's model.

  2. ^406

    Fork with the command line

    tested
    ace fork <channel>

    Prints the new name; a second fork is fork-of-lab-one-2.

^408

See a channel's details

visual
  1. ^409

    Open the details sidebar

    tested
    Sidebar → right-click → Channel info · header → Toggle details sidebar

    Summary, Changes with +/−, branch, then Channel: Project, Host, Owner, Model and Tokens/Estimated cost once a run has happened, Created.

  2. ^410

    Show details on the command line

    tested
    ace info <channel>

    JSON with id, name, summary, project, owner (Tailscale login), agents (agent access), desktop, and each chat's usage.

^412

Archive and unarchive

partial

Archiving stops new messages and moves the channel to Archived. Only the owner can archive.

  1. ^413

    Archive a channel

    tested
    Sidebar → right-click → Archive channel

    The row leaves Channels at once and an Archived footer appears; no confirmation, toast or undo.

  2. ^414

    Open the archived list

    tested
    Sidebar footer → Archived

    The sidebar switches to Back and an Archived list.

  3. ^415

    Read an archived channel

    tested

    The transcript opens with Archived. Unarchive it from the sidebar to send messages. above the composer.

    11 In All Projects an archived channel has no row anywhere, yet still says to unarchive it from the sidebar; All Projects also shows only the 10 most recent channels per project (apps/app/src/app.tsx:130, apps/app/src/app.tsx:455).

  4. ^416

    Unarchive

    tested
    Archived → right-click → Unarchive channel

    It returns to Channels and the sidebar leaves the empty Archived list.

  5. ^417

    Archive or unarchive with the command line

    tested
    ace archive <channel> · ace unarchive <channel>

    No output; the app updates live. ace ls hides archived channels, ace ls --all shows them as archived.

  6. ^418

    Archive inactive channels

    visual
    Channels section ⋯ → Archive inactive (or right-click the section label)

    Archived N inactive channel(s), or No inactive channels on this host (seen). Not offered in All Projects.

    12 Runs at once with no preview; the 2026-10-22 study had no inactive channel to archive.

^420

Delete a channel

visual
  1. ^421

    Delete an archived channel

    tested
    Archived → right-click → Delete channel

    Delete #cli-made? This permanently removes the channel's messages, runs, chats, and tool results. Run ace backup first to keep a copy. Confirming removes it; the pane shows Choose a channel.

    13 A live channel's menu has no Delete at all; the Delete channel — Archive first hint in the code is never shown (packages/ui/src/components/session-item/session-item-actions.tsx:323, session-item.tsx:217).

  2. ^422

    Delete with the command line

    tested
    ace delete <channel>

    Deleted x2. Its lane branches remain in <project>. It deletes a live, unarchived channel without asking; the app open on it falls back to Choose a channel.

^424

Move a channel

untested

Moves an idle local channel to a cloud workspace, or a hosted one back to this host. Needs the team's compute service.

  1. ^425

    Choose a destination

    partial
    Sidebar → right-click → Move to <label>

    Without a compute service the menu shows a disabled Move to… no available destinations with Cloud compute and a GitHub repository let a channel move under it.

    14 Canary 0.0.51.85: only Move to cloud workspace is offered, and a cloud channel can't move back.

  2. ^426

    Move with the command line

    visual
    ace move <channel> --compute | --local

    Here --compute fails with The team's services need ACE_SECRET. Add it in Settings → Team, or with ace key set ACE_SECRET, --local with The channel is already on this host.

  3. ^427

    Stop or start compute

    tested
    Sidebar → right-click a cloud channel → Stop compute / Start compute

    15 Tested on Canary 0.0.51.85 (2026-10-22 study).

^429

Let teammates invoke the agent

partial

Agent access, owner only. Off by default.

  1. ^430

    Turn agent access on

    tested
    Channel header → bot icon (Agent access) → Turn on

    Let teammates invoke agents? Teammates can run commands as you on this machine, with Ace's macOS permissions such as Screen Recording. The icon turns green.

  2. ^431

    Read the setting

    tested
    Hover the bot icon

    Agent access: Off over a description of what turning it on allows.

  3. ^432

    Turn agent access off

    tested
    Header → bot icon

    Turns off immediately, without asking.

    16 Nothing in the channel tells teammates; a guest only sees the composer lose Ace mode.

  4. ^433

    Set it with the command line

    tested
    ace agents <channel> on|off

    on prints Agent access is on for <channel>. Teammates can run commands as you on this machine.; anything else, or nothing, prints the usage and exits 1. The app updates live.

^435

Let agents use this machine's apps

partial

Desktop tools for the channel's runs, owner only. Hidden for cloud compute channels.

  1. ^436

    Toggle desktop tools

    tested
    Channel header → monitor icon (Channel desktop tools)

    Turns on or off immediately, no confirmation; the tooltip warns it isn't a security boundary.

  2. ^437

    Set it with the command line

    tested
    ace desktop <channel> on|off

    on prints Desktop tools are on for <channel>. Its agents can operate this machine's apps.; anything else prints the usage and exits 1. The app updates live.

    17 off prints nothing, while on confirms.

^439

Use the channel header

visual
  1. ^440

    See where the channel runs

    tested
    Header → machine chip

    A laptop and the host name (natembp); hover says Runs on natembp. Hosted and cloud channels show a cloud.

  2. ^441

    Open a new tab

    tested
    Header → + (New tab)

    Chat, Diff, Terminal.

^443

Find a channel

visual
  1. ^444

    Search channels in the palette

    tested
    Cmd+K → type

    Before typing it lists this project's channels as <project>: <name> with Busy or Unread; typing searches every project (cart found checkout: cart-item-count).

  2. ^445

    Open a channel from the palette

    tested
    Cmd+K → result → Enter

    Switches to the channel's project and opens it.

  3. ^446

    Act on a channel from the palette

    missing

    The palette has no pin, rename, fork, archive or delete; only New Channel.

^448

List and control channels from the command line

visual
  1. ^449

    List this host's channels

    tested
    ace ls [--all]

    Tab-separated name, id, running/dormant/archived, model or automatic, project path.

    18 Channels whose worker is up with no run still read running; the word waits on a docs/terms.md decision.

  2. ^450

    List the team's channels

    visual
    ace ls --team

    Name, id, state, host, owner, project for reachable hosts; here only this host.

  3. ^451

    Stop all work in a channel

    tested
    ace kill <channel>

    A counting run stopped (busy went false); no output. The app has no equivalent.

^453

Back up, restore, export and import

partial
  1. ^454

    Back up a channel

    tested
    ace backup <channel> <new-directory>

    Channel data saved. Back up project files and lane worktrees separately. Writes backup.json, channel.json, channel.sqlite; an existing directory fails with a raw EEXIST.

  2. ^455

    Restore a backup as a new channel

    tested
    ace restore <directory> [--project <dir>]

    A new channel with the original transcript; a taken name gets -1, -2 (cli-one-1).

  3. ^456

    Export a channel as a seed

    tested
    ace export <channel> <file>

    An editable ace-seed JSON with name, summary, and each chat's model and items.

  4. ^457

    Import a seed as a new channel

    tested
    ace import <file> [--project <dir>] [--name <name>] [--now]

    Prints the name and id; a taken name is refused with A channel named lab-one already exists.