Code Monkey home page Code Monkey logo

ultralist's Introduction

Ultralist

Simple task management for tech folks.

Actions Status

Ultralist is a task management system for technical people. It is command-line component that is very fast and stays out of the way.

Ultralist is based off of the Getting Things Done system, and is centered around the following concepts:

  • due dates
  • projects and contexts
  • statuses
  • task recurrence

The CLI is fast, powerful and intuitive. It will also always be open source.

Documentation

All of Ultralist's documentation is available on the Ultralist website.

Ultralist Pro

You can optionally combine the Ultralist CLI with Ultralist Pro. Doing so adds the following benefits:

  • Easily keep CLI lists in sync across multiple computers.
  • Manage your list with a slick web app.
  • Use the Ultralist mobile apps.
  • Use the Slack integration. Add + manage tasks directly from Slack.
  • Use our robust API to enable more complex workflows.

Ultralist Pro provides a superior task management experience to Todoist, Any.do etc. The command-line will app always be first and foremost.

Is it good?

Yes. Yes it is.

Installation

  • Mac OS: Run brew install ultralist. (Or port install ultralist if you are using MacPorts.)
  • Arch Linux: May be installed from AUR ultralist
  • FreeBSD: Run pkg install ultralist or cd /usr/ports/deskutils/ultralist && make install clean
  • Other systems: Get the correct ultralist binary from the releases page.
  • If you have Golang installed: Run go get github.com/ultralist/ultralist.

Then, follow the quick start in the docs to quickly get up and running.

How is this different from todo.txt, Taskwarrior, etc?

todo.txt is great. But it didn't work well for my needs.

Here's how ultralist compares specifically to todo.txt:

  1. Due dates. they are a core concept of ultralist but not todo.txt.
  2. Synchronizing. Syncing is built into the CLI using the ultralist.io service.
  3. Active development. the ultralist CLI is under active development, whereas todo.txt's CLI is not.

Taskwarrior is a similar system, however it is less intuitive and not maintained.

Author

Please send complaints, complements, rants, etc to Grant Ammons

License

Ultralist is open source, and uses the MIT license.

ultralist's People

Contributors

asm0dey avatar atkodev avatar bunchhieng avatar dawidd6 avatar gammons avatar gildev avatar goto1134 avatar herbygillot avatar ingorichter avatar initrd avatar koobs avatar medicalwei avatar mikezter avatar nonerkao avatar rdumont avatar strogiyotec avatar stuartskelton avatar tcassaert avatar timorunge avatar whoshuu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ultralist's Issues

Running todolist in any directories.

I've seen the following message when I tried to use todolist in the directory not initialized.

No todo file found!
Initialize a new todo repo by running 'todo init'

I think it's more comfortable if we could use it in any directories.
Can I make a PR for this feature?

parsing time "Invalid date" as "2006-01-02"

parsing time "Invalid date" as "2006-01-02": cannot parse "Invalid date" as "2006"
This may due to the corruption of .todos.json file.

This error pops up when I try to list my tasks (todolist list, todolist list by project, todolist list by context).

It started to happen after using the web version (opened with todolist web), maybe it could be cause by manipulating both the web version and the CLI at the same time, it seems that some action in the web version corrupted the .todos.json files.

