Sharing Analysis Data¶
Sidekick stores all analysis data — chats, indexes, notebook entries, code maps, and transaction history — in a local SQLite database rather than inside the BNDB file. This means analysis data does not travel with the .bndb file when you share it with a colleague or move it to another machine.
To share analysis data, you must explicitly export it to the BNDB (or project) metadata as a snapshot. The recipient imports the snapshot from that same file. This page explains how.
Note
The export embeds your analysis data inside the BNDB metadata, so the BNDB file grows in size. For large workspaces, check the record count and approximate size shown in the dialog before exporting.
Where analysis data lives¶
Sidekick stores analysis data in two SQLite databases in your Binary Ninja user directory:
| Database | Path | Contents |
|---|---|---|
workspaces.db |
$BN_USER_DIRECTORY/sidekick/data/workspaces.db |
Chats, indexes, notebook entries, code maps, transaction history |
semantics.db |
$BN_USER_DIRECTORY/sidekick/data/semantics.db |
Semantic embedding vectors for search |
$BN_USER_DIRECTORY is the Binary Ninja user directory reported by Edit > Preferences > Open User Folder (macOS: ~/Library/Application Support/Binary Ninja).
Semantic indexes are not exported because they can be regenerated locally. Only the data in workspaces.db is included in snapshots.
Opening the Workspace Portability dialog¶
The export and import functions are in the Workspace Portability dialog.
- Open a BNDB file in Binary Ninja.
- From the menu bar, select Plugins > Sidekick > Import/Export Workspace...
The dialog opens with the Import tab active by default. The Export tab is the second tab.
Warning
The binary must be saved as a .bndb file before you can export. If you are working with an unsaved or raw binary, save it first using File > Save As.
Exporting analysis data¶
The Export tab writes a snapshot of your local analysis data into the BNDB or project metadata.
Steps¶
- Open the Workspace Portability dialog and select the Export tab.
- Under Share with:, select a sharing mode:
- My Team — exports only chats and conversations that you authored, leaving out other users' content. Use this when passing the file to a colleague.
- Just Me (transport) — exports all content regardless of author. Use this when moving your own workspace to another machine.
- Under Include:, select the data types to include in the snapshot:
- Chats — chat conversations and their messages
- Background/system chats — non-user chats owned by background workflows such as actors and service processes. Enabled by default in Just Me (transport) mode; excluded by default in My Team mode. Only available when Chats is checked.
- Indexes, code maps, and repositories — named indexes, code map configurations, and workspace repositories
- Notebook entries and outcomes — notebook entries and their associated task items
- Transaction history — record of all binary modifications (off by default)
- Chats — chat conversations and their messages
- Optionally enter a Description to identify the snapshot later.
- Review the record count and approximate size shown below the checkboxes.
- Click Export.
A confirmation message shows the number of records exported and the snapshot ID.
Tip
When sharing with your team, uncheck Transaction history unless your colleagues specifically need to review the modification log. Transaction history can add significant size to the snapshot.
What gets exported¶
Each checkbox maps to specific resource types in the workspace:
| Checkbox | Resource types included |
|---|---|
| Chats | thread.*, process.* |
| Indexes, code maps, and repositories | resource.* (covers named indexes, code maps, and workspace repositories) |
| Notebook entries and outcomes | notebook.* |
| Transaction history | transaction_log.* |
Internal transaction records (transaction.*) and script execution records (script_execution.*) are always excluded.
Team vs. personal export¶
When you select My Team, the export filters chats to include only conversations you authored (based on your Binary Ninja Enterprise username or system username). Indexes, notebook entries, and other non-conversation data are always included in full regardless of authorship.
When you select Just Me (transport), all content from all authors is included.
Project-level exports¶
If the open binary is part of a Binary Ninja project, the snapshot is written to the project metadata rather than the individual BNDB file. This means all files in the project share the same snapshot storage, which is useful for multi-binary analysis workflows.
Importing analysis data¶
The Import tab reads snapshots from the BNDB or project metadata and merges them into your local workspace.
Steps¶
- Open the Workspace Portability dialog and select the Import tab.
- The list shows all snapshots stored in the current BNDB or project, sorted by most recent first. Each entry shows:
- Namespace (e.g.,
sharedoruser:alice) - Exporter username and time since export
- Optional description
- Number of records and approximate size
- Namespace (e.g.,
- Select the snapshot you want to import.
- Under Merge strategy:, choose how to handle conflicts with your existing local data:
- Keep newer (recommended) — compares timestamps and keeps the more recently modified version of each record.
- Keep existing — only imports records that do not already exist locally. Your local data is never overwritten.
- Overwrite — replaces all local data with the imported snapshot. Use with care.
- Click Import.
The dialog reports how many records were applied, skipped, and (if any) failed.
Warning
The Overwrite merge strategy replaces your local workspace data with the contents of the snapshot. You will be prompted to confirm before Sidekick proceeds. This action cannot be undone.
After importing¶
Sidekick immediately updates the active session with the imported data. You do not need to reopen the file. Chats, notebook entries, and indexes become available right away.
If you imported chats or other conversation data, open the Chat sidebar to see the imported conversations alongside your existing ones.
Collaboration workflows¶
Handing off analysis to a colleague¶
- Finish your analysis session.
- Open Import/Export Workspace..., go to Export, set Share with: My Team, and click Export.
- Save the BNDB file (File > Save) so the snapshot is written to disk.
- Share the
.bndbfile with your colleague through your normal file-sharing method. - Your colleague opens the file in Binary Ninja, opens Import/Export Workspace..., selects the snapshot from the Import tab, and clicks Import using Keep newer or Keep existing.
Moving your workspace to another machine¶
- Open Import/Export Workspace..., go to Export, set Share with: Just Me (transport), check all data types you want to keep, and click Export.
- Save the BNDB file.
- Copy the
.bndbfile to the other machine. - On the other machine, open the file, open Import/Export Workspace..., select the snapshot, and click Import using Overwrite (if starting fresh) or Keep newer (if the other machine already has some data).
Merging contributions from multiple analysts¶
When several analysts work on the same binary independently and then want to combine their findings:
- Each analyst exports with Share with: My Team and saves the BNDB.
- One analyst collects all the BNDB versions (e.g., via version control or a shared folder).
- Working from a base copy of the BNDB, they open Import/Export Workspace... and import each colleague's snapshot using Keep newer.
- The merged BNDB can then be re-shared.
Note
Snapshots are stored by snapshot ID inside the BNDB metadata, so importing the same snapshot twice is safe — the second import is a no-op for any already-applied records (under Keep existing or Keep newer).
Import tab snapshot actions¶
With a snapshot selected in the list, three additional buttons are available:
- Refresh — reloads the snapshot list from the BNDB file. Use this if the file has been modified outside the current Binary Ninja session (for example, a colleague added a snapshot after you opened the file).
- Inspect Raw — opens the selected snapshot as formatted JSON so you can examine its contents before importing.
- Delete Snapshot — removes the stored snapshot from the BNDB metadata. This only deletes the snapshot record; any workspace data that was previously imported from it remains in your local workspace.
Warning
Deleting a snapshot cannot be undone. If the snapshot is the only copy of exported analysis data, that data will be permanently gone once deleted.
Namespace organization¶
Each snapshot is stored under a namespace that identifies its intended audience:
| Namespace | Meaning |
|---|---|
shared |
Used by My Team exports; visible to all users |
user:<username> |
Used by Just Me exports; identifies the original machine/user |
Multiple snapshots can exist in the same BNDB. The import list shows all of them.