A cross-platform command-line interface to interact with Microsoft To Do, built using .NET 10.
| Platform | Status |
|---|---|
| CI | |
| Release |
- ✅ Cross-platform (Linux, macOS, Windows)
- ✅ Self-contained binaries (no .NET runtime required)
- ✅ Microsoft To Do integration
- ✅ Interactive mode with Inquirer
- ✅ Command-line mode for scripting
- ✅ CI/CD with GitHub Actions
# Download the latest Linux x64 binary
curl -L https://github.com/evilz/todo-cli/releases/latest/download/todo-linux-x64.tar.gz -o todo.tar.gz
tar -xzf todo.tar.gz
chmod +x todo
sudo mv todo /usr/local/bin/
todo --help# Download the latest Windows x64 zip
Invoke-WebRequest -Uri https://github.com/evilz/todo-cli/releases/latest/download/todo-win-x64.zip -OutFile todo.zip
Expand-Archive -Path todo.zip -DestinationPath todo
.\todo\todo.exe --helpdotnet tool install -g Todo.CLI --source https://www.nuget.org
todo --help- .NET 10 SDK
- Linux, macOS, or Windows
# Clone the repository
git clone https://github.com/evilz/todo-cli.git
cd todo-cli
# Build the solution
dotnet build src/Todo.CLI.sln --configuration Release
# Run tests
dotnet test src/Todo.CLI.sln --configuration Release
# Publish self-contained for your platform
dotnet publish src/Todo.CLI/Todo.CLI.csproj \
--configuration Release \
--runtime linux-x64 \
--self-contained true \
--output ./publishFirst run will prompt you to sign in with your Microsoft account.
# Show help
todo --help
# Add a task
todo add "Buy milk"
# List tasks
todo list
todo list --all
# Complete a task
todo complete <task-id>
# Remove a task
todo remove <task-id>The application uses Microsoft OAuth 2.0 for authentication. On first run, it will:
- Open your default browser
- Ask you to sign in with your Microsoft account
- Request consent to access Microsoft To Do
- Store tokens securely in your system's keyring
GitHub Actions workflows handle:
- Building and testing on multiple platforms
- Creating self-contained binaries for Linux, macOS, and Windows
- Publishing releases automatically on tag
- Fork the repository
- Create a feature branch
- Add tests for your changes
- Ensure all tests pass
- Submit a pull request
MIT License
Built with:
