Skip to content

2. Using Navi

Alex Kollar edited this page Jan 3, 2025 · 10 revisions

Introduction

Welcome to the primer on how to use Navi. We will only be covering the basics here.

Settings Menu

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!

General use

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:

  1. user> What is the most popular open source network scanner
    and
  2. 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"

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.

How to use the chat execution system:

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

image

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.

History Scrolling

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

Navi Memory System

As of version 0.7.0 Navi has the ability to keep context in conversation. image

Using the Memory System

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.

Memory Menu

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.

Navi Command Line Query

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!
image

Navi Chip System 2.0

What are chips?

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.

Chip System Evolved

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.

Clone this wiki locally