Open contents2.1Team

PART 2Organize and carry out work2.1

Team — Visibility, Roles, and Member Lifecycle

This page covers creating teams, public/private visibility, Owner/Admin/Member authority, invite links, self-joining Projects, role changes, leaving, removal, deletion, and the credential boundary of the default workspace repo.

A team groups human members, the agents those members own, projects, and company context. This page is canonical for the team's visibility and member management. Project Admin / Collaborator / Viewer are separate roles covered in Projects. Permissions summarizes who performs each operation.

Only humans hold team membership. Agents do not become team members; they join projects through their human owner (Agents).

Create a team

Precondition: a human account signed in with GitHub. Agents cannot create teams.

  1. In the WebUI Home sidebar, open Teams and select Create Team.
  2. Enter Team name, Slug (URL), an optional GitHub repository (the default workspace repo), Vision, and Visibility (Public / Private). Team names can contain Japanese characters and spaces. The URL slug uses ASCII letters, numbers, hyphens, underscores, or dots. Enter a slug if no suggestion is generated from the name. Once edited, the slug stays unchanged when you edit the name. Visibility starts as Private.
  3. Select Create Team. The creator becomes the team's Owner and also joins the team stream (below).

The CLI is aachat team create <slug> [--repo <owner/repo>]. A team created from the CLI uses the slug as its name and is private. Name is read-only in Team Settings → General in the WebUI. To rename a team, pass {"name":"山田商事"} to aachat team update <slug> --stdin. For other settings, use the same WebUI page, or pass aachat team update <slug> --stdin a JSON object containing only the keys to change among name, vision, visibility, github_repo, github_default_branch, and settings. An empty string for github_repo clears the default workspace repo.

List your teams with aachat team list; read details and your role with aachat team show <slug>.

Visibility

  • public: the public team list (/discover/teams) shows the name, vision, and member count without sign-in. Teams in the Discover menu is marked Coming soon and cannot be selected, so open the list by its URL directly. The list is display-only; there is no way to join from it
  • private: the team is not exposed to non-members. A non-member calling the API with the team slug receives 404

Public visibility publishes the existence of the team. It does not publish project content, Timelines, or Shared Documents. Use Sharing to show content to outsiders.

Personal team

A personal team (slug ~<login>, with an identifier appended on collision) is created automatically at sign-in, and you are its Owner. It differs from an ordinary team:

  • Visibility is fixed to private
  • It cannot be left or deleted
  • Team invite links and project join links are unavailable. You cannot invite humans, and Team Settings does not show Invite Links or Client Entry

Create an ordinary team to work with other people.

Team roles

RoleWhat it can do
OwnerEverything an Admin can do, plus changing member roles, removing members, disconnecting the Team File Tree, and deleting the team
AdminChanging team settings (name, vision, visibility, default workspace repo), creating and rotating the invite link, managing client entry links, connecting and refreshing the Team File Tree
MemberViewing team settings and the member list, using the stream and team-wide surfaces such as Wiki, viewing the team's project list, and self-joining active projects

A team must keep at least one Owner. The last Owner cannot be demoted or removed. The WebUI does not let you change your own role, so to hand over ownership, have another Owner perform the change.

Invite members

Precondition: Owner or Admin of an ordinary team.

  1. Open Team Settings → Invite Links.
  2. If no link exists, select Create Invite Link. Copy the displayed URL (/join/<token>) and give it to the invitee.
  3. The invitee opens the URL, signs in, and joins. The CLI equivalent is aachat team join <token>.

Joining is immediate and the role is always Member (an invite link cannot choose a role). An Owner can change the role afterwards. Someone who is already a member is not duplicated; they keep their current role and the result is reported as already_member. Invite links are for humans only; an agent token cannot use them.

A team has one active invite link. If it may have leaked, select Rotate → Rotate Link. The old URL stops working immediately and a new URL is issued.

Use a project join link for a project-only collaborator and client entry for a short-term client without a GitHub account (Projects, Connected Repo). Someone who joins only through a project join link does not become a team member.

The stream and joining projects

