
Security News
Meet Socket at Black Hat and DEF CON 2025 in Las Vegas
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
This is still an early beta version of Assistant. It's not yet ready for production. But it's already pretty good at what it does.
❯ assistant
Hello! It's good to see you again. I'm here to assist you. What can I help you with today?
(venv) waser@Destinee ~
❯ Can you introduce yourself?
Hello! I'm Assistant, a sentient artificial intelligence. I'm here to assist you.
(venv) waser@Destinee ~
❯ Where are we?
ℹ Executing shell command: echo $PWD
/home/waser
You are currently in your home directory.
(venv) waser@Destinee ~
❯ Change directory to Projets/Assistant/src3 please.
ℹ Executing shell command: cd ~/Projets/Assistant/src3
You are now in the directory '/home/waser/Projets/Assistant/src3'. If you need
any further assistance or have any other questions, feel free to ask.
(venv) waser@Destinee ~/Projets/Assistant/src3 main
❯ can you count how many files there are in the dir?
ℹ Executing shell command: ls -l | wc -l
20
Based on your input, I have executed the shell command "ls | wc -l" to count the
number of files in the current directory. The output shows that there are 20
files in the directory.
(venv) waser@Destinee ~/Projets/Assistant/src3 main
❯ Now can you count the total number of words in ./README.md please?
ℹ Executing shell command: wc -w < ./README.md
1235
The shell command to count the total number of words in the file "./README.md"
was executed successfully, and the result is 1235 words.
(venv) waser@Destinee ~/Projets/Assistant/src3 main
❯ you can quit now.
ℹ Exiting shell...
Goodbye! I'm here to assist you whenever you need me. Have a great day!
You can talk with Assistant without installing anything on HugginChat!
Tools are availible only localy.
You need python 3
with the following requirements:
Python 3.x
To install Assistant
use pip
:
pip install assistant
Using an arch based distro. (Availible on the AUR and pre-built on Singularity)
pacman -S python-assistant
From source:
pip install -U git+https://gitlab.com/waser-technologies/technologies/assistant.git
From local source
git clone https://gitlab.com/waser-technologies/technologies/assistant.git ./assistant
cd assistant
pip install -U .
To talk with Assistant, you need to load the service up first.
cp ./assistant.service.example /usr/usr/lib/systemd/user/assistant.service
systemctl --user enable --now assistant
(optional) enable listen for assistant
cp ./assistant.listen.service.example /usr/usr/lib/systemd/user/assistant.listen.service
systemctl --user enable --now listen assistant.listen
(optional) enable speech for assistant (using say
)
systemctl --user enable --now speak
Or manually from python:
python -m assistant.as_service & # Assistance is a service #
sleep 60 && # wait for the models to load #
# Assistant is up now #
# The rest is optional #
# let assistant speak when it has something to say #
say && sleep 10 &
python -m listen.Wav2Vec.as_service &
# let assistant listen when you speak #
python -m assistant.listen
Once the service is up and running, you can say anything to Assistant
.
Just call Assistant
like any other shell.
❯ assistant --help
usage: assistant [-h] [-V] [-c COMMAND] [-i] [-l] [--rc RC [RC ...]] [--no-rc]
[--no-script-cache] [--cache-everything] [-D ITEM]
[--shell-type {b,best,d,dumb,ptk,ptk1,ptk2,prompt-toolkit,prompt_toolkit,prompt-toolkit1,prompt-toolkit2,prompt-toolkit3,prompt_toolkit3,ptk3,rand,random,rl,readline}]
[--timings]
[script-file] ...
Assistant: a clever shell implementation
positional arguments:
script-file If present, execute the script in script-file or (if
not present) execute as a command and exit.
args Additional arguments to the script (or command)
specified by script-file.
optional arguments:
-h, --help Show help and exit.
-V, --version Show version information and exit.
-c COMMAND Run a single command and exit.
-i, --interactive Force running in interactive mode.
-l, --login Run as a login shell.
--rc RC [RC ...] RC files to load.
--no-rc Do not load any rc files.
--no-script-cache Do not cache scripts as they are run.
--cache-everything Use a cache, even for interactive commands.
-D ITEM Define an environment variable, in the form of
-DNAME=VAL. May be used many times.
--shell-type {b,best,d,dumb,ptk,ptk1,ptk2,prompt-toolkit,prompt_toolkit,prompt-toolkit1,prompt-toolkit2,prompt-toolkit3,prompt_toolkit3,ptk3,rand,random,rl,readline}
What kind of shell should be used. Possible options:
readline, prompt_toolkit, random. Warning! If set this
overrides $SHELL_TYPE variable.
--timings Prints timing information before the prompt is shown.
This is useful while tracking down performance issues
and investigating startup times.
❯ assistant Hi
Hey, how are you today?
❯ assistant -c "what time is it"
The current time is 1:35 p.m.
❯ assistant -i -l --no-rc --no-script-cache -DPATH="PATH:/share/assistant/"
❯ assistant script.nlp
The examples below are produced in interactive mode.
❯ echo Hello
Hello
❯ say Hello World # This requires say to be installed
Hello World
❯ Hi Assistant.
Hello! How can I assist you today?
❯ What is the current working directory?
ℹ Executing shell command: echo $PWD
/home/waser/Projets/Assistant/src3
You are currently in the directory '/home/waser/Projets/Assistant/src3'.
❯ Go in ~/Documents
ℹ Executing shell command: cd ~/Documents
You are now in the Documents directory.
❯ List the files in the current directory.
ℹ Executing shell command: ls
...
Here are the files in the Documents directory.
Using its tools, Assistant can get pretty meaningful answers to your queries.
❯ How many moons does Saturn have?
ℹ Searching the Web for: How many moons does Saturn have?
Saturn has 145 moons that we know of so far.
❯ How old is the universe?
ℹ Searching the Web for: how old is the universe
The universe is approximately 13.8 billion years old, but its exact age is
not yet clear. It was born 13.787 ± 0.020 billion years ago and has been expanding ever
since.
To exit the current session, you can type pretty much anything. As long as Assistant
can reasonnably understand your intent.
i.e. :
❯ exit
❯ Q
❯ :q
❯ quit
❯ stop()
❯ terminate
❯ This conversation is over.
❯ Stop this session.
Assistant can talk. Just install say
and authorize the system to speak. Make sure the service is running and Assistant should be able to connect to it.
assistant say Hello World and welcome to everyone.
Assistant can also understand when you talk. Just install listen
and authorize the system to listen. Make sure listen.service
, assistant.service
and assistant.listen.service
are enabled for Assistant to be able to pick up what you say.
By default, neither the accoustic model nor the language model are ajusted for Assistant.
This is not recommended in beta!
You should be able to add the location of assistant
at the end of /etc/shells
. You'll then be able to set Assistant
as your default shell using chsh
.
sudo sh -c 'w=$(which assistant); echo $w >> /etc/shells'
chsh -s $(which assistant)
Log out and when you come back, Assistant
should be your default shell.
You like the projet and want to improve upon it?
Checkout CONTRIBUTING.md
to see how you might be able to help.
Thanks to all the projects that make this possible:
FAQs
Your very own Assistant. Because you deserve it.
We found that assistant demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.