-
-
Notifications
You must be signed in to change notification settings - Fork 10
2. Using Navi
Welcome to the primer on how to use Navi. We will only be covering the basics here.
Note
As of version 0.6.6 Navi has an built in settings menu / cli app!
To access Navi's settings simply launch the Navi | CLI and type settings
You will be greeted with something similar to the following:
Current Settings:
username: YourUserName
navi_name: Navi
use_local_model: True
dont_check_for_updates: False
update_branch: main
Options:
[1] Update a setting
[2] Exit
Enter your choice:
Adjusting your settings is straight forward. Lets change Navi's Name:
Current Settings:
username: YourUserName
navi_name: Navi
use_local_model: False
dont_check_for_updates: False
update_branch: main
Options:
[1] Update a setting
[2] Exit
Enter your choice: 1
Enter the setting key to update: navi_name
Enter the new value for 'navi_name' (current: Navi): Ciel
Pressing enter will save the input and refresh the settings list.
On exit you will see the changes reflected.
Note
One of the nifty features of v0.6.6 is that chips can also include settings that will show up in this menu!
Using Navi is not very hard. Simply start it up and start typing.
Depending on context. Navi will either fire up the chat execution system
or provide a response based on what its being told.
So the responses will be very different between:
-
user> What is the most popular open source network scanner
and user> Can you nmap scan scanme.nmap.org
One will generate a response based on what Navi knows about nmap and the
other will actually execute nmap for you. We call this Chat Execution.
Chat execution is a feature we have wanted to add for a long time.
It basically allows Navi to use ML to determine if the user is looking for an answer or to do something.
Part of the reason this is so cool is because now Navi can assist on a system level without breaking the conversation.
Navi is coded with the ability to understand user context. What this means is if you start a prompt with can you Navi understands that you are most likely asking it to do something. Where as if you start a prompt with explain it inherently knows you are looking for information. There are multiple ways to getting Navi to do what you want her to.
Note
Mind you this is still running ML tech on the back end so it will not predict what you want 100% perfectly all the time.
Warning
Chat execution goes beyond just nmap scanning. It has full access to the command line.
Yes you can say to Navi Can you remove the contents of the /* directory
And it will ask you if you want to proceed

Caution
That being said: Be Mindful of what you ask it to do.
We (Saints Security Group LLC) claim no responsibility if you damage yours or someone else's system.
Do not FA&FO.
Should you also make a mistake, Navi has history scrolling built in. Meaning just like a normal CLI you can
access previously issued prompts by pressing the up arrow and you can make edits with right and left respectively.
This was a long requested feature we added to Navi v0.6.5
As of version 0.7.0 Navi has the ability to keep context in conversation.

Alex> memory -h
Parameter | Description
--------------------------------------------------
list | List all available sessions and indicate the active one
create <name> | Create a new session with the specified name
remove <name> | Remove a session with the specified name
set-default <name> | Set the default session
set-active <name> | Set the active session
-help | Display help information
-h | Display help information
Alex>
So as we can see from above we have a few things we can access in the memory system
Key Takeaways:
- We can list, create and remove memories
Note
You can think of memories almost like save data in video games.
- We can set the current memory file and even set a new default.
Note
We did it this way so if you are actively working on something with Navi you wont need to setup the memory file every time you start navi up.
Alex> memory list
Available Sessions:
KSSOB
* DEFAULT_SESSION (Active)
Alex> memory create github
Alex> memory list
Available Sessions:
KSSOB
* DEFAULT_SESSION (Active)
GITHUB
Alex> memory set-active github
Alex> memory list
Available Sessions:
KSSOB
DEFAULT_SESSION
* GITHUB (Active)
Alex> memory remove GITHUB
Alex> memory list
Available Sessions:
KSSOB
* DEFAULT_SESSION (Active)
Alex>
As we can see from the above, working with memory is simple and straight forward.
Important
If you remove the DEFAULT_SESSION memory it will simply clear it out but not remove it.
Another feature that has long been requested was the ability to query Navi's LLM right from the commandline
without needing to go into the full Navi CLI interface. using navi -q "prompt here with quotes" will allow you to do just that!

Put simply a chip is a custom script or application build for use with the Navi AI Interface.
Chips can be as simple as single script additions such as navi-nmap or going as extensive as navi-cryptex.
Note
By default all custom chips are installed to Navi's chips/ folder in its installed /opt/Navi/ directory.
Ultimately the Navi Chip System is designed to put our systems true power into the hands of the users allowing it to be extended using python.
The Navi Chip System saw a huge improvement in integration, usability and function since the release of Navi v0.5.x.
Here is a quick overview of the changes:
- Decentralized distribution - No longer need to PR an addition into a single repo. Its all managed through the users personal repos.
- Extended Github Usage - The whole system piggyback's github making use of tags and releases to drive the internals of chip sharing.
- Built with AI integration in mind - The new chip system has access to Navi's core functions meaning you can infuse your chips with AI features.
- Small to Large - You chips can be as small as a single file or as large as whole toolkit. Sky is the limit here.