Autocomplete with Quick Add Magic

Hello. I would like to know if there is any plan to implement an autocomplete function in Vikunja’s Quick Add Magic. When there’s a lot of labels, especially long ones, it’s hard to remember exactly how are they written. The same with namespaces or users. Hope it’s not hard to implement.

Thanks for your work.


There’s been thoughts and discussion about it but nothing concrete yet. It actually is not that easy to implement.

@dpschen What do you think?

It’s not hard to implement but it takes time. I think we should put it on the list =)

1 Like

From the user side, this together with dynamic dates for filters, is the number one request I get from my colleagues (myself) included :grinning:

1 Like

Since dynamic date for filters has been implemented (thank you so much @kolaente !), I’ll have to bump this again sorry :sweat_smile:
This feature is really useful to get a visual feedback on whether
Vikunja understands the NLP date and also for quicker task creation for people who have a lot of list and tags.

I’ve recorded a quick video exemplifying how this is done in Todoist:

Sorry @dpschen I also forgot to tag you in my reply above !

I would agree this is really needed. Autocomplete of dates I can see being harder to implement but autocomplete of labels feels absolutely missing right now.

1 Like

Bumping this one.

I’m moving from Todoist to Vikunja, and some suggestions while adding items really would improve the workflow.

Since the last time I checked here I stumbled upon some new info regarding recognition of dates and date ranges. So this is a bit off-topic (since the thread is more about labels, namespaces, …).

So regarding date recognition: In general it’s really hard to do this well. The best known way is to use NLP for which there are different options. This is generally a hard thing to do and it depends on the language. There are really good server side libraries available but we would like to be able to do this offline as well. This means that the recognition needs to happen in a library within a reasonable size limit. While not perfect I think chrono might fit for our purpose. It doesn’t support all languages that Vikunja does so it is a compromise. Speaking of the latter there is also the compromise library. It’s really an amazing piece of software. Sadly the multi lange support is even more limited (e.g. de-compromise just began). There are a few other packages but I couldn’t find any better that suits our purpose.

It would be interesting to know if the Todoist web app is able to recognise dates when offline @bolgrov (not the native / mobile app, because there file size isn’t such a big problem). I would expect them to use something like spaCy which afaik can’t be used only with a browser. With the massive progress of machine learning in the recent years / months there might be even better solutions lurking inside huggingface models. Even if true they will probably be way to large to use in the frontend only.

CC: @kolaente

I once peeked into the todoist android app and found a bunch of CSV files with regexes for the different formats in different languages. I suppose they do something similar in the web app.

Feels like this conversation went off the rails slightly. The MVP for this is to autocomplete labels based on labels that already exist. Type “*” and it auto suggests based on existing labels. Please don’t sacrifice this really important but basic feature for 2 years of thinking on how to solve date recognition.


At this point, I think even just having a drop down of existing tags showing here would help…


Doesn’t the search work?

It sure does :slight_smile: But my suggestion is to make it more efficient from a UX perspective. I hate to draw parallels to todoist but they have the UX correct here. Type @ and it shows a list of all tags, allowing the user to select from the dropdown. Having to remember and then start typing the name of the tag before it is suggested is additional friction to the UX.

The suggestion here is two tweaks to current functionality:

  1. When creating an item, type “*” and it displays a list of existing labels, allowing the user to select.
  2. When editing an existing item, when clicking in the fields box, same as above - show a list of existing labels.

I personally would also not use * to denote tags/labels. In almost all systems, * meals something along the lines of “wildcard”. It’s an odd choice when @ or # are standards users typically expect.


1 Like

That makes a lot of sense. Thank you for clarifying. I’ve added an item about this to the roadmap.

Did you know you can change the quick add magic symbols to use the ones from Todoist?