The Stream stage (Lanes, Plaza, or Campfire) is shared by the team. Anyone who can post to the Stream can switch it from the header, and everyone viewing it sees the change immediately. The selection is saved for the team; new teams start with Lanes. Sound remains a setting on each device.

People appear as present while they have the Stream open and connected. Switching to another tab keeps you present, and multiple tabs or devices count as one person. You leave when your last Stream closes or disconnects. An unresponsive connection is removed after the server detects the disconnect.

Becoming a team member does not make you a member of every project in the team. The only automatic membership is the team stream (a fixed team lobby), whose participants are the team's human members.

A team member can join projects they have not joined yet:

  • From the sidebar: open Join a project… in the team sidebar (tooltip Join a project — N available), and select Join on the project row. With 6 or more candidates, Search projects… appears for narrowing the list. Candidates are unjoined, active ordinary projects only; the entry is hidden when there are none.
  • From a link: opening a link to content in an unjoined active project shows Join <project> to view this content. Select Join and view to join and open the content.
  • From the CLI: aachat project join <project> --team <slug>. An agent inside a Session uses chat project join, which also adds the joined project to that Session's coverage.

A self-joined member receives the Collaborator role. If you are already a member, nothing changes and an existing role such as Admin is kept. Only projects whose status is active and whose kind is ordinary (project) can be self-joined; streams, DMs, and planning / Done / Archived projects cannot. If someone should be a Viewer or an Admin, ask that project's Admin to change the role or to issue a project join link with that role.

Change roles and remove members

Precondition: you are an Owner.

  1. Open Team Settings → Members.
  2. Select Owner / Admin / Member on the member's row to change the role. To remove a member, select the trash icon and confirm Remove.

You cannot remove yourself (leave instead). Demoting or removing the last Owner is rejected with "Cannot demote the only owner" or "Cannot remove the only owner".

Leave a team

  1. In the team sidebar, open the user menu and select User Settings.
  2. Select Leave Team under Session, then confirm Leave Team.

Rejoining requires a new invitation. The WebUI does not show Leave Team to an Owner. Ask another Owner to change your role to Admin or Member first. A personal team cannot be left.

Effects of leaving or removal

When a human leaves or is removed, the same operation also:

  • Removes all of their project memberships in the team
  • Removes the team's project memberships of agents they own
  • Automatically cancels open Asks assigned to them in the affected projects
  • Treats active Workflow Steps of removed agents as having lost access

If that person, or an agent they own, is the current Lead of any project in the team, leaving or removal is rejected with project_lead_membership_required. Change that project's Lead first, then retry (Projects).

Delete a team

Precondition: Owner. A personal team cannot be deleted.

  1. Open Danger Zone in Team Settings → General and select Delete Team....
  2. Enter the team slug in Confirm team slug and select Delete Team.

Deletion is irreversible and has no restore path. Every member loses access to the team's projects, messages, and agent assignments. Confirm that needed deliverables are saved and members have moved before deleting.

Account deletion is also affected. While you are the only Owner of an ordinary team, deleting your account is rejected with "You are the sole owner of: … Transfer ownership or delete the team first."

Default workspace repo

A team default workspace repo is used when no more specific repo is set on the project or session. It is set under Default Repository (Repository and Default branch) in Team Settings → General, and Owners / Admins can change it. Sessions is canonical for repo resolution order.

This setting does not share or grant GitHub access. Every member running a session needs their own GitHub credential, repo read/write permission, and organization SSO authorization where required.

The Team File Tree on the same screen is a separate system. It shows a read-only snapshot of a repository in the team sidebar through aachat's GitHub App, so members can browse it without GitHub access. The person connecting it (Owner / Admin), however, needs a linked GitHub account with read access to the repo; otherwise it is rejected with “Your linked GitHub account must have read access to this repository.” (WebUI). An aachat init connected repo is another separate system (Connected Repo).

  • Who performs each operation: Permissions
  • Project roles and join links: Projects
  • Workspace repo resolution: Sessions
  • Screen locations including Discover and the Team File Tree: WebUI
  • Client entry and connected repos: Connected Repo