Skip to content

CLI Reference

Mach can be used entirely from the command line. Run mach with no arguments to launch the TUI, or use subcommands to manage todos, workspaces, and projects directly.

Add a new todo. Alias: a

Terminal window
mach add "Buy groceries"
mach add --some-day "Learn piano"
mach add -w myworkspace "Team meeting"
mach add -p myproject "Fix bug"
FlagDescription
-s, --some-dayAdd to backlog instead of today
-w, --workspaceAssign to workspace (name or UUID)
-p, --projectAssign to project (name or UUID)

When using -p/--project, the todo automatically inherits the project’s workspace.

List todos. Alias: l

Terminal window
mach list # today's tasks
mach list --some-day # backlog items
mach list --done # completed items
mach list -i # include id column
FlagDescription
-s, --some-dayList backlog items
-d, --doneInclude completed todos
-i, --idShow UUID column

Mark a todo as done. Alias: d

Terminal window
mach done "Buy groceries"
mach done 550e8400-e29b-41d4-a716-446655440000

The reference can be a todo title or UUID. If multiple todos match the title, you’ll be prompted to use the UUID instead (run mach list -i to see UUIDs).

Reopen a completed todo (set status back to pending). Alias: r

Terminal window
mach reopen "Buy groceries"

Update a todo’s properties. Alias: u

Terminal window
mach update "Buy groceries" --title "Buy organic groceries"
mach update "Fix bug" --day 2025-01-15
mach update "Fix bug" --day someday
mach update "Meeting" --notes "Discuss Q1 roadmap"
mach update "Task" -w myworkspace -p myproject
FlagDescription
-t, --titleNew title
-d, --dayNew date (YYYY-MM-DD) or “none”/“someday”
-n, --notesNew notes
-w, --workspaceAssign to workspace (name or UUID)
-p, --projectAssign to project (name or UUID)

Delete a todo. Alias: rm

Terminal window
mach delete "Buy groceries"
mach delete 550e8400-e29b-41d4-a716-446655440000

Workspaces provide top-level organization for grouping related projects and todos.

Create a new workspace. Alias: w c

Terminal window
mach workspaces create "Personal"
mach w c "Work"

List all workspaces with statistics. Alias: w l

Terminal window
mach workspaces list
mach w l -i # include id column
FlagDescription
-i, --idShow UUID column

Output shows: name, project count, todo count, completed, remaining, created date, updated date.

Update a workspace. Alias: w u

Terminal window
mach workspaces update "Personal" --name "Personal Life"
FlagDescription
-n, --nameNew name

Projects belong to a workspace and group related todos together.

Create a new project. Alias: p c

Terminal window
mach projects create -w "Work" "Q1 Goals"
mach p c -w Work --permanent "Daily Standup"
FlagDescription
-w, --workspaceWorkspace name or UUID (required)
-p, --permanentSet status to permanent instead of pending

List projects. Alias: p l

Terminal window
mach projects list
mach p l -w Work # filter by workspace
mach p l -i # include id column
FlagDescription
-w, --workspaceFilter by workspace
-i, --idShow UUID column

Output shows: name, status, todo count, completed, remaining, created date, updated date.

Update a project. Alias: p u

Terminal window
mach projects update "Q1 Goals" --name "Q1 OKRs"
mach projects update "Q1 Goals" --status done
FlagDescription
-n, --nameNew name
-s, --statusNew status: pending, done, or permanent

Mark a project as done. Alias: p d

Terminal window
mach projects done "Q1 Goals"

Reopen a project (set status to pending). Alias: p r

Terminal window
mach projects reopen "Q1 Goals"

Commands that accept a reference (like done, update, delete) can use either:

  • Title/Name: Matches by the todo/workspace/project title or name
  • UUID: Matches by the unique identifier

If multiple items match a title, you’ll get an error asking you to use the UUID. Run the corresponding list command with -i to see UUIDs.