crewship project
Projects are the unit of delivery — a named bundle of missions, issues, and crews working toward a target date. They carry status, priority, and health independently, so a planning dashboard can show “in progress / at risk / 60% complete” without reading every issue. Aliases:projects. Defined in cmd/crewship/cmd_project.go.
Every subcommand requires
crewship login plus an active workspace. The
PATCH/DELETE surface mirrors internal/api/project_handler.go — fields you
don’t set with Changed() aren’t sent, so partial updates won’t clobber
unrelated columns.Subcommands
Flags
project create
project update
Every flag is opt-in — only fields the user actually set hit the wire. Pass an explicit empty string to clear a nullable column.
project delete
Examples
List
Create
Get details
Update
--description "" removes the description, while omitting the flag leaves it untouched.
Breakdown stats
--format json returns the raw shape for piping into jq.
Delete
Milestones
Each project carries an ordered list of milestones (named delivery checkpoints with an optional target date). Backed by/api/v1/projects/{id}/milestones for list/create and /api/v1/milestones/{id} for update/delete (see internal/api/milestone_handler.go). Alias on the parent verb: milestones.
update/delete take the milestone id (not the project id) because milestones are keyed independently once created.
Common errors
--name is required—createwas called without a name.no fields to update — pass at least one of --name/--status/--priority/--health/--lead-id/--lead-type/--start-date/--target-date/--icon/--color/--description—updateneeds at least one field.workspace_id required— no active workspace; runcrewship workspace use <slug>first.
See also
crewship mission— missions roll up into projects.crewship issue— issues live inside projects (or float unlinked).crewship label— the labels referenced in the breakdown.- Issues API — covers project endpoints (
GET /api/v1/projects).