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}'