CLI Reference
The Hypertask CLI (hypertask) lets you manage tasks, projects, comments, and notifications directly from your terminal. It is the fastest way to interact with Hypertask programmatically and is the recommended interface for AI agents like Claude Code.
Installation
Section titled “Installation”npm install -g @hypertask/hypertask_cliVerify the installation:
hypertask --versionAuthentication
Section titled “Authentication”-
Login via browser (recommended):
Terminal window hypertask loginThis opens your browser to authenticate and saves the token locally.
-
Login with a token (for CI/headless environments):
Terminal window hypertask login --token <your-jwt-token> -
Check your auth status:
Terminal window hypertask auth:status -
Logout:
Terminal window hypertask logout
Global Options
Section titled “Global Options”These flags can be used with any command:
| Flag | Description |
|---|---|
--token <jwt> | Override the saved JWT token for this invocation |
--api-url <url> | Override the API URL (default: https://app.hypertask.ai/api) |
--json | Output raw JSON instead of formatted text |
-V, --version | Print the CLI version |
-h, --help | Show help for any command |
# Get JSON output for scriptinghypertask task list --project 15 --json
# Use a different token for a one-off commandhypertask task list --project 15 --token eyJhbG...Capability Discovery
Section titled “Capability Discovery”capabilities / commands
Section titled “capabilities / commands”Dump the full CLI command and option tree as machine-readable JSON. This is the fastest way for an agent or script to enumerate every command, flag, and description in one call — no recursive --help grepping needed.
hypertask capabilities --jsoncommands is an alias for capabilities; both are identical.
| Flag | Description |
|---|---|
--json | Output as JSON (recommended for programmatic use) |
Sample output (abbreviated):
[ { "name": "task create", "description": "Create a new task", "options": [ { "flags": "--project <id>", "description": "Project ID (required)" }, { "flags": "--title <text>", "description": "Task title (required)" }, { "flags": "--attach <path-or-url>", "description": "Attach a local file or URL (repeatable)" } ] }, { "name": "task update", "description": "Update an existing task", "options": [ { "flags": "--attach <path>", "description": "Attach a local file (repeatable)" } ] }, { "name": "comment add", "description": "Add a comment to a task", "options": [ { "flags": "--attach <path-or-url>", "description": "Attach a local file or URL to the comment (repeatable)" } ] }]task list
Section titled “task list”List tasks with filters.
hypertask task list --project 15 --section "Doing" --assigned-to me| Flag | Description | Default |
|---|---|---|
--project <id> | Filter by project ID | — |
--section <name> | Filter by section name | — |
--assigned-to <value> | Filter by assignee: me, unassigned, or a user ID | — |
--created-by <id> | Filter by creator user ID (numeric) | — |
--priority <list> | Comma-separated priorities: urgent, high, medium, low | — |
--sort-by <field> | Sort results by createdAt, updatedAt, or dueDate | — |
--sort-order <asc|desc> | Sort direction — use together with --sort-by | — |
--limit <n> | Results per page | 10 |
--offset <n> | Pagination offset | 0 |
# High-priority tasks assigned to youhypertask task list --project 15 --assigned-to me --priority urgent,high
# Most recently updated tasks firsthypertask task list --project 15 --sort-by updatedAt --sort-order desc
# Page through resultshypertask task list --project 15 --limit 20 --offset 20task get / task show
Section titled “task get / task show”Get full details of a single task by its ticket number or numeric task ID. Response includes labels, parent_id for subtasks, and the task URL.
hypertask task get HTPR-2992hypertask task show HTPR-2992 # alias for task gethypertask task get 1234| Argument | Description |
|---|---|
<ticket> | Ticket identifier (e.g., HTPR-2992) or numeric task ID |
task tree
Section titled “task tree”Show the full parent/subtask hierarchy for a task. Displays the family tree of a task including all parents and children.
hypertask task tree --ticket HTPR-2992| Flag | Description | Default |
|---|---|---|
--ticket <ticket> | Ticket number (e.g., HTPR-2992) | — |
--task-id <id> | Numeric task ID | — |
--depth <n> | Max levels deep to show | Full tree |
# Show subtask tree by ticket numberhypertask task tree --ticket HTPR-2992
# Show subtask tree by task ID, limited to 2 levels deephypertask task tree --task-id 1234 --depth 2task create
Section titled “task create”Create a new task.
hypertask task create \ --project 15 \ --title "Implement dark mode toggle" \ --description "<p>Add a toggle switch in the settings panel to switch between light and dark themes.</p>" \ --priority high \ --labels "frontend,UX" \ --estimate 3 \ --due 2026-04-01| Flag | Description |
|---|---|
--project <id> | Project ID (required) |
--title <text> | Task title (required) |
--description <text> | Task description (HTML format; plain text is auto-wrapped in <p> tags) |
--priority <p> | Priority: urgent, high, medium, low, none |
--estimate <n> | Story points |
--labels <list> | Comma-separated label names or IDs (e.g., "CLI,BUG") |
--due <date> | Due date in ISO 8601 format (e.g., 2026-04-01) |
--parent-task <id> | Parent task ID — creates this task as a subtask |
--section <id|name> | Section ID or name (e.g., 4005 or "Doing") |
--assignee <list> | Comma-separated user IDs to assign (e.g., "42" or "42,99") |
--attach <path-or-url> | Attach a local file or URL (repeatable for multiple attachments) |
# Create a subtask under an existing taskhypertask task create \ --project 15 \ --title "Design the toggle component" \ --parent-task 1234 \ --priority medium
# Create a task with file attachmentshypertask task create \ --project 15 \ --title "Review mockups" \ --attach ./mockup.png \ --attach https://example.com/spec.pdftask update
Section titled “task update”Update an existing task’s properties.
hypertask task update HTPR-2992 --priority urgent --due 2026-03-25| Flag | Description |
|---|---|
--title <text> | New title |
--description <text> | New description (plain text or HTML; plain text is auto-wrapped in <p> tags) |
--priority <p> | New priority |
--estimate <n> | New story points |
--due <date> | New due date (ISO 8601) |
--status <s> | Lifecycle status: Normal, Archive, or Deleted |
--section <id|name> | Section (board column): ID or name like "Doing", "Done" |
--project <id> | Project ID (required when using --section with a name across projects) |
--assignee <list> | Comma-separated user IDs to assign (e.g., "42" or "42,99") |
--labels <list> | Comma-separated label names or IDs |
--attach <path> | Attach a local file (repeatable) |
# Move a task to the "Doing" sectionhypertask task update HTPR-2992 --section "Doing"
# Archive a completed taskhypertask task update HTPR-2992 --status Archive
# Update labelshypertask task update HTPR-2992 --labels "CLI,reviewed"task assign
Section titled “task assign”Assign a user to a task.
hypertask task assign HTPR-2992 --user 42| Flag | Description |
|---|---|
--user <id> | User ID to assign |
task move
Section titled “task move”Move a task to a different section within the same board, or to a different project entirely.
# Move within the same boardhypertask task move HTPR-2992 --section "Done"
# Move to a different projecthypertask task move HTPR-2992 --to 20 --to-section 5010| Flag | Description |
|---|---|
--section <name> | Destination section name within the same board (e.g., "Doing", "Done") |
--to <id> | Target project ID — move to a different project |
--to-section <id> | Target section ID in the destination project (use with --to) |
task move-board
Section titled “task move-board”Move a task to a different project/board entirely. Alias: task move-project.
hypertask task move-board HTPR-2992 --target-project 20 --target-section 5010| Flag | Description |
|---|---|
--target-project <id> | Target project ID |
--target-section <id> | Target section ID |
Projects
Section titled “Projects”project list
Section titled “project list”List all projects you have access to.
hypertask project list| Flag | Description | Default |
|---|---|---|
--limit <n> | Results per page | 10 |
--offset <n> | Pagination offset | 0 |
project sections
Section titled “project sections”List all sections (columns) in a project.
hypertask project sections 15| Argument | Description |
|---|---|
<project-id> | The project ID |
project members
Section titled “project members”List all members of a project.
hypertask project members 15| Argument | Description |
|---|---|
<project-id> | The project ID |
project invite
Section titled “project invite”Invite a user to a project by email address. The invited user receives an email invitation and gains access once they accept.
hypertask project invite 15 --email teammate@example.com| Argument | Description |
|---|---|
<project-id> | The project ID (required) |
| Flag | Description |
|---|---|
--email <address> | Email address of the person to invite (required) |
# Invite a new team member to project 15hypertask project invite 15 --email alice@example.com
# Confirm current members after invitinghypertask project members 15project labels
Section titled “project labels”List available labels for a project.
hypertask project labels 15| Argument | Description |
|---|---|
<project-id> | The project ID |
project section create
Section titled “project section create”Create a new section (column) on a board.
hypertask project section create --project 15 --title "In Review" --after 4005| Flag | Description |
|---|---|
--project <id> | Project ID (required) |
--title <text> | Section title (required) |
--after <section-id> | Insert after this existing section (optional) |
project label create
Section titled “project label create”Create a new label in a project.
hypertask project label create --project 15 --name "CLI"| Flag | Description |
|---|---|
--project <id> | Project ID (required) |
--name <text> | Label name (required) |
project create-board
Section titled “project create-board”Create a whole new board from a JSON manifest — sections, labels, and starter tasks in one call. Uses the same manifest shape as the hypertask_create_board MCP tool.
hypertask project create-board --file board.jsonExample board.json:
{ "team_id": 3, "title": "Website Redesign", "sections": [ { "title": "Backlog" }, { "title": "Doing" }, { "title": "Done" } ], "labels": [ { "name": "Design" }, { "name": "Frontend" } ], "tasks": [ { "title": "Wireframe the homepage", "section": "Backlog", "labels": ["Design"], "priority": "high" } ]}| Flag | Description |
|---|---|
--file <path> | Path to a JSON manifest (required) |
Search
Section titled “Search”search
Section titled “search”Search for tasks by keyword.
hypertask search "dark mode" --project 15 --limit 5| Argument / Flag | Description | Default |
|---|---|---|
<query> | Search query (required) | — |
--project <id> | Restrict search to a project | — |
--limit <n> | Maximum results | 10 |
Comments
Section titled “Comments”comment list
Section titled “comment list”List all comments on a task.
hypertask comment list HTPR-2992| Argument | Description |
|---|---|
<ticket> | Ticket identifier |
comment add
Section titled “comment add”Add a comment to a task.
hypertask comment add HTPR-2992 --text "<p>Looks good, merging now.</p>"| Flag | Description |
|---|---|
--text <text> | Comment text (HTML format) |
--attach <path-or-url> | Attach a local file or URL to the comment (repeatable for multiple attachments) |
# Attach a file alongside a commenthypertask comment add HTPR-2992 \ --text "<p>Screenshot of the issue attached.</p>" \ --attach ./screenshot.png
# Attach a remote URLhypertask comment add HTPR-2992 \ --text "<p>See the Loom recording for full context.</p>" \ --attach https://www.loom.com/share/abc123comment update
Section titled “comment update”Update an existing comment.
hypertask comment update 8450 --text "<p>Updated: shipped in v2.1.0</p>"| Argument / Flag | Description |
|---|---|
<id> | Comment ID |
--text <text> | New comment text (HTML format) |
comment delete
Section titled “comment delete”Delete a comment.
hypertask comment delete 8450| Argument | Description |
|---|---|
<id> | Comment ID |
Inbox (Notifications)
Section titled “Inbox (Notifications)”inbox list
Section titled “inbox list”List your unread notifications.
hypertask inbox listinbox archive
Section titled “inbox archive”Archive one or more notifications by ID.
hypertask inbox archive 101 102 103| Argument | Description |
|---|---|
<ids...> | One or more notification IDs to archive |
Context
Section titled “Context”context
Section titled “context”Retrieve your user context, including projects and permissions.
hypertask contextThis is useful to verify your identity, see which projects you belong to, and check your role/permissions.
Utility Commands
Section titled “Utility Commands”| Command | Description |
|---|---|
hypertask capabilities | Dump the full command + option tree as JSON (alias: commands) |
hypertask update | Update the CLI to the latest version |
hypertask auth:status | Check current authentication status |
hypertask auth:login --token <jwt> | Save a JWT token directly |
hypertask auth:logout | Clear saved authentication |
hypertask logout | Logout from Hypertask |
Common Workflows
Section titled “Common Workflows”Pick up a task from your inbox
Section titled “Pick up a task from your inbox”# 1. Check notificationshypertask inbox list
# 2. Read the task detailshypertask task get HTPR-2992# or use the aliashypertask task show HTPR-2992
# 3. Move it to "Doing"hypertask task move HTPR-2992 --section "Doing"
# 4. Archive the notificationhypertask inbox archive 101Create and assign a task
Section titled “Create and assign a task”# 1. Find the project and its membershypertask project listhypertask project members 15
# 2. Create the taskhypertask task create \ --project 15 \ --title "Fix login timeout issue" \ --description "<p>Users are getting logged out after 5 minutes of inactivity. Expected session length is 24 hours.</p>" \ --priority urgent \ --labels "bug,auth"
# 3. Assign it (use the user ID from project members)hypertask task assign HTPR-3050 --user 42Invite a team member to a project
Section titled “Invite a team member to a project”# 1. Invite them by emailhypertask project invite 15 --email newmember@example.com
# 2. Confirm they appear in the member list (once they accept)hypertask project members 15Triage tasks by priority
Section titled “Triage tasks by priority”# List all urgent and high-priority taskshypertask task list --project 15 --priority urgent,high
# Review unassigned taskshypertask task list --project 15 --assigned-to unassigned
# Search for something specifichypertask search "payment" --project 15Complete a task
Section titled “Complete a task”# 1. Add a final comment (plain @mention works)hypertask comment add HTPR-2992 --text "<p>Deployed to production. Verified working. @Alice please close this out.</p>"
# 2. Move to Donehypertask task move HTPR-2992 --section "Done"Attach files to a task or comment
Section titled “Attach files to a task or comment”# Attach files when creating a taskhypertask task create \ --project 15 \ --title "Review design assets" \ --attach ./wireframe.pdf \ --attach ./mockup.png
# Attach a file to an existing taskhypertask task update HTPR-2992 --attach ./final-spec.pdf
# Attach a file or URL alongside a commenthypertask comment add HTPR-2992 \ --text "<p>Added the updated spec.</p>" \ --attach ./updated-spec.pdfDiscover all CLI capabilities (for agents)
Section titled “Discover all CLI capabilities (for agents)”# Dump the full command + option tree as JSONhypertask capabilities --json
# Pipe to jq to find every command that supports --attachhypertask capabilities --json | jq '[.[] | select(.options[]?.flags | contains("--attach"))]'Use JSON output for scripting
Section titled “Use JSON output for scripting”# Pipe task data to jqhypertask task list --project 15 --json | jq '.[].title'
# Get a task's priorityhypertask task get HTPR-2992 --json | jq '.priority'