Web version is also not working (it doesn't let you add tasks nor check them as completed), but at least it is displaying (I think) all of the tasks.

Great software, by the way ๐Ÿ‘

EDIT: I revised the problem and updated the issue.
EDIT: Examining the .todos.json file, it seems that one of the events has an "Invalid date" in the "due" property, that was expected, but also, the task that has this value also has a period: "." in it, could this has something to do with the error? I think I have added the task, and after manipulating it (by changing date from web interface) it crashed. After manually repairing the .todos.json file, now everything is working fine.

Add tasks directory option

I just started using the app, and I like it so far.

However, the very big problem is that tasks are stored only in one directory. If I move to another directory and try to list my tasks, what I get is:

No todo file found!
Initialize a new todo repo by running 'todo init'

 all

I want to be able to manage my tasks no matter in which directory I am.
The simple solution is to add a possibility to run the app with and option like --task-dir so I can define a location where all of my tasks are.

Then, I'd just create an alias to always run the app in a way like: todo --task-dir ~/tasks.

strikethrough completed tasks

when listing todos, if one have a long list of todos as I have, the space between the brackets (todos state) and the todo description makes it difficult to see which todo is done and which is not yet done.

One easy solution (and common ui pattern) would be to strikethrough the task description.

The ANSI/VT100 terminals and terminal emulators are not just able to display black and white or color text; they can display formatted texts thanks to escape sequences.

The following echo -e "\e[9mstrikethrough\e[0m"would display the text "strikethrough" well... striked through.

Building from current Dockerfile on Ubuntu 16.04 produces error.

When on Xubuntu 16.04 64-bit I run docker build -t todolist . I get at the end:

Step 8 : RUN go install github.com/gammons/todolist
 ---> Running in 8d7e755c5024
# github.com/gammons/todolist
/usr/lib/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/lib/gcc/x86_64-alpine-linux-musl/6.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find Scrt1.o: No such file or directory
/usr/lib/gcc/x86_64-alpine-linux-musl/6.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find crti.o: No such file or directory
/usr/lib/gcc/x86_64-alpine-linux-musl/6.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find -lpthread
/usr/lib/gcc/x86_64-alpine-linux-musl/6.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find -lssp_nonshared
collect2: error: ld returned 1 exit status

Allow deleting multiple todos at once

Been having this issue where I have many archived todos (say 10). Would be nice to be able to do one of these:

todo d 1,2,3,4
todo d 1..4

Otherwise it's a wee bit repetitive. Great work on this, finding it very useful!

Garbled on Windows CMD

As shown above, there are some issues with Win CMD.

There might be a useful issue that can help solve this problem. sirupsen/logrus#496

By the way, I only can get readable output on Git Bash with no color output.

allow for editing of a todo from the command line

This would be nice. If we could figure out a way to support both subject editing and due date editing (which is currently supported) Maybe a regex to test?

todolist e 49 "make a new edit due tom"
todolist e 49 due apr 10

Consider using gometalinter.

Right now running gometalinter produces ~170 potential warnings. Some of them can be ignored (like exported symbols) others, however, cannot (like ignoring errors). I don't have sufficient knowledge of this project to judge where errors could be safely ignored and where they couldn't, so I'm asking you for advice.

Thanks.

Tasks entered via browser not being numbered in console

When I add tasks via the web (after issuing todolist web), and return to the command line and enter: todolist list, the tasks that were added via the browser are not numbered. Instead they all have a value of 0. As a result, if you enter todolist d 0, it will just delete the highest task in the list with a 0 next to it.

screenshot

Refactoring the command-line flags

Currently, we parse the cmd arguments manually and arbitrarily, which makes enhancements such as #59 difficult or containing too much duplicated work.

While the official flags package treats cmd args good, it implements Unix convention rather than todolist's sub-command style. How about applying cmd packages such as urfave/cli or fps13/cobra? Or does this incur unnecessary complexity?

Remove due date

Hi,

I have been working with this for a little while now, and it is great. Loving it, thanks for the great work.

A small enhancement I thought of is to be able to remove a due date, not just edit it, but completely remove a due date from a task. I have been rereading the docs but could figure out a way of doing this besides removing the task and recreating it.

Hope you like this idea.

Ubuntu use

Can you please indicate me how to install it in ubuntu system ? by the way, I think that the documentation should be improved.

Thanks

Question about todolist web

Hi,

First, I love your tool, thanks :)

When I ran

todolist web

I can go on the 7890 port of my server but I only got a circle turning around. How can I debug it or understand what I miss ?

Thanks.

Unable to access remotely with web interface

Using the dockerfile to create a container. Works well when accessing browser locally. Does not work when accessing todo list web service from another machine (not localhost). Appears links on the page are always generated with localhost as host name. When I attempt to access remotely, the page is attempting to access http://localhost:7890/todos instead of http://[hostname]:7890/todos. The page displays an error stating "A backend failure occurred". http://[hostname]:7890/todos does provide proper json output.

Empty web view

Hello,

It seems the web view does not work anymore :
The external resources returns a 404 error code

Empty web view

Or maybe I misunderstood something ?

Port forwarding rendering default .todos.json

Hey there,

Replication steps:

  • Add some todos, launch local web server
  • Verify locally you can see your new custom todos
  • ngrok http PORT and open new live URL
  • You will see a default list of .todos.json here, not the user generated todos

I also tried with other port forwarding services https://forwardhq.com/ etc and same result.

Figure I can leave port forwarding running on my local machine to use this on my phone, but need to first figure out how to get user generated todos rendering. :)

agenda should only include unfinished tasks

Agenda is helpful to show what's next on your todo list. Unfortunately, tasks that are already done are included in the list.

It would be great to have agenda only show unfinished tasks. I don't think there is any value in looking at already finished tasks on the agenda.

Any thoughts on this?

web view shows demo todo list

running the web view appears to display the demo todo list instead of the .todos.json file in the current directory. restarts of the web view displays a new demo.

Preferred way of syncing your todolist across machines?

Looking through the website and repo, I can't seem to find any information on the "preferred" way to sync todos across multiple machines. Since I use multiple machines on a daily basis, its pretty critical that I'm able to do this.

I considered symlinking the json file into dropbox or such, but that seems hacky.

I'm just wondering if this was something that you had considered so far.

add a `completed` subcommand

I notice that I tend to archive completed todos immediately. It would be nice to look back at what was checked off today.

todolist l completed today
todolist l completed this week

Use "Hi" Colors

I just tried your tool on windows and it works great, but the readability of blue text is really bad. You should consider usage of the "Hi" variants of the colors. The readability gets improved a lot by that.

No recurring support?

