Ace map · projects

Projects

Add a folder as a project, set it up, and share it.

testedvisualpartialbrokenuntestedmissingplannednopen gap
^300

Open a folder as a project

partial

Adds a folder on this host to the project list and selects it. A subfolder of a repository opens the repository's root. Opening never creates a channel.

  1. ^301

    Open the Open a folder dialog

    tested
    Project picker → Open folder… · Cmd/Ctrl+O · palette → Open Folder… · empty state → Open folder…

    A browser gets Open a folder: one path field (~/code/project), Cancel and Open folder.

  2. ^302

    Enter a path and open it

    visual
    Open a folder → Open folder

    Type a full path or one starting with ~.

    The project is selected and the Dashboard asks what to work on in it. /tmp/ace-96/proj/projects-lab/src opened projects-lab.

  3. ^303

    See why a path can't open

    tested

    A file says Choose a folder to open as a project; a missing path says There's no folder at <path>. Check the path.; a relative path says Enter a full folder path, such as ~/code/project.

  4. ^304

    Choose a folder in the native panel

    tested
    Desktop: picker → Open folder…, or File → Open Folder… (Cmd+O)

    A macOS folder panel starting in the home folder; the chosen folder opens as in ^302.

  5. ^305

    Open while Ace Helper is unreachable

    untested

    Cmd+O and the menu item do nothing while disconnected; the empty state's buttons are disabled.

    1 Cmd+O returns silently while disconnected, with no message saying why (apps/app/src/app.tsx:553).

    2 Blocked in the 2026-10-22 study: needs a Mac where Ace Helper can be stopped.

^310

Initialize Git for a folder

partial

