Getting Started¶
Welcome to Binary Ninja Sidekick. This document will get you up and running and show you the main features of the Sidekick plugin. For more detailed information, check out the User's Guide.
Purchasing a Plan¶
Most features of the Sidekick plugin are powered by the Sidekick service, which requires an active plan to access. Click here to purchase a plan that best fits your needs. Once you have purchased a plan, you will receive an API key that you can use to access the Sidekick service.
Note
When purchasing a plan, you will need to sign in to your Sidekick account. If you do not have a Sidekick account, you will be prompted to create one, or you can create one here.
Installing the Plugin¶
Installing the Sidekick plugin is easy. Launch the Binary Ninja Plugin Manager by selecting Plugins -> Manage Plugins
from the main menu. From the Plugin Manager search for "Sidekick" and locate the Sidekick plugin. Then click the Install
button.
The Sidekick plugin has several package dependencies that may take a few minutes to install. Restart Binary Ninja after installation of the plugin is complete.
Note
Some users may experience issues installing the plugin due to conflicts in dependencies. If you encounter issues, follow the instructions in this known issue.
Supported Python Version¶
The plugin has been well tested using the version of Python packaged with Binary Ninja, which is currently Python 3.10. By default, Binary Ninja will install the plugin using this version of Python, except for Linux users, which defaults to the latest version available on the system. For Linux users, we recommend configuring Binary Ninja to use Python 3.10.
Updating the Plugin¶
If an update for the installed Sidekick plugin is available, then choose one of the following methods for updating the Sidekick plugin:
-
Plugin Manager: Launch the Plugin Manager by selecting
Plugins -> Manage Plugins
from the main menu. From the Plugin Manager search for "Sidekick" and locate the Sidekick plugin. If an update is available, then click theUpdate
button. -
Automatic Notification: On plugin startup, Sidekick automatically checks for updates. If one is available, then Sidekick asks you if you want to install it. Click
Yes
. Once the update is complete, then you will need to restart Binary Ninja.
Setting Your API Key¶
To set your Sidekick API Key:
- Open the Settings tab within Binary Ninja from the
Binary Ninja -> Preferences->Settings
menu - Search for
sidekick.api_key
- Copy one of your API keys from your Sidekick account to the
Sidekick API Key
setting
Note
You can find the API keys in your Sidekick account here
Alternatively, the first time you launch the Sidekick plugin, you will be prompted to enter your Sidekick API key. If you provide an API key at this point, then it will get saved to your Settings.
Accessing Service Features¶
Most features in the Sidekick plugin require access to the Sidekick service using a valid API key; however, there are some features that do not and are free to all users. The following table lists the features of Sidekick and their dependency on the Sidekick service:
Feature | Sidekick Service Dependency |
---|---|
Structure Recovery | Does not require service access. However, function components must be manually created for this feature to work without service access. |
Component Creation | Requires service access |
Variable Naming | Requires service access |
Structure/Field Naming | Requires service access |
Function Naming | Requires service access |
Code Selection Comments | Requires service access |
Function Comments | Requires service access |
Chat | Sending messages and automatic naming of session titles require service access. Recording notes does not require service access. |
Tasks | Requires service access |
Notebook | Does not require service access. Users can manually add documents to the Notebook and edit them. |
Indexes | Does not require service access. Users can manually create and run Analysis Workbench scripts that output content to an index without service access. |
Automation Workbench | Requires service access to create and build scripts automatically. Requires service access to execute scripts that use LLMOperators configured with a Sidekick service model. Requires service access to execute scripts that call Sidekick service APIs (e.g. symbol classifiers). All users can manually create scripts that do not use LLMOperators and run them without service access. |
Code Insight Map | Does not require service access |
Documentation View | Automatic documentation generation requires service access. Manual generation does not require service access. |
Configuring Service Connection¶
You can configure the Sidekick plugin's connection to the Sidekick service. To switch the Sidekick plugin between the connected (online) and disconnected (offline) status, click the Sidekick status in the status bar at the bottom of the Binary Ninja window and select Connect/Disconnect.
By default, the Sidekick plugin is configured in the online mode on startup. To configure the Sidekick plugin to start in offline mode, you can uncheck the sidekick.online_on_startup
setting in the Binary Ninja Settings. This will prevent the Sidekick plugin from attempting to connect to the Sidekick service.