{
  "name": "watson",
  "description": "A wonderful CLI to track your time",
  "subcommands": [
    {
      "name": "add",
      "description": "Add time to a project with tag(s) that was not tracked live",
      "options": [
        {
          "names": [
            "--from",
            "-f"
          ],
          "description": "Date and time of start of tracked activity",
          "takes_arg": true,
          "arg": {
            "name": "DATETIME",
            "description": "The start time. Ex: 2022-03-04 12:00:00"
          }
        },
        {
          "names": [
            "--to",
            "-t"
          ],
          "description": "Date and time of end of tracked activity",
          "takes_arg": true,
          "arg": {
            "name": "DATETIME",
            "description": "The start time. Ex: 2022-03-04 12:00:00"
          }
        },
        {
          "names": [
            "--confirm-new-project",
            "-c"
          ],
          "description": "Confirm creation of new tag"
        }
      ]
    },
    {
      "name": "aggregate",
      "description": "Display a report of the time spent on each project aggregated by day",
      "options": [
        {
          "names": [
            "--current",
            "-c"
          ],
          "description": "Include currently running frame in report"
        },
        {
          "names": [
            "--no-current",
            "-C"
          ],
          "description": "Don't include currently running frame in report"
        },
        {
          "names": [
            "--from",
            "-f"
          ],
          "description": "The date from when the reports should start. Defaults to seven days ago",
          "takes_arg": true,
          "arg": {
            "name": "DATETIME",
            "description": "The start time. Ex: 2022-03-04 12:00:00"
          }
        },
        {
          "names": [
            "--to",
            "-t"
          ],
          "description": "The date at which the report should stop (inclusive). Defaults to tomorrow",
          "takes_arg": true,
          "arg": {
            "name": "DATETIME",
            "description": "The start time. Ex: 2022-03-04 12:00:00"
          }
        },
        {
          "names": [
            "--project",
            "-p"
          ],
          "description": "Reports activity only for the given project. You can add other projects by using this option several times",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "--tag",
            "-T"
          ],
          "description": "Reports activity only for frames containing the given tag. You can add several tags by using this option multiple times",
          "takes_arg": true,
          "arg": {
            "name": "TAG"
          }
        },
        {
          "names": [
            "--json",
            "-j"
          ],
          "description": "Format output in JSON instead of plain text"
        },
        {
          "names": [
            "--csv",
            "-s"
          ],
          "description": "Format output in CSV instead of plain text"
        },
        {
          "names": [
            "--pager",
            "-g"
          ],
          "description": "View output through a pager"
        },
        {
          "names": [
            "--no-pager",
            "-G"
          ],
          "description": "Don't view output through a pager"
        }
      ]
    },
    {
      "name": "cancel",
      "description": "Cancel the last call to the start command. The time will not be recorded"
    },
    {
      "name": "config",
      "description": "Get and set configuration options",
      "options": [
        {
          "names": [
            "--edit",
            "-e"
          ],
          "description": "Edit the configuration file with an editor"
        }
      ],
      "args": [
        {
          "name": "SECTION.OPTION",
          "suggestions": [
            "backend.url",
            "backend.token",
            "options.confirm_new_project",
            "options.confirm_new_tag",
            "options.date_format",
            "options.log_current",
            "options.pager",
            "options.report_current",
            "options.reverse_log",
            "options.stop_on_start",
            "options.stop_on_restart",
            "options.time_format",
            "options.week_start"
          ]
        },
        {
          "name": "VALUE"
        }
      ]
    },
    {
      "name": "edit",
      "description": "Edit a frame",
      "options": [
        {
          "names": [
            "--confirm-new-project",
            "-c"
          ],
          "description": "Confirm addition of new project"
        },
        {
          "names": [
            "--confirm-new-tag",
            "-b"
          ],
          "description": "Confirm creation of new tag"
        }
      ],
      "args": [
        {
          "name": "FRAME ID"
        }
      ]
    },
    {
      "name": "frames",
      "description": "Display the list of all frame IDs"
    },
    {
      "name": "help",
      "description": "Display help information",
      "args": [
        {
          "name": "COMMAND"
        }
      ]
    },
    {
      "name": "log",
      "description": "Display each recorded session during the given timespan",
      "options": [
        {
          "names": [
            "--current",
            "-c"
          ],
          "description": "Include currently running frame in report"
        },
        {
          "names": [
            "--no-current",
            "-C"
          ],
          "description": "Don't include currently running frame in report"
        },
        {
          "names": [
            "--reverse",
            "-r"
          ],
          "description": "Reverse the order of the days in output"
        },
        {
          "names": [
            "--no-reverse",
            "-R"
          ],
          "description": "Don't Reverse the order of the days in output"
        },
        {
          "names": [
            "--from",
            "-f"
          ],
          "description": "The date from when the log should start. Defaults to seven days ago",
          "takes_arg": true,
          "arg": {
            "name": "DATETIME"
          }
        },
        {
          "names": [
            "--to",
            "-t"
          ],
          "description": "The date at which the log should stop (inclusive). Defaults to tomorrow",
          "takes_arg": true,
          "arg": {
            "name": "DATETIME"
          }
        },
        {
          "names": [
            "--year",
            "-y"
          ],
          "description": "Reports activity for the current year"
        },
        {
          "names": [
            "--month",
            "-m"
          ],
          "description": "Reports activity for the current month"
        },
        {
          "names": [
            "--luna",
            "-l"
          ],
          "description": "Reports activity for the current moon cycle"
        },
        {
          "names": [
            "--week",
            "-w"
          ],
          "description": "Reports activity for the current week"
        },
        {
          "names": [
            "--day",
            "-d"
          ],
          "description": "Reports activity for the current day"
        },
        {
          "names": [
            "--all",
            "-a"
          ],
          "description": "Reports all activities"
        },
        {
          "names": [
            "--project",
            "-p"
          ],
          "description": "Logs activity only for the given project. You can add other projects by using this option several times",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT",
            "is_variadic": true
          }
        },
        {
          "names": [
            "--tag",
            "-T"
          ],
          "description": "Logs activity only for frames containing the given tag. You can add several tags by using this option multiple times",
          "takes_arg": true,
          "arg": {
            "name": "TAG",
            "is_variadic": true
          }
        },
        {
          "names": [
            "--ignore-project"
          ],
          "description": "Logs activity for all projects but the given ones. You can ignore several projects by using the option multiple times. Any given project will be ignored",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT",
            "is_variadic": true
          }
        },
        {
          "names": [
            "--ignore-tag"
          ],
          "description": "Logs activity for all tags but the given ones. You can ignore several tags by using the option multiple times. Any given tag will be ignored",
          "takes_arg": true,
          "arg": {
            "name": "TAG",
            "is_variadic": true
          }
        },
        {
          "names": [
            "--json",
            "-j"
          ],
          "description": "Format output in JSON instead of plain text"
        },
        {
          "names": [
            "--csv",
            "-s"
          ],
          "description": "Format output in CSV instead of plain text"
        },
        {
          "names": [
            "--pager",
            "-g"
          ],
          "description": "View output through a pager"
        },
        {
          "names": [
            "--no-pager",
            "-G"
          ],
          "description": "Don't view output through a pager"
        }
      ]
    },
    {
      "name": "merge",
      "description": "Perform a merge of the existing frames with a conflicting frames file.  When storing the frames on a file hosting service, there is the possibility that the frame file goes out-of-sync due to one or m",
      "options": [
        {
          "names": [
            "-f",
            "--force"
          ],
          "description": "If specified, then the merge will automatically be performed"
        }
      ],
      "args": [
        {
          "name": "FRAMES_WITH_CONFLICT"
        }
      ]
    },
    {
      "name": "projects",
      "description": "Display the list of all the existing projects"
    },
    {
      "name": "remove",
      "description": "Remove a frame. You can specify the frame either by id or by position (ex: -1 for the last frame)",
      "options": [
        {
          "names": [
            "-f",
            "--force"
          ],
          "description": "Don’t ask for confirmation"
        }
      ],
      "args": [
        {
          "name": "ID"
        }
      ]
    },
    {
      "name": "rename",
      "description": "Rename a project or tag",
      "args": [
        {
          "name": "type",
          "description": "Project or tag",
          "suggestions": [
            "project",
            "tag"
          ]
        },
        {
          "name": "OLD_NAME"
        },
        {
          "name": "NEW_NAME"
        }
      ]
    },
    {
      "name": "report",
      "description": "Display a report of the time spent on each project",
      "options": [
        {
          "names": [
            "--current",
            "-c"
          ],
          "description": "Include currently running frame in report"
        },
        {
          "names": [
            "--no-current",
            "-C"
          ],
          "description": "Don't include currently running frame in report"
        },
        {
          "names": [
            "--from",
            "-f"
          ],
          "description": "The date from when the report should start. Defaults to seven days ago",
          "takes_arg": true,
          "arg": {
            "name": "DATETIME"
          }
        },
        {
          "names": [
            "--to",
            "-t"
          ],
          "description": "The date at which the report should stop (inclusive). Defaults to tomorrow",
          "takes_arg": true,
          "arg": {
            "name": "DATETIME"
          }
        },
        {
          "names": [
            "--year",
            "-y"
          ],
          "description": "Reports activity for the current year"
        },
        {
          "names": [
            "--month",
            "-m"
          ],
          "description": "Reports activity for the current month"
        },
        {
          "names": [
            "--luna",
            "-l"
          ],
          "description": "Reports activity for the current moon cycle"
        },
        {
          "names": [
            "--week",
            "-w"
          ],
          "description": "Reports activity for the current week"
        },
        {
          "names": [
            "--day",
            "-d"
          ],
          "description": "Reports activity for the current day"
        },
        {
          "names": [
            "--project",
            "-p"
          ],
          "description": "Reports activity only for the given project. You can add other projects by using this option several times",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "--tag",
            "-T"
          ],
          "description": "Reports activity only for frames containing the given tag. You can add several tags by using this option multiple times",
          "takes_arg": true,
          "arg": {
            "name": "TAG"
          }
        },
        {
          "names": [
            "--ignore-project"
          ],
          "description": "Reports activity for all projects but the given ones. You can ignore several projects by using the option multiple times. Any given project will be ignored",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "--ignore-tag"
          ],
          "description": "Reports activity for all tags but the given ones. You can ignore several tags by using the option multiple times. Any given tag will be ignored",
          "takes_arg": true,
          "arg": {
            "name": "TAG"
          }
        },
        {
          "names": [
            "--json",
            "-j"
          ],
          "description": "Format output in JSON instead of plain text"
        },
        {
          "names": [
            "--csv",
            "-s"
          ],
          "description": "Format output in CSV instead of plain text"
        },
        {
          "names": [
            "--pager",
            "-g"
          ],
          "description": "View output through a pager"
        },
        {
          "names": [
            "--no-pager",
            "-G"
          ],
          "description": "Don't view output through a pager"
        }
      ]
    },
    {
      "name": "restart",
      "description": "Restart monitoring time for a previously stopped project",
      "options": [
        {
          "names": [
            "--at"
          ],
          "description": "Start frame at this time. Must be in (YYYY-MM-DDT)?HH:MM(:SS)? format",
          "takes_arg": true,
          "arg": {
            "name": "DATETIME"
          }
        },
        {
          "names": [
            "--stop",
            "-s"
          ],
          "description": "Stop an already running project"
        },
        {
          "names": [
            "--no-stop",
            "-S"
          ],
          "description": "Don't stop an already running project"
        }
      ],
      "args": [
        {
          "name": "FRAME"
        }
      ]
    },
    {
      "name": "start",
      "description": "Start monitoring time for the given project. You can add tags indicating more specifically what you are working on with +tag",
      "options": [
        {
          "names": [
            "--at"
          ],
          "description": "Start frame at this time. Must be in (YYYY-MM-DDT)?HH:MM(:SS)? format",
          "takes_arg": true,
          "arg": {
            "name": "DATETIME"
          }
        },
        {
          "names": [
            "--gap",
            "-g"
          ],
          "description": "Leave gap between end time of previous project and start time of the current"
        },
        {
          "names": [
            "--no-gap",
            "-G"
          ],
          "description": "Don't leave gap between end time of previous project and start time of the current"
        },
        {
          "names": [
            "--confirm-new-project",
            "-c"
          ],
          "description": "Confirm addition of new project"
        },
        {
          "names": [
            "--confirm-new-tag",
            "-b"
          ],
          "description": "Confirm creation of new tag"
        }
      ],
      "args": [
        {
          "name": "ARGS",
          "is_variadic": true
        }
      ]
    },
    {
      "name": "status",
      "description": "Display when the current project was started and the time spent since",
      "options": [
        {
          "names": [
            "--project",
            "-p"
          ],
          "description": "Only output project"
        },
        {
          "names": [
            "--tags",
            "-t"
          ],
          "description": "Only show tags"
        },
        {
          "names": [
            "--elapsed",
            "-e"
          ],
          "description": "Only show time elapsed"
        }
      ]
    },
    {
      "name": "stop",
      "description": "Stop monitoring time for the current project",
      "options": [
        {
          "names": [
            "--at"
          ],
          "description": "Stop frame at this time. Must be in (YYYY-MM-DDT)?HH:MM(:SS)? format",
          "takes_arg": true,
          "arg": {
            "name": "DATETIME"
          }
        }
      ]
    },
    {
      "name": "sync",
      "description": "Get the frames from the server and push the new ones"
    },
    {
      "name": "tags",
      "description": "Display the list of all the tags"
    }
  ],
  "options": [
    {
      "names": [
        "--help"
      ],
      "description": "Show help for watson"
    },
    {
      "names": [
        "--version"
      ],
      "description": "Show the version for watson"
    },
    {
      "names": [
        "--color"
      ],
      "description": "Color output"
    },
    {
      "names": [
        "--no-color"
      ],
      "description": "No color output"
    }
  ]
}