Channels work in lanes, so a folder needs a Git repository with a commit. Ace offers to make one.

  1. ^311

    See the Initialize Git card

    tested
    Dashboard, or Channels page, of a folder without a commit

    Initialize a Git repository to get started, explaining it runs git init, adds a .gitignore for secrets, dependencies and build output, and commits the rest. The Channels page shows no header, + or ⋯ until then.

    3 A folder that already has .git but no commits still reads Initialize a Git repository to get started (left by githubnext/ace#646).

  2. ^312

    Initialize Git

    tested
    Initialize Git card → Initialize Git

    Initializing…, then toast Initialized Git / Committed the folder's files as Initial commit. Channels can start here now. The folder has a .gitignore and one commit, Initial commit.

  3. ^313

    Initialize a folder that already has a .gitignore

    tested

    The card says the folder already has a .gitignore, so Ace won't commit under its rules, and to run git init and commit its files yourself. It offers no Initialize Git button.

    4 The card gives no commands to copy.

  4. ^314

    Commit outside Ace and come back

    tested

    Run git init and commit in a terminal.

    The card stays until you switch to another project and back, or reload; then New channel appears.

^320

Clone from URL

visual

Clones a GitHub repository to this host and adds it as a project. Nothing is cloned until you confirm the folder.

  1. ^321

    Open Clone from URL

    tested
    Project picker → Clone from URL… · palette → Clone from URL… · empty state
  2. ^322

    Enter a repository

    tested

    Paste https://github.com/owner/name or owner/name.

    Folder fills in as <projects folder>/<name> (~/code/Hello-World by default) and the button reads Clone to <folder>. Editing the folder keeps your path.

  3. ^323

    Clone

    tested
    Clone from URL → Clone to <folder>

    Setting up… while the form stays open, then the project is selected. octocat/Hello-World cloned into /tmp/ace-96/proj/Hello-World.

  4. ^324

    Clone where the repository already is

    tested

    No clone; the existing checkout opens with toast Opened the checkout already at <path>.

  5. ^325

    See why a clone can't start

    visual

    Inline under the form: a non-empty folder (already has other files. Choose an empty or new folder.), a file (is a file. Choose a folder.), another repository's checkout (is a checkout of octocat/Spoon-Knife. Choose another folder.), a relative path (Enter a full folder path, such as ~/code/project), a non-GitHub URL (Ace clones GitHub repositories…), and a repository GitHub can't find for this host's Git credentials, with Git's output.

  6. ^326

    Choose another parent folder

    visual
    Desktop: Clone from URL → Choose another folder…

    The clone goes in the chosen folder, still named after the repository.

^330

Set up a teammate's project on this host

tested

A GitHub project seen only in a teammate's listing can be cloned here so channels can start on this host.

  1. ^331

    Set up on this host

    tested
    Dashboard or Channels page of a project on another host → Set up on <host>

    Set up <project> on <host>: the repository is fixed, only the folder is asked; then as ^323.

  2. ^332

    Set up while starting a channel

    tested

    Starting a channel in a project not on this host asks to clone it first, then starts the channel.

    5 Pair study, Canary 0.0.53.88: it never asked for a name and started keen-delta in Ace mode on Automatic rather than Settings' default model. Re-check, Canary 0.0.54.93: + still made hazy-ladder with no name prompt.

  3. ^333

    See a folder project on another host

    tested

    A non-GitHub folder can't be set up here; the Dashboard says to open a checkout on this host, and the picker labels it with its hosts.

    6 Sits in your own Projects group as <project> · <host>, with nothing saying who shared it.

    7 Pair study, Canary 0.0.53.88: the Dashboard says to Open a checkout on this host but offers no way to, and the project has no Channels header, + or ⋯.

^335

Switch projects

visual
  1. ^336

    Open the project picker

    tested
    Dashboard → project name ⌄ · Channels page → project name ⌄

    All Projects, Open folder…, Clone from URL…, then Projects (folders, in the order they were added) and one group per GitHub owner (octocat → Hello-World). The current one is ticked.

  2. ^337

    Pick a project

    tested

    The Dashboard and Channels page switch to it; the choice survives a reload.

  3. ^338

    Tell projects with the same name apart

    tested

    Two folders named app show as app — p-a and app — p-b; a GitHub project gets its owner. Removing one turns the other back into app.

  4. ^339

    Rename or reorder a project

    missing

    8 Nothing renames a project or changes its order; the label is always the folder or repository name.

^340

All Projects view

partial
  1. ^341

    Show all projects

    tested
    Project picker → All Projects

    The Channels page lists every project as a header with its channels under it and Choose a channel from any project.

  2. ^342

    Start a channel in a project

    tested
    All Projects → project header → +

    New channel in <project>.

  3. ^343

    Collapse a project

    tested
    All Projects → project header

    The project's channels hide, and stay hidden after a reload.

    9 All Projects orders Hello-World among the folders, while the picker puts it last under octocat (not re-checked).

^345

Remove a project

partial

Forgets the folder; its files and lanes stay where they are.

  1. ^346

    Remove a project

    tested
    All Projects → right-click project header → Remove project…; Channels header ⋯ → Remove project…

    Remove <project>? says Ace forgets it and its files and lanes stay; Remove project removes it. Don't ask again skips the question next time.

    10 Projects that appear only through CLI channels never offer it (not re-checked).

  2. ^347

    Remove a project that has channels

    visual

    Toast Could not remove project: This project still has a channel, counting archived ones. Delete it first.

  3. ^348

    Remove a project from the picker

    tested
    Project picker → × on a project (or Delete)

    The same Remove <project>? confirmation; Remove project takes it off the picker.

    11 Each row's × shows beside the name as soon as the picker opens, so a stray click opens Remove (rest of githubnext/ace#616).

  4. ^349

    Only the host's owner removes its projects

    tested

    12 Pair study, Canary 0.0.53.88: a teammate's project has no Remove in the picker, the All Projects header or the channel menu, and nothing says why, so the gateway's owner-only check (githubnext/ace#571) can't be reached from the app.

^350

Share a project

partial

Gives the team or one person access to every channel in the project, now and later. Needs a team directory.

  1. ^351

    Open Share project

    tested
    Channels page → Channels header ⋯ → Share project…, or right-click the Channels header

    Share <project>: Everyone on the team switch, then each teammate with how they see it. Hidden until this host has joined a team directory.

    13 Not on the Dashboard or in All Projects, and absent until a folder has a commit, since the ⋯ menu and header aren't shown before.

    14 Mac A's list named Sam by a stale GitHub login (githubnext/ace#610).

  2. ^352

    Share with the whole team

    tested
    Share → Everyone on the team

    A confirmation names whose channels it exposes: Everyone on the team will see every channel in it… and can post in them. Share saves it.

  3. ^353

    Share with one person

    tested
    Share → teammate → Share

    Same confirmation, naming the person.

  4. ^354

    Unshare, or turn off team sharing

    tested
    Share → Unshare · Everyone on the team off

    Takes effect at once, without confirmation. People who read it on GitHub have no Unshare.

    15 The person losing access gets no notice: the project and its channels just disappear (githubnext/ace#606).

  5. ^355

    See a project you can't share

    partial

    Only people who can read it on GitHub, or whose folder it is, can share it. and disabled controls.

    16 Pair study, Canary 0.0.53.88: a teammate's folder project has no Channels header or ⋯, so there's no Share entry and this sentence never shows in the app; only ace project access prints it.

  6. ^902

    Find a project shared with you

    partial
    Project picker

    It appears as <project> · <host> only once it has a channel; a project shared with no channels stays invisible, and nothing says it was shared or by whom.

^360

Share a project from the command line

partial
  1. ^361

    See who can access a project

    partial
    ace project access <folder|owner/name>

    One line per person and how they see it (iamnbutler their folder, reads it on GitHub).

    17 Pair study, Canary 0.0.53.88: a teammate's folder project can't be named (b-sandbox is neither a project, a folder here, nor a GitHub owner/name), and samechocolixir/b-sandbox is looked up on GitHub and lists everyone, owner included, as no access.

  2. ^362

    Share with the team or a person

    tested
    ace project share <project> team|<github login>

    The team can now see every channel in it… and any created later.

    18 Without a directory it fails with Join a team directory to share projects.; an unknown login says No one on the team is rivera yet; their Ace must be running.

  3. ^363

    Unshare

    tested
    ace project unshare <project> team|<github login>
^365

Set where clones go

visual
  1. ^366

    Change the projects folder

    tested
    Settings → General → Projects folder → Save

    Clone from URL then suggests <folder>/<name>: setting /tmp/ace-96/proj made Spoon-Knife default to /tmp/ace-96/proj/Spoon-Knife.