Skip to main content

A powerful command line interface for Asana

Project description

asana-cli

A powerful, colorful command line interface for Asana, built on top of the official asana Python SDK and click.

Features

  • 🗂 Tasks: list, get, create, update, complete, delete, comment, subtasks
  • 📁 Projects: list, get, create, update, delete, sections
  • 🏢 Workspaces: list workspaces and users
  • 👤 Users: whoami, list assigned tasks
  • 🎨 Beautiful rich terminal output with colors and tables
  • 🔐 Secure token storage in ~/.asana-cli

Installation

pip install -e .

Or install dependencies directly:

pip install asana click rich python-dotenv

Configuration

Get your Personal Access Token from https://app.asana.com/0/my-apps, then:

asana-cli config set-token <YOUR_TOKEN>

Or set the environment variable:

export ASANA_TOKEN=<YOUR_TOKEN>

Usage

General

asana-cli --help
asana-cli config show
asana-cli config set-token <TOKEN>

Workspaces

# List all workspaces
asana-cli workspace list

# List users in a workspace
asana-cli workspace users <WORKSPACE_GID>

User

# Show current user info
asana-cli user me

# Show tasks assigned to me
asana-cli user tasks --workspace <WORKSPACE_GID>
asana-cli user tasks --workspace <WORKSPACE_GID> --completed  # include done tasks

Projects

# List projects in a workspace
asana-cli project list --workspace <WORKSPACE_GID>

# Get project details
asana-cli project get <PROJECT_GID>

# Create a project
asana-cli project create --workspace <WORKSPACE_GID> --name "My Project" --color light-green

# Update a project
asana-cli project update <PROJECT_GID> --name "New Name"

# Archive a project
asana-cli project update <PROJECT_GID> --archive

# Delete a project
asana-cli project delete <PROJECT_GID>

# List sections
asana-cli project sections <PROJECT_GID>

# Add a section
asana-cli project add-section <PROJECT_GID> --name "In Progress"

Tasks

# List tasks in a project
asana-cli task list --project <PROJECT_GID>

# Filter by section
asana-cli task list --project <PROJECT_GID> --section <SECTION_GID>

# Show completed tasks
asana-cli task list --project <PROJECT_GID> --completed

# Get task details
asana-cli task get <TASK_GID>

# Create a task
asana-cli task create --project <PROJECT_GID> --name "Fix bug" --due 2025-12-31 --assignee me

# Create a task in a specific section
asana-cli task create --project <PROJECT_GID> --name "Review PR" --section <SECTION_GID>

# Update a task
asana-cli task update <TASK_GID> --name "New Name" --due 2025-11-01

# Mark task complete
asana-cli task complete <TASK_GID>

# Mark task incomplete
asana-cli task update <TASK_GID> --incomplete

# Delete a task
asana-cli task delete <TASK_GID>

# Add a comment
asana-cli task comment <TASK_GID> "Great progress on this!"

# List subtasks
asana-cli task subtasks <TASK_GID>

# Add a subtask
asana-cli task add-subtask <PARENT_TASK_GID> --name "Write tests"

Tips

  • Find GIDs in the Asana URL: https://app.asana.com/0/<project_gid>/...
  • Use --assignee me to assign to yourself
  • Due date colors: 🔴 overdue, 🟡 due soon (≤3 days), 🟢 upcoming

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_asana_cli-0.1.0.tar.gz (10.1 kB view details)

Uploaded Source

File details

Details for the file python_asana_cli-0.1.0.tar.gz.

File metadata

  • Download URL: python_asana_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for python_asana_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6c2c0787c3cba4f8df3f482a356bf1ba8c5244fbdeb29901a16ab9fea93477be
MD5 b8073182e4ec97b1f23d7536b45dbdd5
BLAKE2b-256 5f9442d7d7323425bfe0bc8d103c37594bd17cb8386c2ae40ae529f27bfee7f4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page