It looks awesome but I cannot find support for recurring tasks. Do you have a plan to support it? I would be happy if it can tell me to pull rubbish bins to roadside every Thursday.

The policy of message output

No matter for success or error message, fmt.Println is used in most of the cases, which is normal. But there are exceptions like the parseArbitraryDateWithYear function in parser.go, which calls fmt.Errorf with panic function to show the date is not parsable.

IMHO, it is not necessary to apply panic. A user who encounters the panic most likely just mistypes a todo command, so there is no need to show the user the runtime stack and all the dumps.

Question: How do you get colors to work?

Problem

I'm using todolist on Windows 10 with Git bash's terminal and the colors aren't currently showing up. The colors do appear on PowerShell but not on the bash-esk terminal. Simply wanted to check if there is anything specific I need to do for colors. (Notice other things like ls --color=auto do show on the terminal in addition to the colored prompt I display below)

todolist-color-problem

Sync with multiple devices and backup to cloud

Hey, nice project! I just have few questions at first glance:

  • How can I backup my TODOs to the cloud, i.e. to the Google Drive, Dropbox, etc?
  • Is it possible to sync my TODO list with multiple devices? I mean, I have a few laptops where I want to have the same TODO list. If I add more TODOs on one laptop - it automatically sync with the second one and I can see added TODOs on the second laptop too.

add note to todo

It would be cool to have functionality to add notes to a todo.

t an 56 https://3.basecamp.com/3650215/buckets/2602510/messages/504658001
note added to todo 56.
t an 56 This is dependent on @bob's work on the other ticket.
note added to todo 56.

t n 56
Notes for todo 56:
* This is dependent on @bob's work on the other ticket.
* https://3.basecamp.com/3650215/buckets/2602510/messages/504658001

Questions:

  • Would this be useful?
  • How to edit/delete individual notes?
  • Do we surface these notes as part of listing todos?

Visual indication for todo with note

When using todolist l , it would be nice to indicate which todo entries have a note attached to it.
Maybe something like a * to indicate that the todo as more information than what is actually shown.

Add completion date to todo_item

Currently the todo_item has a completed field. It would be beneficial for reporting reasons, to have a completed_date or completed_timestamp as part of the todo_item.

Proposal: Adding a New Feature to Expand Existing Todos

According to the GTD principles, one has to keep clarifying his/her goals/todos, such that each todo is very clear to understand. However, sometimes it is hard to organize the actionable items in one step.

With this new feature, people can now record some brief todos at first, and then divide them into more do-able todos.

The introduced syntax is as follows:

todolist expand ID +project: todo1[ ,todo2 ...]
todolist ex ID +project: todo1[ ,todo2 ...]

Once a legal expanding request is processed, the todos are added, and the todo with specified ID is deleted.

Help wanted: Implement using ~/.todos.json by default

Per the comments of multiple users, I think we should implement this workflow:

  1. when running todolist, see if a .todos.json exists in the current working directory.
  2. If yes, use that .todos.json.
  3. If no, use ~/.todos.json.

Also, add documentation to the gh-pages branch to let users know this is how the app works.

PRs welcome!

Having a done keyword, to auto complete an added task

So now that notes have been added, I have started to use the todolist to log things I have done and involves me doing:

t a fixed x server
t c [id]

It would be nice to have this wrapped into one command:

t done did some work on x server

so under the hood it would auto complete the item

Feature Request: Sync across devices

A command line gtd todo manager is exactly the sort of thing I'm looking for but would it be possible to add syncing your tasks feature for those who have to work on multiple devices like me?

Support pure text and json format, via json in comment and md5 check.

Feature Request / Proposal / Pony.

First cool project, this is clearly a feature pony but thought I would share.
Would be nice if I was still allowed to edit the file like a todo.md in text editor of choice.

Proposal to maintain the speed and ease of the json data structure would be to put the json datastructure in a comment at the bottom of the markdown file as well as an md5 hash of the text above the comment. On read it checks the md5 and updates the json if necessary, on write it updates the text and md5. In the majority of cases the md5 is the same so no reparsing necessary and it maintains its speediness. And it gains the added benefit of being renderable with markdown.

# Todo
- [ ] My todo @work +project due tomorrow
- [ ] My other todo @home

# Archive
- [x] Already done @home

<!-- md5:0b34db8fb67cff70c882618d405f0b3f -->
<!-- [{"id":1,"subject":"My todo @work +project","projects":["project"],"contexts":["work"],"due":"2016-09-22","completed":false,"archived":false},{"id":2,"subject":"My other todo @home","projects":[],"contexts":["home"],"due":"","completed":false,"archived":false}] -->

new "ln" option weird spacing

screenshot from 2017-09-27 11-10-15
It looks like when the 'ln' option is used to show all todos and their notes, the date/task field are being pushed to the right to make room for the note fields, even though those are on a separate line.

I would expect the main todo line (with the number, [ ] status and date) to be formatted the same whether I'm viewing the notes of a task or not.

p.s. even with this, I'm loving the notes!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.