TaskP3 CLI

CLI Documentation

Manage your tasks from the terminal for human-friendly and automated workflows. Optimized for models and humans alike.
TaskP3 CLI demoTaskP3 CLI demo
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}'