{"id":51027202,"url":"https://github.com/deepgram/dx-asana","last_synced_at":"2026-06-21T20:30:49.469Z","repository":{"id":358071203,"uuid":"1239865982","full_name":"deepgram/dx-asana","owner":"deepgram","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-15T14:46:10.000Z","size":99,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-15T16:35:34.241Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deepgram.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-15T14:21:00.000Z","updated_at":"2026-05-15T14:24:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/deepgram/dx-asana","commit_stats":null,"previous_names":["deepgram/dx-asana"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/deepgram/dx-asana","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepgram%2Fdx-asana","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepgram%2Fdx-asana/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepgram%2Fdx-asana/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepgram%2Fdx-asana/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deepgram","download_url":"https://codeload.github.com/deepgram/dx-asana/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepgram%2Fdx-asana/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34625624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-21T02:00:05.568Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-21T20:30:47.375Z","updated_at":"2026-06-21T20:30:49.458Z","avatar_url":"https://github.com/deepgram.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Asana CLI\n\nA feature-rich open-source command-line interface for Asana with an interactive TUI (Text User Interface), JSON output for automation, and a background sync daemon for offline support.\n\n## ✨ Features\n\n- **Interactive TUI** - Navigate, filter, and manage tasks with Bubble Tea\n- **JSON Output** - Easy to parse format for scripts and automation\n- **Sync Daemon** - Background service that caches your Asana data locally\n- **Full CRUD** - Create, read, update, and delete tasks\n- **Advanced Filtering** - Filter by assignee, tags, status, priority\n- **Search** - Find tasks across your workspace\n- **Task Management** - Complete, assign, set priorities and due dates\n- **Configuration** - Save API tokens and default workspaces/projects\n\n## 🚀 Quick Start\n\n### Installation\n\n#### Without brew\n\n```bash\n# Clone the repo\ngit clone https://github.com/TheCoolRobot/asana-cli.git\ncd asana-cli\n\n# Build\nmake build\n\n# Or install directly\ngo install\n```\n\nI like to add a function to make accessing it as easy as possible. To do this, I use my zshrc:\n\n```bash\nfunction asana-cli(){\n  cd /Users/henry/Developer/cmdln_dev/asana-cli\u0026\u0026./asana-cli \"$@\"\n}\n# Replace /Users/henry/Developer/cmdln_dev with the PATH to YOUR folder\n```\n\n#### With brew\n\n```bash\nbrew install thecoolrobot/asana-cli/asana-cli\n```\nSimple!\n\n### Authentication\n\nSet your Asana API token:\n\n```bash\nexport ASANA_TOKEN=your-token-here\n# or save to config\nasana-cli config set --token your-token-here\n```\n\n### Basic Usage\n\n```bash\n# List tasks in a project (interactive TUI)\nasana-cli list \u003cproject-gid\u003e\n\n# Or, if project is added\nasana-cli list\n\n# List tasks as JSON\nasana-cli list \u003cproject-gid\u003e --json\n\n# If project is added\nasana-cli list --json\n# You get the idea-it works for all of them with a project GID\n\n# Create a task\nasana-cli create \u003cproject-gid\u003e --name \"My Task\" --priority high\n\n# Add a project \nasana-cli config project add \u003cproject-name\u003e \u003cproject-gid\u003e --description \u003coptional description\u003e\n\n# Switch to a different project\nasana-cli config project switch \u003cproject-name\u003e\n\n# Update a task\nasana-cli update \u003ctask-gid\u003e --name \"Updated Task\"\n\n# Complete a task\nasana-cli complete \u003ctask-gid\u003e\n\n# Search for tasks\nasana-cli search \u003cworkspace-gid\u003e \"bug fix\"\n\n# Start sync daemon\nasana-cli sync --projects 12345,67890\n```\n\n## 📖 Documentation\n\n- [Installation Guide](docs/INSTALLATION.md)\n- [Usage Guide](docs/USAGE.md)\n- [API Reference](docs/API.md)\n- [Development](docs/DEVELOPMENT.md)\n\n## 🔄 Sync Daemon\n\nThe sync daemon runs in the background and automatically caches your Asana data locally every 5 minutes. This enables:\n\n- **Fast TUI loading** from local cache\n- **Offline browsing** of cached tasks\n- **Batch operations** without hitting API rate limits\n- **History tracking** of task changes\n\nStart the daemon:\n\n```bash\nasana-cli sync --projects project-id-1,project-id-2\n```\n\nOr run as a service (see [Development](docs/DEVELOPMENT.md) for systemd setup).\n\n## 📝 JSON Output Examples\n\n```bash\n# Get tasks as JSON\n$ asana-cli list proj-123 --json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": \"task-1\",\n      \"name\": \"Build feature\",\n      \"completed\": false,\n      \"priority\": \"high\",\n      \"due_date\": \"2026-03-01T00:00:00Z\"\n    }\n  ],\n  \"meta\": {\n    \"count\": 1,\n    \"project_id\": \"proj-123\"\n  }\n}\n\n# Create a task and parse JSON\n$ asana-cli create proj-123 --name \"Review PR\" --json | jq '.data.id'\n\"task-456\"\n```\n\n## 🎮 Interactive TUI Controls\n\n```\n[↑↓] - Navigate tasks\n[space] - Select/deselect\n[c] - Mark complete\n[f] - Toggle show completed\n[s] - Change sort (name/due/priority)\n[/] - Search\n[q] - Quit\n[a] - Add\n```\n\n## 🔐 Security\n\n- API tokens are stored in `~/.asana-cli/config.json` with restricted permissions (0600)\n- Never commit `.env` files or tokens to version control\n- Use environment variables for CI/CD\n\n## 📊 Commands\n\n### Task Management\n- `list` - List tasks in a project\n- `view` - View task details\n- `create` - Create a new task\n- `update` - Update a task\n- `complete` - Mark task as complete\n- `delete` - Delete a task\n- `search` - Search for tasks\n\n### System\n- `config` - Manage configuration\n- `sync` - Start sync daemon\n- `me` - Show current user info\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing`)\n3. Commit your changes (`git commit -am 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing`)\n5. Open a Pull Request\n\n## 📄 License\n\nMIT License - see LICENSE file for details\n\n## 🐛 Issues \u0026 Support\n\nFound a bug? Have a feature request? [Open an issue](https://github.com/TheCoolRobot/asana-cli/issues)\n\n---\n\nMade with ❤️ by TheCoolRobot\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepgram%2Fdx-asana","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeepgram%2Fdx-asana","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepgram%2Fdx-asana/lists"}