# VeloWork CLI

Manage your VeloWork tasks, checklists, workspaces, and daily productivity statistics directly from your terminal.

Features a fast, interactive shell environment with color-coded layouts, bulk task/subtask entry, and productivity visualizations.

---

## Installation

Install the package globally via npm:

```bash
npm install -g velowork-cli
```

---

## Authentication

Before running commands, authenticate the CLI with your VeloWork credentials:

```bash
velowork login
```

To view the active profile:

```bash
velowork whoami
```

To sign out:

```bash
velowork logout
```

---

## Workspace Management

VeloWork organizes your tasks into workspaces. You can view and switch between workspaces:

```bash
velowork workspace
```

---

## Tasks & Checklists Commands

You can interact with checklists and tasks using direct CLI commands:

- **List Checklists**:
  ```bash
  velowork checklists
  ```
- **List Tasks**:
  ```bash
  velowork tasks
  ```
- **View Checklist Details**:
  ```bash
  velowork checklist <checklist-id-prefix>
  ```
- **Mark Task Complete**:
  ```bash
  velowork complete <task-id-prefix>
  ```
- **Daily Dashboard**: View tasks scheduled or due today, daily statistics, and overdue tasks:
  ```bash
  velowork today
  ```
- **Productivity Heatmap**: View a calendar visualization of task completion count for any year:
  ```bash
  velowork heatmap [year]
  ```

---

## Interactive Terminal Shell

Run `velowork` with no arguments to launch the VeloWork Terminal Shell, an interactive folder-like environment for fast navigation and management:

```bash
velowork
```

### 1. Root Context (Checklist Folders)

When you launch the shell, you start at the root (`/`) context.

- `ls` - List all checklists with folder numbers.
- `create "<Name>"` - Create a new checklist.
- `cd <number>` or `cd <id>` - Enter a checklist folder.
- `heatmap [year]` - View task completion heatmap.
- `exit` or `quit` - Exit the interactive shell.

### 2. Checklist Context (Managing Tasks)

When you `cd` into a checklist folder, the context updates (e.g., `/Personal_List`).

- `ls` - List all tasks and subtasks.
- `add "<Name1>","<Name2>"` - Add one or more main tasks (separated by commas).
- `sub <id> "<Name1>","<Name2>"` - Add one or more subtasks under a parent task ID.
- `check <id>` - Mark a task or subtask as completed.
- `uncheck <id>` - Mark a task or subtask as incomplete.
- `rm <id>` - Permanently delete a task/subtask.
- `cd ..` - Return back to the root context.

---

## License

ISC License.
