{"id":16184345,"url":"https://github.com/mattmezza/todo","last_synced_at":"2026-04-17T00:33:55.223Z","repository":{"id":79954643,"uuid":"222288665","full_name":"mattmezza/todo","owner":"mattmezza","description":"✅ A small todo utility for terminal lovers.","archived":false,"fork":false,"pushed_at":"2020-04-27T18:30:29.000Z","size":14,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-07T12:50:16.520Z","etag":null,"topics":["bash","dotfiles","productivity","script","terminal","todo","utility"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/mattmezza.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","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":"2019-11-17T17:52:17.000Z","updated_at":"2023-03-08T03:07:41.000Z","dependencies_parsed_at":"2023-05-24T12:45:38.098Z","dependency_job_id":null,"html_url":"https://github.com/mattmezza/todo","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/mattmezza/todo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattmezza%2Ftodo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattmezza%2Ftodo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattmezza%2Ftodo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattmezza%2Ftodo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mattmezza","download_url":"https://codeload.github.com/mattmezza/todo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattmezza%2Ftodo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31910156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"ssl_error","status_checked_at":"2026-04-16T18:21:47.142Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bash","dotfiles","productivity","script","terminal","todo","utility"],"created_at":"2024-10-10T07:09:54.747Z","updated_at":"2026-04-17T00:33:55.197Z","avatar_url":"https://github.com/mattmezza.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"todo\n===\n\n`todo` is a utility for quickly keep track of your todos without leaving the comfort of your terminal.\n\n![](todo.gif)\n\n\n\n\nInstallation\n===\n\nInstalling `todo` is very easy: you just need to clone this very same repo at the latest release and then source the `todo.sh` file in your bash profile. Here's how I do it in my [dotfiles](https://github.com/mattmezza/dotfiles) (see plugins.sh and plugins.txt).\n\n```bash\ngit clone --branch 1.0.0 git@github.com:mattmezza/todo.git \u0026\u0026 source todo/todo.sh \n```\n\nUsage\n===\n\nWhat follows is the output of `todo help`, accessible at any time.\n\n```\nUsage:\n  todo [CMD] [WHAT] [WHEN]\n\nCMD can be:\n  'add|a' to add element to list\n  'remove|rm' to remove an element from a list\n  'view|v' to print the list on stdout\n  'left|l' to print the items left to do for WHEN\n  'did' to print the items already did for WHEN\n  'done|d' or undone|u to mark or unmark the item as done\n  'carry-on|co' moves yesterday's undone items to today's list\n  'push' moves today's undone items to tomorrow's list\n  'help|h' prints this message\nIf no command is passed, 'view' is assumed.\n\nWHEN can be:\n  today|t\n  tomorrow|tomo|tm\n  yesterday|y\n  week|w\n  next-week|nw\n  last-week|lw\n  a temporal interaval referred to today's date (e.g. +2d, -2d etc...).\nWhen CMD is 'view', it can also be a string matching the format '%Y-%m-%d' to list all the items in different days. If no WHEN is passed, 'today' is assumed.\n\nExamples:\n$ todo add 'Buy milk'\n$ todo rm 'Buy milk'\n$ todo view tomorrow\n$ todo view 2019-11\n$ todo view week\n$ todo left today\n$ todo did yesterday\n$ todo done 'Buy milk' yesterday\n$ todo undone|u 'Buy milk' yesterday\n$ todo carry-on\n$ todo push\n```\n\n#### Note on `week`\n\nA week is to be intended from **Monday** to **Sunday**.\n\n#### todo carry-on\n\nThis command takes all the items for yesterday that are not marked as done, and carries them over to today's todo list (I tend to ask too much from myself).\n\n#### todo push\n\nThis command takes all the items for today that are not marked as done, and carries them over to tomorrow's todo list (I am a bloody procrastinator).\n\n\nDevelopment\n===\n\nDeveloping `todo` is quite easy. Clone the repo and start editing the `todo.sh` file. You can always source your verions and test it in your shell.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattmezza%2Ftodo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmattmezza%2Ftodo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattmezza%2Ftodo/lists"}