You end up with a workspace your team can start work in: its members and leads added, its repositories linked with the right base branch and reporting their pull requests, its Jira key and Slack channel set, and a local workspace folder that crewkit work runs in.
You need:
- What every workspace guide needs — see Before you start. Each step names the role it takes.
- A folder holding a clone of each repository, e.g.
~/code/acme/apiand~/code/acme/web.
1. Create the workspace from your local folder
cd ~/code/acme
crewkit init --workspaceDeveloper or above. crewkit asks for the organization (when you belong to several) and the Workspace name (default: the folder's name), creates the workspace, lists the git repositories in child folders and asks Link these repositories to the workspace? Each one is linked with its origin's default branch as its base branch. It writes .crewkit/config.toml and ends with Workspace acme initialized. With --yes it takes every default without asking.
crewkit init --workspacealways creates a new workspace. The dashboard's New Project form (Kind Workspace) creates one too, but gives you no local folder forcrewkit work, so start from the CLI.
2. Add members and leads
Creating the workspace did not make you its member or lead, and until it has a lead only managers and above can manage it or start work in it. So this step comes first, by a manager or above (or, later, by an existing lead). If you are a developer, ask a manager to add you as its lead.
Open the workspace from Projects. In the Members card, choose a person in Choose a person, pick Member or Lead, and click Add. To promote someone later, change their role to Lead in their row. Invite people to the organization first — see Team.
3. Add member projects
On the same page, in the Member projects card, choose a repository project in Choose a project and click Add. Their repositories, skills and agents become available in the workspace. Leads, or managers and above.
4. Fix repositories if needed
Click Settings on the workspace page. The Repositories card lists every linked repository with its Base branch — the branch work is cut from and pull requests go into. Repositories from a member project show · via <project>.
- A clone
initskipped: click Add Repository, enter its Name (e.g.api) and Remote URL, and click Add Repository. - A wrong base branch (managers and above): click the pencil next to it, type the branch, and click Save.
5. Set the Jira key and the Slack channel
Still on Settings, under Project Details (leads, or managers and above):
- Jira project key — e.g.
CREW. Leave it empty to fall back to the member projects' keys. - Slack channel for work updates — the channel id, e.g.
C0123456789. Work items post there through the workspace's Slack agent, set up in step 8. Leave it empty to post nothing.
Click Save Changes.
6. Connect Jira
An admin or owner opens Integrations in the sidebar and, under Issue tracker, clicks Connect Jira:
- Site URL —
https://your-site.atlassian.net, with no path - Service account email
- API token — stored encrypted, never shown again
Click Connect. crewkit uses this account to search and create Tasks and Epics, and only reads card status after that — see Jira status. Without a connection you can still start work from a card key with a title (crewkit work start CREW-123 --title "…"), but not from a description.
7. Connect your code host
crewkit learns that a pull request opened, merged or closed only from your code host's webhooks; it never polls. Without them a work item stays In review after its pull request merges, Slack posts no merge, and someone has to run crewkit work close. An admin or owner sets them up for each repository.
The webhooks are matched through the crewkit project each repository belongs to: the member project for a repository marked · via <project> in Settings → Repositories, the workspace itself otherwise. A project links one repository, so of the repositories the workspace holds itself, only one can report; give each of the others its own member project.
GitHub:
- Open Integrations in the sidebar and, under Git providers, click Connect on the GitHub row, and authorize crewkit on GitHub.
- Open the project the repository belongs to, click Settings, and in the Repository card click Link Repository. Pick the repository and click Link Repository.
- Register the repository's webhook. The dashboard has no button for this yet, so call the API as an admin (see API overview):
POST /api/v1/<org>/projects/<project>/repositories/<repository>/webhook, where<repository>is the linked repository's id fromGET /api/v1/<org>/projects/<project>/repositories.
GitLab:
- Open Integrations and, under Git providers, click Connect GitLab to connect a top-level group.
- Under the GitLab group's row, click Link a project, pick the GitLab project and choose the crewkit project it belongs to. Linking registers the webhook; the row reads Receiving events once GitLab delivers.
8. Give the workspace a Slack agent
Work items post to the channel from step 5 through an active team agent of the workspace that has a Slack workspace ID. Without one, nothing is posted and nothing reports an error.
- An admin or owner opens Integrations and, under Messaging, clicks Connect Slack.
- A manager or above opens the workspace page, clicks Team Agents, then New team agent, and fills in its Slack handle and Slack workspace ID (e.g.
T0123456789). See Agent identities. Pausing or archiving the agent stops the posts.
9. Set up the folder on other machines
Each teammate needs a folder with clones of the same repositories, marked as this workspace. Because crewkit init --workspace would create a second workspace, copy .crewkit/config.toml from your workspace folder to the same place in theirs instead. It holds the organization's and workspace's ids and names, never a credential.
crewkit trusts the copy only if the workspace folder, its .crewkit folder and config.toml are all owned by the teammate who runs crewkit, and neither .crewkit nor config.toml is a symbolic link. Otherwise it ignores the file without saying so, and crewkit work reports not in a crewkit workspace directory. Copy it as that teammate, not with sudo.
If it stops
Workspace already initialized— this folder already belongs to a workspace. Delete.crewkit/config.tomlonly if you really want a new one.Skipped <folder> (no git remote)— that clone has noorigin. Add one and link it with Add Repository.not in a crewkit workspace directory— runcrewkit workfrom the workspace folder or below it.Agent settings: held back …— see agent settings.