{"id":17173334,"url":"https://github.com/rprouse/dotnet-todo","last_synced_at":"2025-04-13T16:20:21.251Z","repository":{"id":42006796,"uuid":"304711616","full_name":"rprouse/dotnet-todo","owner":"rprouse","description":"A dotnet tool implementation of todo.txt","archived":false,"fork":false,"pushed_at":"2024-10-16T23:11:25.000Z","size":237,"stargazers_count":4,"open_issues_count":17,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-27T07:11:19.558Z","etag":null,"topics":["cli","dotnet","dotnet-tool","hacktoberfest","todo","todoapp"],"latest_commit_sha":null,"homepage":"http://todotxt.org/","language":"C#","has_issues":true,"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/rprouse.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"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}},"created_at":"2020-10-16T18:43:49.000Z","updated_at":"2024-10-16T23:11:27.000Z","dependencies_parsed_at":"2024-10-18T20:22:20.542Z","dependency_job_id":"c00fcbaf-e86e-4202-afbf-b81f240914b2","html_url":"https://github.com/rprouse/dotnet-todo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rprouse%2Fdotnet-todo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rprouse%2Fdotnet-todo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rprouse%2Fdotnet-todo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rprouse%2Fdotnet-todo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rprouse","download_url":"https://codeload.github.com/rprouse/dotnet-todo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248741629,"owners_count":21154346,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cli","dotnet","dotnet-tool","hacktoberfest","todo","todoapp"],"created_at":"2024-10-14T23:50:50.979Z","updated_at":"2025-04-13T16:20:21.223Z","avatar_url":"https://github.com/rprouse.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dotnet Todo.txt CLI\n\n[![Build Status](https://github.com/rprouse/dotnet-todo/actions/workflows/dotnet-core.yml/badge.svg)](https://github.com/rprouse/dotnet-todo/actions/workflows/dotnet-core.yml) ![NuGet Downloads](https://img.shields.io/nuget/dt/dotnet-todo)\n\n`dotnet-todo` is a .NET command line port of [Todo.txt](http://todotxt.org/) that tries to\nremain faithful to the command line and functionality of the original shell script wherever\npossible. As such, the [usage](#usage) below is a modified copy of the\n[original on GitHub](https://github.com/todotxt/todo.txt-cli/blob/master/USAGE.md).\n\n- [Installation](#installation)\n- [Usage](#usage)\n- [Configuration](#configuration)\n\n## Installation\n\nThis program is a [dotnet tool](https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools) and requires the latest version of\nthe [.NET SDK](https://dotnet.microsoft.com/download) to be installed. .NET 8.0 or newer is required.\n\n```sh\ndotnet tool install -g dotnet-todo\n```\n\n### Enabling Tab Completion\n\nThis program supports tab completion using `dotnet-suggest`. To enable, for each shell\nyou must install the `dotnet-suggest` global tool and adding a shim to your profile. This\nonly needs to be done once and work for all applications built using `System.CommandLine`.\n\nFollow the [setup instructions](https://github.com/dotnet/command-line-api/blob/main/docs/dotnet-suggest.md)\nfor your shell.\n\n## Usage\n\n```shell\ntodo [-fhpantvV] [-d todo_config] action [task_number] [task_description]\n```\n\nFor a complete list of options,\n\n```sh\ntodo --help\n```\n\n### Warning\n\nThe Windows command line uses the `@` sign to indicate that command line arguments should be loaded from\nthe file after the @ sign. This is a problem when searching for a context in your task list which also uses\nthe command line. For example, if I wanted to search for my tasks with `@work`, I would normally try this and\nget the following error;\n\n```shell\n\u003e todo list @work\nResponse file not found 'work'\n```\n\nIn Powershell, the above command does not filter on the context and returns all items. If you try to add\nquotes, `todo list \"@work\"` in Powershell, then you get the same error.\n\nI have not found a way to escape the `@` on the command line and adding quotes does not work. As a workaround\nyou can leave out the `@` sign and search using `todo list work`. This will also include tasks with the word\nwork, but that is minor. I may add `listcon` and `listpri` commands in the future.\n\nIf anyone has a proper workaround, please file an issue and I will update this.\n\nAlso note, that unlike the shell script version, quotes are required around any strings with spaces.\n\n## Configuration\n\nThis program does **not** support the default `todo.cfg` file as provided\nby the original shell script. Instead, this program uses a JSON file called\n`~/.todo.json` in the user's home directory.\n\nThe defaults for this file put the todo files in a `Todo` directory in the\nusers `Documents` directory.\n\nAllowed colors are `black, blue, cyan, gray, green, magenta, red, white,\nyellow, darkBlue, darkCyan, darkGray, darkGreen, darkMagenta, darkRed,\ndarkYellow`. Either omit or set any color to `null` to use the default\nterminal color.\n\nYou only need to add lines to `~/.todo.json` that you want to change.\nEverything else will be set to the defaults listed below.\n\nThe format and defaults for this file are;\n\n```json\n{\n  \"todoDirectory\": \"C:\\\\Users\\\\username\\\\Documents\\\\Todo\",\n  \"todoFile\": \"Todo.txt\",\n  \"doneFile\": \"Done.txt\",\n  \"reportFile\": \"Report.txt\",\n  // Colors for each priority from A to Z\n  \"priorities\": {\n    \"A\": {\n      \"color\": \"yellow\",\n      \"backgroundColor\": null\n    },\n    \"B\": {\n      \"color\": \"green\",\n      \"backgroundColor\": null\n    },\n    \"C\": {\n      \"color\": \"cyan\",\n      \"backgroundColor\": null\n    }\n  },\n  // Color of done items\n  \"doneColor\": {\n    \"color\": \"darkGray\",\n    \"backgroundColor\": null\n  },\n  // Color of any +projects within the text\n  \"projectColor\": {\n    \"color\": \"red\",\n    \"backgroundColor\": null\n  },\n  // Color of any @contexts within the text\n  \"contextColor\": {\n    \"color\": \"red\",\n    \"backgroundColor\": null\n  },\n  // Color of dates like 2020-10-22\n  \"dateColor\": {\n    \"color\": \"magenta\",\n    \"backgroundColor\": null\n  },\n  // Color of the task numbers\n  \"numberColor\": {\n    \"color\": \"gray\",\n    \"backgroundColor\": null\n  },\n  // The color of name value pairs like DUE:2020-10-22\n  \"metaColor\": {\n    \"color\": \"darkCyan\",\n    \"backgroundColor\": null\n  }\n}\n```\n\nHere is very simple example, just changing the directory that your todo\nfiles are stored in and using the defaults for everything else. Note\nthat the trailing slashes on the directory are optional.\n\n```json\n{\n  \"todoDirectory\": \"G:\\\\My Drive\\\\todo\\\\\"\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frprouse%2Fdotnet-todo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frprouse%2Fdotnet-todo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frprouse%2Fdotnet-todo/lists"}