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
AI agent skill
Install the TaskP3 skill so coding agents can create, update, link, and set current tasks through the authenticatedp3CLI.
Cursor
npx skills add Raidon-Inc/taskp3-skill -a cursor
Windsurf
npx skills add Raidon-Inc/taskp3-skill -a windsurf
GitHub Copilot
npx skills add Raidon-Inc/taskp3-skill -a github-copilot
Cline
npx skills add Raidon-Inc/taskp3-skill -a cline
Claude Code
npx skills add Raidon-Inc/taskp3-skill -a claude-code
Any supported agent
npx skills add Raidon-Inc/taskp3-skill
Ask your agent
“Create a task for everything we just talked about”
“Update the current task with what we just finished”
“Set <taskp3 url> as my current task”
“Kevin reported a triage about the calendar integration, can you tell me what's asking for, contextualize it in our codebase”
Quickstart
Sign up or sign in
Create an account or authenticate once, then keep working.
p3 signup --google 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
Sign up
p3 signup --google p3 signup --email you@company.com
Google sign-in
p3 login --google
The CLI prints a browser URL. Complete sign-in or signup, 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}'