Bino Explorer
Browse all Bino manifests in your workspace, grouped by kind (ReportArtefact, DataSource, DataSet, LayoutPage, etc.), with inline children for layouts and quick navigation.
The Bino Reports VS Code extension provides schema-aware YAML editing, navigation, validation, preview, and dependency graph exploration for Bino report manifests.
NOTE: Screenshot placeholders are included below. Replace them with real images when you have them.
Bino Explorer
Browse all Bino manifests in your workspace, grouped by kind (ReportArtefact, DataSource, DataSet, LayoutPage, etc.), with inline children for layouts and quick navigation.
Smart Editing
Get completions, go-to-definition, and hover information for datasets,
datasources, layouts, and more, all powered by the bino CLI.
Validation & Preview
Validate your workspace, see problems inline, and run the preview server directly from VS Code.
Graph Navigation
Explore dependencies and dependents ("What uses this?") using the manifest dependency graph, with click-to-open navigation.
Beyond YAML editing, the extension also ships a schema-driven Designer webview, a DataSource creation Wizard, a Tree/Table Editor, and PRQL editing support — see sections 9–12 below.
bino lsp — a real Language Server Protocol process, started
automatically over stdio, provides live diagnostics, completion, hover,
go-to-definition, find-references, rename, and quick-fixes.bino daemon — an optional persistent background process (enabled by
default, see bino.daemon.enabled) that both the LSP and the extension's
data/preview/build features share, so indexing, validation, and DuckDB
column introspection stay warm across requests instead of paying a
cold-start cost on every call.bino lsp-helper <subcommand> CLI calls for indexing and
data introspection.Before installing the extension, make sure you have:
PATH (or a known location)redhat.vscode-yaml) installedYou can install the extension directly from the VS Code Marketplace.
Alternatively:
Once installed, the extension activates automatically when you open a YAML file or the Bino Reports explorer view.
.vsix (local build)If you are working from this repository and packaging the extension yourself:
cd vscode-bino
npm install
npm install -g @vscode/vsce
vsce package --allow-missing-repository
code --install-extension ./vscode-bino-0.1.0.vsixThen reload VS Code:
Cmd+Shift+P → "Developer: Reload Window"To uninstall a locally installed build:
code --uninstall-extension bino.vscode-binoRun the Bino: Check Setup command:
Cmd+Shift+P / Ctrl+Shift+P.This command verifies:
bino CLI can be found.lsp-helper and validate) are available.If something is wrong, the command shows a detailed message.
The Bino Reports activity bar container (click the Bino icon in the Activity Bar) holds four views:
binoDocuments) — all indexed manifests, grouped by kind.binoPreview) — preview/build/validate/graph action buttons.binoActions) — shortcuts to the Add * commands, grouped by category.binoEnvironment) — CLI/project info, diagnostics counts, and settings shortcuts.What you see in Documents:
Screenshot placeholder:
bino.refreshIndexbino.validateWorkspaceRight-click on a document in the Bino Explorer to access:
The extension provides completions in YAML files for:
dataset: / dependencies: – suggests DataSet names and $DataSource references.source: – suggests DataSource names.secret: – suggests ConnectionSecret names.signingProfile: – suggests SigningProfile names.selectedStyle: – suggests defined ComponentStyle names.kind: fields – suggests all known Bino kinds.query:/prql: blocks – suggests real DuckDB column names from the bound source.Completion, hover, diagnostics, and navigation are all served by the bino lsp
Language Server — a real LSP process, not the older CLI-subprocess
model.
Screenshot placeholder:
Ctrl/Cmd+Click (or F12) on:
dataset: / dependencies: values → jumps to the DataSet or DataSource.source: → DataSource.secret: → ConnectionSecret.signingProfile: → SigningProfile.selectedStyle: → ComponentStyle.page: / layoutPages: entries → LayoutPage.ref: (layout children) → the referenced component, resolved via its sibling kind.Shift+F12 (Find All References) and F2 (Rename Symbol) work on any
metadata.name and update every reference site across the workspace. Quick
fixes (💡) are offered for a missing ${VAR} in .env, a missing required
schema field, or a dangling reference (scaffolds the missing manifest).
Definitions/references are resolved from a live workspace name index and support multi-document YAML and unsaved edits.
Hover over dataset/datasource references to see:
Columns are introspected live via DuckDB (through the bino daemon when
running) with caching (configurable TTL).
Screenshot placeholder:
Live diagnostics are pushed continuously by the bino lsp Language
Server as you type (schema errors, engine-constraint violations)
and, on every disk change, project-wide (lint findings, missing ${VAR}
environment variables) — no manual step is required.
Use the Bino: Validate Workspace command or the toolbar button in the Bino Views for an explicit, on-demand re-check — useful right after installing or when the daemon isn't running.
bino.validateOnSave (default: true) is a fallback for when the bino daemon isn't running: it re-runs a workspace validation pass on save. When the
daemon is connected, it already pushes fresh diagnostics on every file change,
so this setting has no additional effect.
Screenshot placeholder:
The extension integrates with the bino preview command via a Preview Manager:
bino.startPreview)bino.stopPreview)bino.restartPreview)bino.openPreviewInBrowser)A status item in the VS Code status bar shows the preview state (stopped/starting/running/error).
Run Bino: Preview Menu (bino.previewMenu) to get a QuickPick of preview-related actions.
Run Bino: Build Report (bino.build) to execute bino build from within VS Code.
Screenshot placeholder:
The extension queries the manifest dependency graph (via the bino daemon,
falling back to bino lsp-helper graph-deps) to show dependencies and
dependents as a QuickPick list. For a plain-text tree/flat view instead, run
Bino: Show Graph (Tree) / Bino: Show Graph (Flat), which runs bino graph in the integrated terminal.
In the Bino Explorer:
The extension runs a graph query for the selected node and opens a QuickPick listing related nodes.
Each entry shows:
kind: name with an icon.↓ dependency – this node is a dependency (what the root uses).↑ dependent – this node depends on the root (what uses the root).↕ both – this node is both dependent and dependency.Selecting an item:
Screenshot placeholder:
Run Bino: Open Designer (or right-click a rendered component and choose Open in Designer) to edit a Table/Chart/Text/Tree/Grid manifest through a schema-driven property form instead of raw YAML.
kind.Run Bino: New DataSource from File… (also available by right-clicking a
.csv/.tsv/.xlsx/.xls/.parquet file in the Explorer) or Bino: New
DataSource from Database… to scaffold a new DataSource + DataSet pair.
The wizard:
bino.wizard.sampleRowLimit rows).Tree-kind
manifests) opens a spreadsheet-like grid/property editor for hierarchical
Tree documents, instead of editing nested YAML by hand.DataSource/DataSet manifests — opens a webview showing a live
100-row data sample for that source.When editing a query:/prql: block written in PRQL
instead of SQL:
Installing the optional PRQL VS Code extension adds richer PRQL-native editing on top of this.
All settings live under the Bino Reports section in VS Code Settings.
| Setting | Type | Default | Description |
|---|---|---|---|
bino.binPath | string | "" | Path to the bino CLI executable. If not set, uses bino from PATH. |
bino.columnCacheTTL | number | 60000 | Column cache TTL (ms) for hover/completion column lookups. |
bino.validateOnSave | boolean | true | Fallback validation on save when the daemon isn't running (see 6.2). |
bino.previewPort | number | 3000 | Port number for the bino preview server. |
bino.daemon.enabled | boolean | true | Enable the persistent background daemon for faster indexing/validation/data. |
bino.wizard.sampleRowLimit | number | 100 | Max sample rows the DataSource wizard fetches when introspecting a source. |
Example configuration:
{
"bino.columnCacheTTL": 120000,
"bino.validateOnSave": true,
"bino.previewPort": 3100,
"bino.daemon.enabled": true
}bino: command not found.PATH.apiVersion: bino.bi/v1alpha1 and a recognized kind:.bino lsp startup errors.View → Output, then select Bino Reports from the dropdown.This page is a living document. As the VS Code extension grows (new commands, graph views, or additional editor integrations), update this page to keep it in sync with the implementation.