Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions entries/file-tree.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "file-tree",
"displayName": "File Tree",
"description": "Find the file an agent mentions and keep the workspace tree beside the conversation. Search by name or path, open previews, add relative paths to drafts, create a blank markdown file, delete a file after confirmation, and reveal or copy files from the machine that owns them. Files show Seti-style type icons for markdown, JSON, gitignore, env, and other common names. Project threads stay rooted in their checkout; personal threads can browse a configured folder. Requires local file access on the BB machine; Finder reveal is macOS-only.",
"description": "Keep project files in view while you move between BB threads. Pin a project source or thread workspace, search by name or path, and preview files. Send a file path to a chosen chat draft, create a blank markdown file, or delete a file after confirmation. Copy paths or files, and reveal files in Finder. Requires access to the files on the BB machine; Finder reveal is macOS-only.",
"icon": "Folder",
"tags": [
"files",
Expand All @@ -21,10 +21,13 @@
"url": "https://yuriy-egorov.pages.dev"
},
"category": "file-viewers-and-editors",
"screenshots": [
"./screenshots/file-tree/overview.png"
],
"source": {
"git": {
"url": "https://github.com/fzrx-ego/bb-plugin-file-tree.git",
"range": "^0.18.0"
"range": "^0.19.3"
}
},
"overview": "./overview/file-tree.md"
Expand Down
14 changes: 5 additions & 9 deletions overview/file-tree.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,22 @@
Shows a compact file tree of the thread workspace on the right.

## Who it is for

People who already work in a BB thread and keep hitting paths: an agent cites a file, they need that file in chat, in the preview, or on the Desktop. The next step is still in the thread, not a full file manager.

Not for people whose job is to upload, move, rename, or unzip under `$HOME`. That is a different product.
People who work across BB threads and need to find a file an agent mentions, preview it, or add its path to a chat draft.

## What you get

Files in the tree and in search use Seti-style type icons (markdown, JSON, gitignore, `.env`, README, …). Folders keep only the twistie.

The tree sits on the right of the thread. Above it is a search box: type a file name, part of a path, or paste a path, and the list under it names the files that match. Enter selects the file in the tree and opens it in the preview — one action, both results — and re-roots the tree when the file lives in another project.
The tree sits on the right of the BB window. A folder selector pins a project source or thread workspace, so switching threads keeps the same tree state. Above the tree is a search box: type a file name, part of a path, or paste a path, and the list under it names the files that match. On a thread or New Thread page, Enter selects the file in the tree and opens its preview — one action, both results — and temporarily re-roots the tree when the file lives in another project.

Click a file to open BB's default preview. Right-click to add the relative path to the draft, create a blank `.md` in that folder (or the file's parent), delete a file, copy a relative or absolute path, copy the file itself onto the clipboard, or reveal the item in Finder. Right-click the root name to create the markdown file at the top of the tree. A newly created `.md` opens in the external editor.
In a thread or on the New Thread page, click a file to open BB's default preview. Right-click to add its absolute path to an open chat draft, create a blank `.md` in that folder (or the file's parent), delete a file, copy a relative or absolute path, copy the file itself onto the clipboard, or reveal the item in Finder. When several drafts are open, choose the target in the menu. Right-click the root name to create the markdown file at the top of the tree. A newly created `.md` opens in the external editor.

Search and chat paths ask the same question of the same index. When a message names a path, the tree can jump to it. A bare file name works too: the search roots are indexed by name, so `AGENTS-base.md` lands on the file even when nothing in the message says which folder it is in. If the hit is in another folder, the tree re-roots there instead of reporting a miss.

## How it works

The tree is the thread checkout for project threads. Set **Root folder for personal threads** to a path such as `~/Documents` to browse a fixed folder in general BB threads without moving or changing their workspace. Ignored folders (`node_modules`, `.git`, `dist`, …) stay hidden unless you turn them on in settings. Search roots (default `~/Documents`, one path per line) are the extra places a chat path may land.
The folder selector lists project sources and the current thread workspace. Set **Root folder for personal threads** to a path such as `~/Documents` to add it to the selector. Hidden and ignored folders (`.claude`, `node_modules`, `.git`, …) stay hidden unless you turn them on in settings. Search roots (default `~/Documents`, one path per line) are the extra places a chat path may land.

Open in Finder and Copy File run on the machine that holds the files. Copy File puts a real file on the macOS or Windows clipboard so Finder paste drops a copy, not a string. Finder reveal uses macOS `open -R`.
Open in Finder and Copy File are available for files on this computer. Copy File puts a real file on the macOS or Windows clipboard so Finder paste drops a copy, not a string. Finder reveal uses macOS `open -R`.

## First step

Expand Down
Binary file added screenshots/file-tree/overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading