{
  "markdown": "# 🎯 Gemini CLI Todoist Extension\n\n> Full Todoist task management integration for [Gemini CLI](https://github.com/google-gemini/gemini-cli) via Model Context Protocol (MCP).\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Node.js](https://img.shields.io/badge/Node.js-18%2B-green.svg)](https://nodejs.org/)\n[![Gemini CLI](https://img.shields.io/badge/Gemini%20CLI-Extension-blue.svg)](https://github.com/google-gemini/gemini-cli)\n\n## ✨ Features\n\n- **23 MCP Tools** covering all Todoist operations\n- **Natural Language** - \"Add groceries to my shopping list for tomorrow\"\n- **Hierarchical View** - See tasks and subtasks in a nested tree structure\n- **Smart Formatting** - Clean, readable output (no raw JSON!)\n- **Move with Subtasks** - Move parent tasks with all subtasks preserved\n- **Smart Confirmations** - Confirms before completing or deleting\n- **Organized Commands** - 15+ slash commands by category\n- **Voice-Friendly** - Handles transcription errors gracefully\n\n### Supported Operations\n\n| Category | Operations |\n|----------|------------|\n| **Tasks** | Create, list, update, move, complete, reopen, delete |\n| **Projects** | Create, list, update, delete |\n| **Sections** | Create, list, update, delete |\n| **Labels** | Create, list, update, delete |\n| **Comments** | Create, list, update, delete |\n\n---\n\n## 🔑 Prerequisites\n\nBefore installing, you need:\n\n1. **Node.js 18+** - [Download here](https://nodejs.org/)\n2. **Gemini CLI** - Install globally:\n   ```bash\n   npm install -g @google/gemini-cli\n   ```\n3. **Todoist API Token** - Get yours below 👇\n\n---\n\n## 🔐 Getting Your Todoist API Token\n\n1. Log in to [Todoist](https://todoist.com)\n2. Go to **Settings** → **Integrations** → **Developer**\n   - Direct link: https://todoist.com/prefs/integrations\n3. Scroll to **API token** section\n4. Click **Copy** to copy your token\n\n> ⚠️ **Keep your token secret!** Never share it or commit it to git.\n\n---\n\n## ⚙️ Setting Up Your API Token\n\nThe extension reads your token from the `TODOIST_API_TOKEN` environment variable. Choose your operating system:\n\n<details>\n<summary><b>🪟 Windows</b></summary>\n\n### Option 1: PowerShell (Recommended - Permanent)\n\nOpen **PowerShell as Administrator** and run:\n\n```powershell\n[System.Environment]::SetEnvironmentVariable('TODOIST_API_TOKEN', 'your_token_here', 'User')\n```\n\n**Then restart your terminal** for changes to take effect.\n\n### Option 2: Command Prompt (Permanent)\n\n```cmd\nsetx TODOIST_API_TOKEN \"your_token_here\"\n```\n\n**Then restart your terminal.**\n\n### Option 3: GUI Method\n\n1. Press `Win + R`, type `sysdm.cpl`, press Enter\n2. Go to **Advanced** tab → **Environment Variables**\n3. Under **User variables**, click **New**\n4. Variable name: `TODOIST_API_TOKEN`\n5. Variable value: `your_token_here`\n6. Click **OK** and restart your terminal\n\n### Verify It's Set\n\n```powershell\necho $env:TODOIST_API_TOKEN\n```\n\n</details>\n\n<details>\n<summary><b>🍎 macOS</b></summary>\n\n### For Zsh (default on macOS)\n\nAdd to your `~/.zshrc`:\n\n```bash\necho 'export TODOIST_API_TOKEN=\"your_token_here\"' >> ~/.zshrc\nsource ~/.zshrc\n```\n\n### For Bash\n\nAdd to your `~/.bash_profile`:\n\n```bash\necho 'export TODOIST_API_TOKEN=\"your_token_here\"' >> ~/.bash_profile\nsource ~/.bash_profile\n```\n\n### Verify It's Set\n\n```bash\necho $TODOIST_API_TOKEN\n```\n\n</details>\n\n<details>\n<summary><b>🐧 Linux</b></summary>\n\n### For Bash\n\nAdd to your `~/.bashrc`:\n\n```bash\necho 'export TODOIST_API_TOKEN=\"your_token_here\"' >> ~/.bashrc\nsource ~/.bashrc\n```\n\n### For Zsh\n\nAdd to your `~/.zshrc`:\n\n```bash\necho 'export TODOIST_API_TOKEN=\"your_token_here\"' >> ~/.zshrc\nsource ~/.zshrc\n```\n\n### For Fish\n\n```fish\nset -Ux TODOIST_API_TOKEN \"your_token_here\"\n```\n\n### Verify It's Set\n\n```bash\necho $TODOIST_API_TOKEN\n```\n\n</details>\n\n---\n\n## 📦 Installation\n\n### Option 1: Install from GitHub with Auto-Update (Recommended)\n\n```bash\ngemini extensions install https://github.com/PatelPratikkumar/gemini-todoist-extension --auto-update --consent\n```\n\nThis enables automatic updates when new versions are released.\n\n### Option 2: Install without Auto-Update\n\n```bash\ngemini extensions install https://github.com/PatelPratikkumar/gemini-todoist-extension --consent\n```\n\n### Option 3: Install from Local Clone (For Development)\n\n```bash\n# Clone the repository\ngit clone https://github.com/PatelPratikkumar/gemini-todoist-extension.git\ncd gemini-todoist-extension\n\n# Install dependencies\nnpm install\n\n# Build the extension\nnpm run build\n\n# Link to Gemini CLI\ngemini extensions link .\n```\n\n---\n\n## 🔄 Updates\n\n### With Auto-Update Enabled\n\nIf you installed with `--auto-update`, the extension updates automatically when you start Gemini CLI.\n\n### Manual Update\n\n```bash\n# Update this extension\ngemini extensions update todoist-extension\n\n# Or update all extensions\ngemini extensions update --all\n```\n\n### Check for Updates\n\n```bash\ngemini extensions list\n```\n\n---\n\n## 🚀 Usage\n\nStart Gemini CLI and use natural language or slash commands:\n\n```bash\ngemini\n```\n\n### Natural Language Examples\n\n```\n> Add a task to buy groceries tomorrow\n> What's on my list for today?\n> Show me overdue tasks\n> Mark the groceries task as done\n> Create a project called \"Q1 Planning\" with blue color\n> Delete the old shopping task\n```\n\n### Slash Commands\n\n#### Tasks\n| Command | Description |\n|---------|-------------|\n| `/tasks:add` | Add a new task |\n| `/tasks:list` | List tasks with filters |\n| `/tasks:complete` | Mark task as complete |\n| `/tasks:update` | Update a task |\n| `/tasks:delete` | Delete a task |\n| `/tasks:reopen` | Reopen completed task |\n\n#### Projects\n| Command | Description |\n|---------|-------------|\n| `/projects:list` | List all projects |\n| `/projects:create` | Create new project |\n| `/projects:delete` | Delete a project |\n\n#### Sections\n| Command | Description |\n|---------|-------------|\n| `/sections:list` | List sections in project |\n| `/sections:create` | Create new section |\n\n#### Labels\n| Command | Description |\n|---------|-------------|\n| `/labels:list` | List all labels |\n| `/labels:create` | Create new label |\n\n#### Comments\n| Command | Description |\n|---------|-------------|\n| `/comments:list` | View task comments |\n| `/comments:add` | Add comment to task |\n\n### Command Syntax\n\n```bash\n# Add task with options\n/tasks:add Buy milk tomorrow @Shopping !2 #groceries\n\n# List with filters\n/tasks:list --project Work --priority 1\n\n# Complete by name\n/tasks:complete buy groceries\n```\n\n---\n\n## 📁 Project Structure\n\n```\ngemini-todoist-extension/\n├── commands/\n│   ├── tasks/              # Task-related slash commands\n│   │   ├── add.toml\n│   │   ├── list.toml\n│   │   ├── complete.toml\n│   │   ├── update.toml\n│   │   ├── delete.toml\n│   │   └── reopen.toml\n│   ├── projects/           # Project slash commands\n│   │   ├── list.toml\n│   │   ├── create.toml\n│   │   └── delete.toml\n│   ├── sections/           # Section slash commands\n│   │   ├── list.toml\n│   │   └── create.toml\n│   ├── labels/             # Label slash commands\n│   │   ├── list.toml\n│   │   └── create.toml\n│   └── comments/           # Comment slash commands\n│       ├── list.toml\n│       └── add.toml\n├── src/\n│   ├── server.ts           # MCP server entry point & tool handlers\n│   ├── todoist-client.ts   # Todoist REST & Sync API client\n│   ├── formatter.ts        # Human-readable output formatting\n│   └── tools.ts            # 23 MCP tool definitions\n├── dist/                   # Compiled JavaScript output\n│   └── bundle.js           # Bundled extension (esbuild)\n├── GEMINI.md               # AI context instructions\n├── gemini-extension.json   # Extension manifest\n├── package.json\n├── tsconfig.json\n├── README.md\n└── LICENSE\n```\n\n---\n\n## 🔧 Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Development mode (with hot reload)\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Test the extension\ngemini extensions link .\ngemini\n```\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Submit a pull request\n\n---\n\n## 📋 Changelog\n\n### v1.7.0 (2025-12-07)\n- 📊 **Hierarchical Table Format** - Tasks displayed in table with indented subtasks\n- ✨ Full task names (no truncation) with natural line wrapping\n- 🎯 Clean visual hierarchy using simple space indentation\n\n### v1.6.0 (2025-12-07)\n- 🌳 **Hierarchical Task View** - Tasks are now displayed in a nested tree structure\n- 📋 Improved list formatting with indentation for subtasks\n- 👁️ Better visual organization for complex projects\n\n### v1.5.0 (2025-12-07)\n- 🔧 **Move Task with Subtasks** - `move_task` now preserves parent-child hierarchy\n- 📦 Subtasks are automatically moved with their parent task\n- ✨ Added `include_subtasks` option (default: true)\n- 📊 Shows count of moved subtasks in output\n\n### v1.4.0 (2025-12-07)\n- ✨ **New `move_task` Tool** - Move tasks between projects, sections, or make subtasks\n- 🔄 Uses Todoist Sync API for moving (REST API doesn't support this)\n\n### v1.3.0 (2025-12-07)\n- 📋 **Task IDs in Output** - All list outputs now include IDs for reference\n- 🎨 Improved table formatting with ID columns\n\n### v1.2.0 (2025-12-07)\n- 🎨 **Server-Side Formatting** - Clean, human-readable output instead of raw JSON\n- 📊 Beautiful tables for tasks, projects, sections, labels, comments\n- 🔴🟠🟡⚪ Priority emojis for visual clarity\n\n### v1.1.0 (2025-12-06)\n- 📦 Added esbuild bundling for smaller extension size\n- 🔧 Fixed TypeScript compilation issues\n- 📁 Extension now works properly from GitHub installation\n\n### v1.0.0 (2025-12-06)\n- 🎉 **Initial Release**\n- 22 MCP tools for complete Todoist integration\n- 15 slash commands for quick access\n- Full support for tasks, projects, sections, labels, and comments\n- Natural language processing for voice-friendly input\n- System environment variable for secure API token storage\n\n---\n\n## 📝 License\n\nMIT License - see [LICENSE](LICENSE) file.\n\n---\n\n## 🙏 Acknowledgments\n\n- [Todoist](https://todoist.com) for their excellent API\n- [Google Gemini CLI](https://github.com/google-gemini/gemini-cli) team\n- [Model Context Protocol](https://modelcontextprotocol.io/) specification\n\n---\n\n## ❓ Troubleshooting\n\n### \"TODOIST_API_TOKEN not set\"\n\nMake sure you've set the environment variable and restarted your terminal. Verify with:\n- Windows: `echo $env:TODOIST_API_TOKEN`\n- Mac/Linux: `echo $TODOIST_API_TOKEN`\n\n### \"Extension not loading\"\n\n1. Rebuild: `npm run build`\n2. Relink: `gemini extensions uninstall todoist-extension && gemini extensions link .`\n\n### \"API errors\"\n\n- Verify your token at https://todoist.com/prefs/integrations\n- Check you have internet connectivity\n- Ensure token has correct permissions\n\n---\n\n**Made with ❤️ for productivity enthusiasts**\n",
  "bytes": 10746,
  "sha": "c9e07bfe70f4c52fa240ea88815c9661e7fa539d8bbc8753cfab38d81566b00c",
  "repo_slug": "patelpratikkumar/gemini-todoist-extension",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_patelpratikkumar_gemini_todoist_extensio_8471a41c/readme"
}