Skip to content

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.

Plugin Manager Install Sidekick

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 the Update 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.

Sidekick Status

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.