In Development - It's still in its infancy. Use with caution!
BasiliskLLM is like the cool uncle of LLM interaction tools. Drawing "inspiration" (a.k.a. brilliant ideas stolen in the dead of night) from OpenAI's NVDA add-on, it aims to do what every project dreams of: actually be useful. Our noble mission? To make chatting with large language models (LLMs) so easy, even your grandma could do it blindfolded. Whether you're into Anthropic, Gemini, Mistral, OpenAI, OpenRouter, or running your own secretive AI in the basement, we've got you covered. Yes, even you, screen reader users. We see you.
Why does anyone name anything? Partially as a joke, partially hoping it becomes a self-fulfilling prophecy. Why this particular name? It's a nod to the infamous Roko's basilisk, which if you're curious (or bored), you can dive into here and here. Spoiler alert: it's the ultimate rabbit hole.
- Multi-Chat Support: Chat with multiple LLMs at the same time.
- Describe Image: Analyze images directly in the chat, whether they are from a screenshot, file, or URL.
- Speech to Text: Turn speech into text using your microphone or an audio file.
- Multi-Conversation Support: Manage several conversations at once, each in its own tab.
- Auto-Update: The app checks and installs updates automatically, so you're always on the latest version.
- NVDA Add-on Integration: Send the current navigator object's image directly to the active chat from any application, enhancing accessibility for those using NVDA.
- Credential Security: Protect your credentials by using the Windows Credential Manager.
basiliskLLM is available on the winget package manager. You can install it by running the following command in the terminal:
winget install SigmaNight.basiliskLLM
- Visit the latest release page for the most up-to-date stable version.
- For pre-releases or historical versions, head over to all releases.
- Setup for Windows x64: Traditional installer for 64-bit Windows systems. Suitable if you prefer a standard installation.
- Setup for Windows x86: Traditional installer for 32-bit Windows systems.
- Portable Version for Windows x64: No installation needed, just extract and run
basilisk.exe
. Ideal for users who prefer not to install software. - Portable Version for Windows x86: No installation needed, just extract and run
basilisk.exe
.
- Download the Installer: Choose the appropriate installer (x64 or x86) from the releases page.
- Run the Installer: Follow the installation prompts to get BasiliskLLM set up on your machine.
- Start the Application: Once installed, launch BasiliskLLM from your desktop or start menu.
- Download the Portable Version: Select the portable version (x64 or x86) from the releases page.
- Extract the Files: Unzip the downloaded file to a folder of your choice.
- Run the Application: Launch
basilisk.exe
from the extracted folder. No installation needed.
When you run the app for the first time, it will prompt you to configure your account. Alternatively, you can configure your account by clicking on the 'Tool' menu and selecting 'Manage Account.'
A configuration window will appear, allowing you to enter your API key and select the AI provider you wish to use. You can also configure the Credential Manager to securely store your API key.
You can obtain an API key from your chosen AI provider. The app supports the following AI providers:
- Anthropic
- Gemini
- Mistral AI
- OpenAI
- OpenRouter
Except for global shortcuts, keyboard shortcuts are displayed alongside the labels of their corresponding elements.
These shortcuts work anywhere in Windows.
AltGr+Shift+B
: Minimize to tray or show the BasiliskLLM window.AltGr+Shift+W
: Take a screenshot of the current window and send the image to the active chat.AltGr+Shift+F
: Take a screenshot of the full screen and send the image to the active chat.
Note: You can also minimize the window using Alt+F4
.
These shortcuts work only when the BasiliskLLM window is focused.
Ctrl+1
toCtrl+9
: Select the corresponding tab. Each tab is a different chat.Ctrl+n
: Create a new chat.Ctrl+w
: Close the current chat.
The multiline "System prompt," "Messages," and "Prompt" fields come equipped with context menus filled with commands that can be quickly executed using keyboard shortcuts. The same applies to the models list. These shortcuts are active when the relevant field is in focus.
Examples of Contextual Shortcuts in the Messages Area:
j
: Move to the previous message.k
: Move to the next message.
Note: Context menu can be opened using the Shift+F10
key combination, the Applications
key, or by right-clicking on the field.
For those using NVDA, you can install the NVDA add-on connector to send the image of the current object directly to the active chat from any application.
To install the NVDA add-on connector, navigate to the Tools menu > Install NVDA add-on. Once the add-on is installed, you can use the following shortcuts:
NVDA+SHIFT+k
: Capture the current navigator object and send it to BasiliskLLM.NVDA+SHIFT+l
: Send the current image source to BasiliskLLM (url or base64).
The app includes a built-in auto-update feature with three update channels:
stable
: the stable version of the app (default a stable release on GitHub)beta
: the beta version of the app (default a pre-release on GitHub)dev
: the dev version of the app (default the last commit on the master branch)
You have four update modes available:
- notify: the app will notify you when a new version is available.
- download: the app will download the new version but you have to install it manually.
- install: the app will download and install the new version automatically (not implemented yet).
- off: the app will not check for new versions.
Requirements: Python 3.12
The project requires poetry. To install it visit the Poetry installation guide. For short reference:
pip3.12 install pipx
pipx ensurepath
pipx install poetry
In the root of what may soon become your favorite project, install dependencies with poetry. It will create a special virtual environment for the project.
poetry install
Activate the virtual environment (because magic needs a little nudge):
poetry shell
Ready to watch the code baby crawl, maybe even walk? Fire up the project:
python -m basilisk
You can build a standalone executable with the following command:
poetry run python -m cx_Freeze build_exe
This will create a dist
directory with the standalone executable. You can run the executable by double-clicking on it.
The project utilizes Inno Setup to create an all-in-one installer, packaging the output generated by cx_Freeze. ...
To create the installer, you need to install Inno Setup. You can download it from here.
After installing Inno Setup, check that the ISCC.exe
is in your PATH. You can do this by running the following command:
where ISCC.exe
If the command returns the path to the ISCC.exe
, you are good to go.
You can create the installer by running the following command:
iscc win_installer.iss
This will create an installer in the output_setup
directory.
We welcome and appreciate translations for this project. If you're interested in helping us translate the content into your language, you have two options:
The preferred method is to use the Crowdin platform. To begin, ensure you have a Crowdin account and visit the BasiliskLLM Crowdin project. If your language is not currently supported, please open an issue to request its addition. You can contribute translations via the Crowdin web interface or use popular translation tools like Poedit. In the file menu of the poedit you can open translation from a cloud service and select Crowdin. You must login to your crowdin account and select the project and the language you want to translate. After that you can start translating the strings like a normal po file. When you save the file it will be automatically uploaded to crowdin.
Alternatively, you can work with the .pot
(Portable Object Template) file. Download it from the releases page and use a text editor such as Poedit for translation.
If you prefer, you can also generate a .pot
file directly from the source code with the following command:
python setup.py extract_messages
To create a PO (Portable Object) file for your language, use the command:
python setup.py init_catalog --locale <your_language_code>
The language code should adhere to the ISO 639-1 standard. For instance, the code for Spanish is es
. You can find the appropriate code for your language here.
Use a text editor like Poedit to translate the strings in the .po
file. Once you've finished translating, compile the .po
file into an .mo
(Machine Object) file with the command:
python setup.py compile_catalog
Finally, create a pull request with your translated .po
file.
Got ideas, translations, or magical spells to contribute? We're all ears. Open an issue like it's your Hogwarts acceptance letter. Time to make some magic happen!