{"id":22707480,"url":"https://github.com/aonemd/nin","last_synced_at":"2025-04-13T12:31:33.842Z","repository":{"id":56885576,"uuid":"160859454","full_name":"aonemd/nin","owner":"aonemd","description":"A simple, full-featured command line todo app","archived":false,"fork":false,"pushed_at":"2022-12-14T23:35:07.000Z","size":1323,"stargazers_count":27,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-27T03:35:12.706Z","etag":null,"topics":["app","cli","gem","ruby","todo"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/aonemd.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}},"created_at":"2018-12-07T18:11:44.000Z","updated_at":"2024-06-16T08:12:44.000Z","dependencies_parsed_at":"2023-01-29T01:31:31.467Z","dependency_job_id":null,"html_url":"https://github.com/aonemd/nin","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aonemd%2Fnin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aonemd%2Fnin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aonemd%2Fnin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aonemd%2Fnin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aonemd","download_url":"https://codeload.github.com/aonemd/nin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248714357,"owners_count":21149867,"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":["app","cli","gem","ruby","todo"],"created_at":"2024-12-10T10:13:04.969Z","updated_at":"2025-04-13T12:31:33.798Z","avatar_url":"https://github.com/aonemd.png","language":"Ruby","readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e\n    nin\n  \u003c/h1\u003e\n\n  A simple, full-featured command line todo app\n\n  ![nin demo GIF](/demo.gif)\n\u003c/div\u003e\n\n[![Gem Version](https://badge.fury.io/rb/nin.svg)](https://badge.fury.io/rb/nin)\n[![Build Status](https://travis-ci.com/aonemd/nin.svg?branch=master)](https://travis-ci.com/aonemd/nin)\n\n## Features\n\n- Simple, intuitive, and easy-to-use CLI\n- Currently supports: listing, adding, editing, deleting, completing,\n  archiving, prioritizing, and analyzing todo items\n- Integration and synchronization with [Todoist](https://todoist.com/) (With potential integration with more platforms)\n- Smart colored output\n- Uses YAML for storage by default (There's the option to add other stores but no configuration for it, yet)\n- Modular code covered by unit tests\n\n## Installation\n\n```bash\ngem install nin\n```\n\n## Usage\n\n```console\nNAME:\n        nin - a simple, full-featured command line todo app\n\nUSAGE:\n        nin COMMAND [arguments...]\n\nCOMMANDS:\n        l  | list          [a|l]      List all unarchived todos. Pass optional argument `a` to list all todos or `l` to list local todos only\n        a  | add           desc       Add a todo. Prepend due date by a @. Prepend each tag by a \\#\n        e  | edit          id desc    Edit a todo. Prepend due date by a @. Prepend each tag by a \\#\n        p  | prioritize    id step    Prioritize a todo by either a positive or negative step within its date group\n        c  | complete      id(s)      Un/complete todo(s)\n        ac | archive       id(s)|c    Un/archive todo(s) or pass `c` to archive all completed items\n        d  | delete        id(s)      Delete todo(s)\n        gc | garbage                  Delete all archived todos. Resets item ids as a side effect\n        s  | analyze                  Analyze tasks and print statistics\n        i  | repl                     Open nin in REPL mode\n        o  | open                     Open todo file in $EDITOR\n        v  | version                  Print current version of nin\n```\n\n- Print the usage instructions by calling `nin` without commands or arguments\n- Each command has a short and a long name, for example, `l` and `list`\n- You can utilize the power of the CLI by using shell commands and tools to\n  help you do various tasks. For example, run `nin list | grep school` to\n  filter items tagged as school\n- For adding a due date to an item, prefix the date by an `@`. If no date is\n  passed, the default is always the date of the current day\n- For adding tags, you need to prefix a `#` by a `\\` (e.g., `\\#`) in order for\n  the shell to interpret it as an actual `#`. Please note that you don't need\n  to do this in the REPL mode\n- The `edit` command edits the description of an item. If a date is passed, its\n  date will be updated. If one or more tags are passed, they will be added to\n  that item's tag list\n- Commands `complete`, `archive`, and `delete` can update multiple items at\n  once by passing multiple id's as arguments\n- The `prioritize` command can take a positive or a negative weight as a step\n  to either prioritize the item up or down, respectively. The step is always\n  bound to the smallest and largest id in the current items date group.  For\n  example, passing a 1 as as step prioritizes the item by one item up and\n  passing -2 prioritizes the item by 2 items down\n- REPL (interactive) mode is where you can pass commands and arguments without\n  the need to call `nin` every time and can be triggered by calling `nin i` or\n  `nin repl`\n\n## Integration\n\n### Todoist\n\nFor Todoist integration, two environment variables must be set:\n  - `NIN_INTEGRATION_CLIENT=todoist`\n  - `NIN_INTEGRATION_CLIENT_TOKEN=token`. Token can be found in your [integration settings page](https://todoist.com/prefs/integrations)\n  - `NIN_INTEGRATION_TIMEOUT=interval_in_seconds`. A timeout interval for when the synchronization times out. Defaults to 60 seconds\n\n## Development\n\n- Install a recent version of `Ruby` and `Bundler`\n- Run `bundle install` to install the dependencies\n- Run `bundle exec rake` to run the test suite\n- Run `gem build nin.gemspec` to build a new version\n- To push a new version to RubyGems, run `gem push nin-VERSION-NUMBER.gem`\n\n## Why\n\nWhy write another todo app? I like to use the terminal for everything and I've\nbeen using a markdown file to manage my todo list. I looked for something\nsimple and I found [Todo.rb](https://gist.github.com/mattsears/1259080) which\n`nin` started as a spinoff from. However, I needed to add some more features. I\nthen found [Todolist](http://todolist.site/) which I took some inspiration from\nbut kept the CLI as simple as it is in Todo.rb. I also didn't like that\ntodolist uses JSON to store the todo items because I wanted to view the file on\nmy phone and I needed something more readable.\n\n## Contribution\n\nContributions are welcome. If you find a bug or want to add a new feature,\nplease open an issue or send a pull request.\n\n## License\n\nSee [LICENSE](https://github.com/aonemd/nin/blob/master/LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faonemd%2Fnin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faonemd%2Fnin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faonemd%2Fnin/lists"}