iZiDo

StarShip it Today

To-do list manager with seamless integration into your terminal workflow.

Why This Tool?

I do forget a lot, so constant reminders are much needed. While exploring Starship Prompt I discovered that it can be customized to display text around the cursor. Hmm, I thought, 'What if I add reminders for the tasks I need to do above it?' IziDo was born out of this. For those who might find this feature annoying, don't worry—you can easily toggle it on and off. Check the code below...

Features

  • Interactive Picker: Run izido with no arguments for a live, arrow-key-driven task browser — toggle, delete, and filter as you type.
  • Cloud Sync: Two-way sync with the Chrome Extension / macOS app via a Supabase backend. Instant-open from a local cache, background refresh keeps it fresh.
  • Add Tasks: Priority levels, due dates, recurring rules (daily / weekly / monthly), and #project / @context tags — all from one command.
  • List & Filter: Filter by status (pending/done), priority, or tag (izido list #core) with a color-coded, sorted table.
  • Manage Tasks: Mark done, reopen, remove, edit text/priority/due date, and undo the last change.
  • Search & Stats: izido find "text" for quick search; izido stats for a breakdown by status and priority.
  • Calendar Export: izido export produces a standards-compliant .ics file — pending tasks land directly in Apple / Google / Outlook Calendar.
  • Guided Setup: izido setup walks you through API keys, mode selection, and tests the connection.
  • Prompt Integration: Display your to-do list directly in your terminal prompt using Starship.
  • Toggle View: Enable or disable the prompt block with izido on / izido off.
  • Cross-Platform: Runs on macOS and Linux. Bash 4+ recommended for the picker.

Demo View

iZiDo in Action

Experience the sleek integration of iZiDo with your terminal prompt.

Installation

Prerequisites

  • Shell: Bash or Zsh.
  • Starship Prompt: Installed and configured.
  • Utilities: jq (for cloud mode), awk, sed.
  • Bash 4+ (optional — enables the interactive picker; brew-installable on macOS).
  • Terminal Emulator: Supports Unicode and colors.

Quick Install

brew install starship jq bash               # dependencies
sudo cp izido-cloud.sh /usr/local/bin/izido
sudo chmod +x /usr/local/bin/izido
izido setup                                   # guided config

Steps

  1. Clone the Repository:
    git clone https://github.com/idmtr/izido.git
    cd izido
  2. Install the Script:
    sudo cp izido.sh /usr/local/bin/izido
    sudo chmod +x /usr/local/bin/izido
  3. Configure Starship Prompt:
    cat starship.toml >> ~/.config/starship.toml
  4. Reload Your Shell:
    source ~/.zshrc   # For Zsh
    source ~/.bashrc  # For Bash

Usage

Add a To-Do Item

izido add -p high -d 2024-11-01 "Go to dentist"

Priority Options: high, normal, low (default is normal).

Due Date Format: YYYY-MM-DD. If omitted, the due date is unspecified.

List To-Do Items

izido list
izido list pending    # List pending tasks
izido list high       # List high-priority tasks

Marking a Task as Done

izido done 1

Removing a To-Do Item

izido remove 2

Clearing All To-Do Items

izido clear

Interactive Picker

izido

Run without arguments to launch the live picker. Navigate with arrow keys, toggle with Enter, type to filter. Press q to quit.

Recurring Tasks & Tags

izido add -p high "Standup" daily
izido add "fix #core @desktop" weekly

Add daily, weekly, or monthly after your task to make it recurring. Marking done advances the due date. #project and @context tokens are color-coded and filterable.

Edit, Undo, Find & Stats

izido edit 1 -t "updated text" -p high
izido undo
izido find "bug"
izido stats

Calendar Export

izido export my-tasks.ics

Produces a standards-compliant .ics file — pending tasks land in Apple Calendar, Google Calendar, or Outlook.

Cloud Sync & Setup

izido cloud          # switch to cloud mode
izido sync           # pull latest from backend
izido setup          # guided config wizard

Toggling To-Do View in Prompt

izido view on
izido view off

Customization

Adjusting the Script

Modify the izido.sh script to better suit your workflow:

  • Change Data Storage Format: Switch to JSON or another format if preferred.
  • Add Features: Implement task editing, notifications, or integrations with other tools.

Modifying the Prompt Display

Customize how tasks are displayed in your prompt by editing the starship.toml configuration:

  • Change Icons: Replace Unicode icons with your preferred symbols.
  • Adjust Colors: Modify color codes to match your terminal theme.
  • Limit Task Display: Change the number of tasks shown in the prompt.

Contributing

Contributions are welcome! Follow these steps to contribute:

  1. Fork the Repository
  2. Create a New Branch
    git checkout -b feature/YourFeatureName
  3. Commit Your Changes
    git commit -m "Add feature: YourFeatureName"
  4. Push to Your Fork
    git push origin feature/YourFeatureName
  5. Open a Pull Request detailing your changes and their benefits.

Beyond Coding

My Dog

Yes, iZiDo even helps me take my dog for walks!

Origin of the Name

iZiDo is a playful twist on the phrase "Easy Do", reflecting the application's core mission to simplify task management directly from your terminal. The name embodies the ease and efficiency that iZiDo brings to your daily workflow, making task tracking an effortless part of your coding environment.

Dialect and Slang Origins

The term "iZi" is a colloquial contraction of "easy" commonly found in various English dialects and informal speech. By adopting this slang variation, iZiDo conveys a sense of casual simplicity and approachability, inviting users to integrate task management seamlessly without disrupting their coding flow.

  • "iZi": Represents the ease of managing tasks.
  • "Do": Emphasizes action and productivity.

Together, iZiDo suggests that handling to-dos can be both straightforward and effective, aligning with the application's goal to help you get stuff done.

License

This project is licensed under the MIT License.