TaskP3 CLI

CLI Documentation

Manage your tasks from the terminal for human-friendly and automated workflows. Optimized for models and humans alike.
Install with Homebrew
brew tap raidon-inc/tap
brew install p3
Install with npm
npm install -g @taskp3/cli
Quickstart
Sign in in seconds

Authenticate once and keep working in your terminal.

p3 login --google
Confirm you're connected

Check your identity and active account instantly.

p3 auth whoami
Create your first task

Create a task, then optionally set it as the current task.

p3 task create "Task name"
Create many tasks at once

Enter tasks interactively or load them from a file.

p3 task create-many
Review your tasks

List what you can work on next.

p3 task select
Update progress

Move a task forward with one command.

p3 task update <taskId> --status "Working on it"
Grab the next priority

Pull the highest-priority task assigned to you.

p3 task next
Mark work done

Close the loop with a single command.

p3 done
Authentication
Email + password
p3 login --email you@company.com
Google sign-in
p3 login --google

The CLI prints a browser URL. Complete Google sign-in, then return to the terminal and press Enter. If a credential has multiple users, the CLI prompts for which user to use.

Check status / logout
p3 auth status
p3 auth logout
Output format

Commands print concise human-readable output by default. Use--json for full machine-readable output.

p3 --json task get <taskId>
{
  "task": {
    "id": "123",
    "name": "Improve onboarding",
    "status": "Working on it"
  }
}
Task commands
List
p3 task list --limit 25 --page 1
p3 task list --feature-id <featureId>
Get
p3 task get <taskId>
Search
p3 task search --term "billing"
Create
p3 task create "Improve onboarding"
p3 task create "Assign me" --assignTo @hazel --description "..."
p3 task create --name "Improve onboarding" --project-id <projectId>
p3 task create --feature-id <featureId> --name "Improve onboarding"
p3 task create --project-id <projectId> --name "Improve onboarding"
p3 task create --feature-id <featureId> --name "Fix bug" --description "..."
p3 task create --feature-id <featureId> --name "Assign me" --assigned-to-id <userId>
p3 task create --feature-id <featureId> --name "Assign me" --assigned-to-id @hazel
p3 task create --feature-id <featureId> --name "Linked" --linked-task-id <id> --linked-task-type 1

On first create/listen without --project-id, the CLI auto-selects or prompts for a project and saves it as the local default.

@username resolves to a profile username. In an interactive terminal, the CLI prints the task URL and asks whether to set the new task as current.

Create many
p3 task create-many
p3 task create-many --apply "--project-id <projectId> --assignTo @hazel"
p3 task create-many --dry-run

# example prompt lines
Fix auth redirect --assignTo @hazel
Improve onboarding --description "Shorten first-run flow"
Linked follow-up --linked-task-id <id> --linked-task-type 1
# tasks.txt
- Add loading state --assignTo @hazel
- Add loading state in modal --project-id <projectId>
- Fix auth redirect --description "Skip select-user fetch"
- Improve onboarding --name "Improve onboarding copy"
1. Numbered items also work

p3 task create-many --file tasks.txt --dry-run
p3 task create-many --file tasks.txt
p3 task create-many --file tasks.txt --apply "--project-id <projectId> --assignTo @hazel"

p3 task create-many supports interactive entry and--filemode. Blank lines and comments are ignored, list prefixes like-and 1. are stripped, and--applyadds shared options to every line.

Update / assign
p3 task update <taskId> --status "Working on it"
p3 task update <taskId> --priority high --assigned-to-id <userId>
p3 task update <taskId> --assignedTo @hazel
p3 task update <taskId> --tag-ids id1,id2 --action Build
p3 task assign <taskId> --user-id <userId>
p3 task assign --task-ids id1,id2 --user-id <userId>
Bulk update
p3 task update-many --task-ids id1,id2 --status Done
Convenience
p3 next
p3 task next
p3 open
p3 done
p3 task done <taskId>
Shell completion

Enable tab completion for commands and flags.

# Bash - add to ~/.bashrc
eval "$(p3 completion bash)"

# Zsh - add to ~/.zshrc
eval "$(p3 completion zsh)"

# Fish
p3 completion fish > ~/.config/fish/completions/p3.fish
Debug mode

Troubleshoot API calls with verbose output.

# Enable debug output
P3_DEBUG=1 p3 task list

# Or use the --debug flag
p3 --debug task list
Developer tips

Use help on any command to see flags and accepted values.

p3 --help
p3 task --help
p3 task update --help

Pipe --json output into your favorite tools.

p3 --json task list --limit 10 | jq '.tasks[] | {id, name, status}'