Command Line Interface

Planify CLI

Manage your tasks directly from the terminal. Perfect for scripting, voice assistants, and automation workflows.

Getting Started

The CLI is included with Planify. Use the following command depending on your installation:

Flatpak

flatpak run --command=io.github.alainm23.planify.cli io.github.alainm23.planify <command>

Tip: Create an alias for convenience:

alias planify-cli="flatpak run --command=io.github.alainm23.planify.cli io.github.alainm23.planify"

Built from source

io.github.alainm23.planify.cli <command>

Commands

add

Add a new task
planify-cli add --content "Buy groceries" --project "Personal" --priority 1 --due 2025-01-15
Option Short Description
--content -c Task content (required)
--description -d Task description
--project -p Project name (defaults to Inbox)
--project-id -i Project ID (preferred over name)
--section -s Section name
--priority -P 1 = high, 2 = medium, 3 = low, 4 = none
--due -D Due date (YYYY-MM-DD)
--labels -l Comma-separated label names
--parent-id -a Parent task ID (creates a subtask)
--pin Pin the task (true/false)

list-projects

List all projects
planify-cli list-projects

Returns a JSON array with all projects and their IDs.

list

List tasks from a project
planify-cli list --project "Personal"
Option Short Description
--project -p Project name (defaults to Inbox)
--project-id -i Project ID (preferred over name)

update

Update an existing task
planify-cli update --task-id "abc123" --content "Updated task" --complete true
Option Short Description
--task-id -t Task ID to update (required)
--content -c New task content
--description -d New description
--project -p Move to project by name
--priority -P 1 = high, 2 = medium, 3 = low, 4 = none
--due -D Due date (YYYY-MM-DD)
--labels -l Comma-separated label names
--complete Mark complete/incomplete (true/false)
--pin Pin/unpin the task (true/false)

Examples

Add a high-priority task with labels

planify-cli add -c "Fix login bug" -p "Work" -P 1 -D 2025-04-10 -l "bug,urgent"

Add a subtask

planify-cli add -c "Write unit tests" -p "Work" --parent-id "abc123"

Complete a task

planify-cli update --task-id "abc123" --complete true

Move a task to another project

planify-cli update --task-id "abc123" --project "Personal"

Voice-to-task with a script

#!/bin/bash
# Record audio, transcribe with Whisper, add as task
TASK=$(whisper --model tiny record.wav | tail -1)
planify-cli add --content "$TASK"

Output Format

All commands return JSON output, making it easy to pipe into other tools like jq.

planify-cli list-projects | jq '.[].name'