Metadata-Version: 2.4
Name: python-asana-cli
Version: 0.1.0
Summary: A powerful command line interface for Asana
Author: asana-cli contributors
License: MIT
Keywords: asana,cli,task,project,management
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: asana>=5.0.0
Requires-Dist: click>=8.0
Requires-Dist: rich>=13.0
Requires-Dist: python-dotenv>=1.0
Dynamic: license-file

# asana-cli

A powerful, colorful command line interface for [Asana](https://asana.com), 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

```bash
pip install -e .
```

Or install dependencies directly:

```bash
pip install asana click rich python-dotenv
```

## Configuration

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

```bash
asana-cli config set-token <YOUR_TOKEN>
```

Or set the environment variable:

```bash
export ASANA_TOKEN=<YOUR_TOKEN>
```

## Usage

### General

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

### Workspaces

```bash
# List all workspaces
asana-cli workspace list

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

### User

```bash
# 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

```bash
# 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

```bash
# 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
