
Jarvis – A Personal Assistant for Linux - sukeesh
https://github.com/sukeesh/Jarvis
======
orf
I really dislike writing comments like this one and I almost never do, but...
this is terrible. It's an amateur project at best that's just a big if/else
loop[1] with some very poorly coded[2][3][4] implementations of things.

I get that it might be a cool learning exercise, but if you're in the terminal
already what is the value of typing "what time is it" instead of 'date' or
"search for a string in file" instead of 'grep'?

1\.
[https://github.com/sukeesh/Jarvis/blob/master/main.py#L20-L8...](https://github.com/sukeesh/Jarvis/blob/master/main.py#L20-L83)

2\.
[https://github.com/sukeesh/Jarvis/blob/master/evaluator.py#L...](https://github.com/sukeesh/Jarvis/blob/master/evaluator.py#L10)

3\.
[https://github.com/sukeesh/Jarvis/blob/master/picshow.py#L12](https://github.com/sukeesh/Jarvis/blob/master/picshow.py#L12)

4\.
[https://github.com/sukeesh/Jarvis/blob/master/todo.py#L38-L7...](https://github.com/sukeesh/Jarvis/blob/master/todo.py#L38-L78)

~~~
JamilD
It's interesting that this got so many upvotes so quickly, despite it being
something similar to what (I'm sure) most of us wrote when we first started
learning about computers and programming.

Maybe there's just a demand for a true, text-input, multi-purpose natural
language personal assistant on the desktop.

~~~
ehsankia
I'm guessing (hoping) most people didn't even actually look at what it was?
Maybe they assumed it was related / a remake of Zuckerberg's Jarvis? [1]

As for demand for it, I'm not sure. Allo tried it, there's also a big wave of
chat bots starting to get close to it, but I personally still find it it's
simple to just do it myself if I'm already on the computer. At least with
voice you can do it hands free. As the person above said, why not just use
date instead of "what time is it?"

[1] [https://www.facebook.com/notes/mark-zuckerberg/building-
jarv...](https://www.facebook.com/notes/mark-zuckerberg/building-
jarvis/10154361492931634/)

~~~
rootlocus
> As the person above said, why not just use date instead of "what time is
> it?"

Then what would be the difference between using the assistant or using the
CLI?

------
loop22
Appears to have been based on this tutorial: [https://pythonspot.com/personal-
assistant-jarvis-in-python/](https://pythonspot.com/personal-assistant-jarvis-
in-python/)

~~~
ben_jones
Seems a fair bit of it was copy pasted without attribution or consent.
Normally this wouldn't be a biggie for a (presumably) casual side project, but
intellectual property rights are listed explicitly [1] for the website under
the "Terms of Use" tab displayed prominently at the top of the page.

I still could never blame someone for showing a little bit of work, or hell
even for self-promotion when you're just getting started. But if your gonna
copy-pasta you might as well leave the code comments explaining things a
little bit!

[1]:[https://pythonspot.com/en/terms-of-use/](https://pythonspot.com/en/terms-
of-use/)

~~~
justbaker
Wow. This even got that many upvotes

------
dallamaneni
Do not mean to discourage but the commit messages drove me nuts:
[https://github.com/sukeesh/Jarvis/commits/master](https://github.com/sukeesh/Jarvis/commits/master)

Long time ago, i was using a similar thing called betty (Not sure if it is
still working):
[https://github.com/pickhardt/betty](https://github.com/pickhardt/betty)

------
trevyn
N.B.: This is not Mark Zuckerberg's Jarvis.

~~~
saycheese
Jarvis is not really Zucker's trademark either:

[https://en.m.wikipedia.org/wiki/Edwin_Jarvis](https://en.m.wikipedia.org/wiki/Edwin_Jarvis)

Side note: Just in case it's not clear to others, the "N.B." notation means
"nota bene" (Latin) or "note well" (English) - and it is used to emphasize an
important point.

------
venti
Another similar project is Mycroft: [https://mycroft.ai/get-
mycroft/](https://mycroft.ai/get-mycroft/)

~~~
H4CK3RM4N
Mycroft seems much more capable as an assistant.

------
keeler
It's 283.514° Fahrenheit in Roorkee? :P

------
hrodriguez
This has already been flagged for some unstated reason...

Unlike come of the other comments, as a non-programmer, I really like this.
The code seems so easy to follow and tweak. I'm already getting some ideas on
how I can expand on this in terms of coupling the _easy english syntax_ to the
underlying linux commands in order to display both outputs (so that newbie
command-line users see what's happening behind the scenes). A few other things
pop to mind but need to spend some time on the code.

In fact, I think an app like this could probably be even more useful with
additional comments embedded in the source - as a learning tool. It's this
kind of easy to follow code that gets people excited about programming
(especially when they can tweak it right away). It's a program that works very
well for what it does, doesn't need documentation except for commenting the
code.

The newws.py, for example, is a little difficult to follow right away (and
modify for entry-level programmers, non-programmers like myself). Commenting
here would have been nice:)

I personally would love to see more apps/code like this but maybe HN isn't the
place for this:-( I understand why, it's not a criticism on any deficiency
here - as the audience is much more advanced.

~~~
JamilD
Another commenter mentioned that much of the code was taken from a tutorial
[0], so it might be worth checking that out :) It goes step by step with
commented code and explanations.

[0] [https://pythonspot.com/personal-assistant-jarvis-in-
python/](https://pythonspot.com/personal-assistant-jarvis-in-python/)

~~~
hrodriguez
Thanks for the link. I looked over the code on the main page only (did not
delve deeper) and honestly... it's like night and day. The code by sukeesh is
as easy to follow and modify as a simple scripting language. Truly a work of
art:)

I've come across similar code that I've been able to immediately cannibalize
for personal use on my system. The last time was a script that displayed
colored quotes whenever I opened the terminal. Learned an awful lot about
coloring text output, randomizing the text and a bit about arrays because it
was easy to follow and the app was complete and useful to me. As opposed to
learning by snippets.

The tutorial code at pythonspot.com... not terribly friendly I'm afraid
(without a detailed tutorial):-( I can understand how an advanced programmer
can see logical similarities but the actual code itself scared me away.lol
Sorta' like writing the same program: one in rexx and another in bash.

------
mumphster
How is this supposed to be installed? Or did new version of python change up
how pip uses requirements.txt

[https://github.com/sukeesh/Jarvis/blob/master/requirements.t...](https://github.com/sukeesh/Jarvis/blob/master/requirements.txt)

~~~
xrisk
That's not how a requirements.txt file is written [1], but I suppose that the
author intends you to run those commands in your shell.

[1]:
[https://pip.pypa.io/en/stable/reference/pip_install/#require...](https://pip.pypa.io/en/stable/reference/pip_install/#requirements-
file-format)

------
sispheor
Another project: [https://kalliope-project.github.io/](https://kalliope-
project.github.io/)

This one is multilangue and customizable.

------
news_to_me
This looks super cool! How hard is it to run as a service on startup? I see
code for speech interface - can it be run with a "wake word"?

~~~
godelski
(I'm not OP) Running on startup is just like any on linux.

You may be interested in Jasper[1]. You can use many different TTS and STT
systems. API is also really easy to use.

[1] [https://jasperproject.github.io/](https://jasperproject.github.io/)

------
wodencafe
That's pretty cool, good job!

