Bases Toolbox

by Grub Basket
5
4
3
2
1
Score: 41/100

Description

Category: Productivity Tools

The Bases Toolbox plugin adds a wide set of tools around Bases and frontmatter properties. It can find and replace property values with history and selective revert, bulk edit the results of an open base, write rollups back into real properties and apply conditional formatting to rows or cells. It also handles CSV import and export, note merging, duplicate finding, filter toggling and a zoom editor for cell values. Beyond that, it includes a property index, property format doctor, companion notes for non markdown files, file metadata stamping and inline field migration. Everything runs locally, with no network access or telemetry and changes are logged where the feature supports revert.

Reviews

No reviews yet.

Stats

10
stars
8,674
downloads
0
forks
103
days
12
days
12
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
3
total issues
2
open issues
1
closed issues
228
commits

Latest Version

13 days ago

Changelog

You can now set the order properties appear in inside your notes, across many notes at once. Requested in issue #2.

Highlights

  • Reorder properties in notes. A new command, Reorder properties in notes, sets the order of the frontmatter properties in many notes at once, which is the order Obsidian's Properties view shows them in. It is also in the launcher and behind a Reorder properties… button in Manage columns. Only the order changes: values stay exactly as they are, and nothing extra (no order property) is written into your notes.
  • Choose the notes: the open base's current view (its filtered rows), the whole base (the base's own filters, ignoring the view's), or every note in the vault.
  • Arrange the list by dragging or with the arrow buttons. It starts from the view's columns, followed by every other property by how often it's used. Properties left out of the list go after the listed ones, or stay where they are; you choose which.
  • Preview first, undo after. The dialog says how many notes will change, leaves notes that are already in order alone, and asks first above 200 notes. Undo from the done notice, Undo last change, or History.
  • Saved orders can be exported and imported from settings. The file format is shared with GridSense 0.26.0, which can import the same saved-orders export, so an order moves between the two plugins.
  • Heads-up: Obsidian rewrites the frontmatter when it saves it, so YAML comments in the reordered notes are dropped, and quoting or spacing may be tidied.

All changes

0.1.71

Reorder properties in notes

  • New command Reorder properties in notes (reorder-note-properties), a launcher card in This base tagged Base or vault, an entry in the in-app Reference, and a Reorder properties… button in the Manage columns dialog. That button closes the column manager and opens the new dialog for the same base and view.
  • Notes to reorder (scope dropdown, each option with its note count):
    • Current view: the notes the active view shows, after its filters and search.
    • Whole base: every Markdown note the base's own top-level filter matches, ignoring the view's filters. Bases has no public API for this, so the plugin re-runs Bases' own compiled filter on each note. If that isn't available on an Obsidian build, the option is hidden rather than guessed.
    • Entire vault: every Markdown note. When no base is open this is the only option, and the dialog says so.
  • The ordered list. It is seeded from the current view's note-property columns (file.* and formula columns are skipped), then every other property found in the chosen notes, most used first. Each row shows its position, its name, and how many of the chosen notes have it.
    • Reorder by dragging the grip, or with up and down buttons. The buttons are real, keyboard-reachable buttons, and focus follows the moved row.
    • Remove a row to stop managing that property. Removed properties appear under Not in the list, with a button to add each one back.
    • Add a property puts any property, with autocomplete, at the end of the list.
    • Property names match regardless of upper and lower case.
  • Properties not in the list:
    • Put them after the listed properties (the default): listed properties come first in list order, then the rest in their existing order.
    • Leave them where they are: other properties keep their positions, and the listed ones are shuffled into the slots the listed ones already used.
    • A note that doesn't have a listed property simply skips it.
    • The default is a new setting, and it can be changed each time.
  • Preview line: "N of M notes will change". Notes already in the requested order are not written, and Apply stays disabled when nothing would change. Above 200 notes, a confirmation names the count first.
  • Writing. Notes are rewritten through Obsidian's frontmatter API, in batches with a progress notice, pausing between batches so the app stays responsive. The order is recomputed from each file at write time, so a property added since the preview is kept and placed by the same rules.
  • Numeric property names such as 2024 always come first inside JavaScript objects and can't be moved. The preview allows for this, so those notes aren't reported as changing on every run.
  • A heads-up line in the dialog says that Obsidian rewrites the frontmatter on save: YAML comments are dropped, and quoting or spacing may be tidied.

Undo and history

  • Each run is one entry in the bulk file change history, labelled property order, with one row per note (old order → new order) and a checkbox. Revert all of it, or just the notes you pick. The done notice has an Undo button, and Undo last change works too.
  • A revert only reorders notes that still have exactly the order the run left. A note whose properties were added, removed or reordered since is skipped as edited since, unless you tick the force option. A forced revert keeps any properties added since, after the restored ones.
  • A note that is skipped is never rewritten, so its comments and formatting are left alone.
  • Rows are badged reverted, edited since or file missing. A second revert after a partial one counts the already-restored notes as restored.
  • A note that can't be written (for example, locked by sync) is reported as couldn't be written. The entry then stays open so the revert can be retried.

Saved orders

  • In the dialog: Load a saved order, Save as… (asks before replacing one with the same name), and Update or Delete the loaded one. A saved order stores its property list and its setting for properties not in the list.
  • Widening the scope after loading a saved order doesn't add the wider scope's properties to it. They show under Not in the list instead, so Update can't grow the saved order by accident.
  • New settings section Property orders:
    • The default for properties not in the list.
    • Each saved order, with Rename and Delete.
    • Export: copies every saved order to the clipboard and also saves it as a .json file at a path you choose, property-orders.json by default, with autocomplete. It asks before replacing an existing file, creates missing folders, and rejects paths containing ...
    • Import: paste an export, or pick a .json file in the vault. Orders are merged by name. When a same-named order has different contents, you choose Replace with imported, Keep mine, or Cancel import. Identical orders are counted and left alone, and invalid entries are skipped and counted.
  • The export format is { "format": "property-orders", "version": 1, "orders": [ { "name", "keys", "unlisted" } ] }, shared with GridSense 0.26.0. Other formats and versions are rejected with a message saying why.
  • Saved orders are checked when settings load: malformed entries are dropped and duplicate names removed.

Other

  • CHANGELOG entry for 0.1.71.
  • versions.json: 0.1.71 → 1.9.0 (minimum Obsidian version unchanged).
  • Development-only: the version bump commit and the merge commit for the feature branch.

AI assistance: Claude (model: Claude Opus 5.5)

README file from

Github

Bases Toolbox

Bases Toolbox adds tools for the properties behind Obsidian Bases. You can edit many notes at once, find and replace values across the vault, color table rows by rules, import and export CSV files, and fix values that don't match their type. Every change a tool makes to your notes is recorded in History, where you can undo it.

Getting started

Open any tool from the launcher, the wrench icon in the left ribbon. It groups the tools by what they act on and tags each one with how far it reaches. The tools that rewrite many notes at once are at the bottom, under "Many notes at once". The default settings are safe to start with.

Common tasks

The Scope column shows how far each tool reaches. An Open base tool changes only the notes the base in your active tab shows, after its filters. A Whole vault tool changes every note that has the property, whatever base is open.

I want to… Tool Scope
See every property, its values and which notes use them Property index Whole vault (look first, act per item)
Change a property on the notes a base is showing Bulk edit base results Open base
Fill in a property only where it's missing Bulk edit base results → "Set only if missing" Open base
Copy one property into another (e.g. startTime → Time) Convert / fork a property → "Copy as-is" Whole vault
Rename or merge one value everywhere (e.g. todo → to-do) Find & replace Whole vault
Fix values stored in the wrong format (dates, numbers…) Format doctor Whole vault
Keep a formula's result as a real property Sync formula into property Open base
Set the order properties appear in inside my notes Reorder properties in notes Open base view, whole base, or whole vault
Keep a copy of my tables outside Obsidian Export to CSV, following "Before you lose access to Obsidian" Open base, or a base or folder you pick
Undo something The Undo button on the "updated N files" notice, or History Whatever the change touched

Features

Find & replace property values

Command: Find and replace property values. By default it works on every note in the vault that has the property. With a base open, the Notes picker can limit it to the rows one base tab shows (after its filters; the same base open in two tabs is listed once per tab). If that tab is closed, nothing applies until you pick an open base or switch back to Whole vault. Pick a property, then either replace one specific value everywhere it appears or override every value at once. Works on list properties too (the matched item is replaced in place; a global override collapses the list to the new value). Leaving the replacement empty clears the value.

Every run is logged. Find & replace history opens as a main-area tab listing all past operations (newest first, uncapped by default — an optional cap and a clear-history action live in the settings). Each entry expands into per-file rows showing old → new with an "edited since" badge on drifted files; revert all of an operation or just the files you check. Undo last find & replace reverts the newest active entry. Reverts are best-effort: files whose value was edited again are skipped and reported — unless you enable the force toggle, which overwrites them. An entry only counts as reverted once nothing from it remains in effect, so you can always retry. The log survives app restarts.

Number input guard

Number properties — in the frontmatter editor and inside Bases views — no longer change value when you press ArrowUp/ArrowDown or scroll the mouse wheel over a focused input. Optionally, only digits, . and - are accepted as typed characters (so no stray e exponents). Both behaviors are toggles in the plugin settings and are on by default.

Literal Enter

Settings toggle: Literal Enter. While you type a property value, Enter saves exactly what you typed instead of the highlighted suggestion. To pick a suggestion, move to it with the arrow keys first.

Bulk edit base results

Command: Bulk edit base results. With a base open, act on every file the view currently shows — filters, search, everything applied. Five modes: set (replace), set only if missing (backfill defaults without clobbering), append / remove list items, and delete the property entirely. All logged in history and revertible; reverting a bulk-create deletes the property again, reverting a delete restores it.

The value can refer to other properties of the same note: {{startTime}} copies each row's own startTime into the property you're setting, and {{startTime:HH:mm}} reformats a date/time with a moment.js format. Mix them with text (at {{startTime:h:mm a}}) or use one per line to append list items. Notes where a referenced property is missing or empty are skipped and counted, and the dialog previews what the first note will get.

Rollups into real properties

Command: Compute rollup into property. For every result of the open base, count/sum/average/min/max over the notes linking to it (or linked from it) and write the result into a real frontmatter property that Bases can display and sort natively. One-shot — re-run to refresh. Logged in history, revertible.

Sync formula into property

Command: Sync formula into property. For every note in the open base, it works out one of the base's formulas and writes the result into a property you name. A value that only existed as a live formula becomes a stored property you can sort, filter or use elsewhere. Dates are written as dates, and links stay links. One-shot, so re-run it to refresh. Logged in history, revertible.

Reorder properties in notes

Command: Reorder properties in notes, also in the launcher and as a button in Manage columns. It sets the order properties appear in inside your notes, which is the order Obsidian's Properties view shows, across many notes at once. Only the order changes: values stay as they are, and nothing extra is written into the notes.

  • Pick the notes: the open base's current view (its filtered rows), the whole base (its own filters, ignoring the view's), or every note in the vault. With no base open, it runs on the vault.
  • Arrange the list: it starts from the view's columns, then every other property by how often it's used, each with a note count. Drag the handle or use the arrow buttons, and remove a property to leave it where it is.
  • Properties not in the list go after the listed ones, or stay where they are. This is a setting you can change each time.
  • Preview: it shows how many notes will change. Notes already in order aren't touched, and above 200 notes it asks first.
  • Undo: use the Undo button on the done notice, Undo last change, or History. A note you've edited since is skipped unless you force it.
  • Saved orders: save, load, update and delete named orders. Settings → Property orders renames and deletes them, and exports or imports them as JSON. The format is shared with the GridSense plugin, so an order moves between the two.

Obsidian rewrites the frontmatter when it saves it, so YAML comments in reordered notes are dropped.

Conditional formatting

Color Bases rows, or single cells, by rules. Each rule has a property, an operator, a value, a scope (the whole row, or just that property's cell) and a color from the theme palette or a custom color, applied as a subtle tint. The operators are equals, does not equal, contains, greater or less than, is empty, is not empty, and is duplicated in this base. A rule can apply to every base or only the bases you pick.

Rules apply top to bottom, and the first match wins for each row and each cell. Edit them inline, drag to reorder, and check each one's swatch. Colors update live as you edit notes and scroll, in base tabs, embedded bases, canvas cards and hover popovers, whether or not the table shows a file column.

Manage the rules in the plugin settings or in a sidebar panel (command: Open conditional formatting panel), which can pop out to its own tab.

CSV import & export

Both Import CSV as notes and Export to CSV are their own panels — open either from the launcher, and like every panel it can live in the sidebar, its own tab, or a separate window. Each also has a dialog.

Import CSV as notes: paste or pick a CSV/TSV → per-column property name, type (text/number/date/boolean/list/link), include toggle, filename column → one note per row in a target folder, with an optional auto-created .base. Dates are normalized (US, European, month names, Excel serials); quoted fields may contain newlines.

Export to CSV — the panel / dialog has two tabs:

  • From a base: pick any .base file (no need to open it) and load it — you see its base-level filters, choose which view to export (bases can have several, each with its own filters and columns), and see that view's filters and column order before exporting. It resolves the built-in file.* columns (name, path, folder, ext, size, ctime, mtime, tags) plus your frontmatter properties. This tab reads the .base file without running it, so formula columns and link lists come out blank, and a view with filters beyond folder scope is flagged as a best-effort superset. The Export active base results as CSV command fills those columns in. A "Write readable summary (.md)" button emits a plain-language note of the base's filters, formulas, sort, and grouping — the things a flat CSV can't hold — so you can rebuild them in your spreadsheet. The exporter lists these limitations inline.
  • From a folder: pick any folder and load it — check off any subfolders to ignore, and see the non-markdown files a CSV export skips (images, PDFs…). One button companions them (creates queryable notes) regardless of your companion settings, so they're included on the next load. Then every note's frontmatter becomes a CSV row, with a column per key found.

Both preview first, with a column checklist (all on by default) so you pick what to include, then "Copy for Excel" (TSV to clipboard) or write a .csv (next to the base, or in the folder). Wikilinks are unwrapped and lists joined with ";". Output is multiple files (CSV + optional summary), not a zip.

For the exact rows a view is showing, after all its filters, open the base and run the "Export active base results as CSV" command. It uses the view's column order and needs a base in the active tab. Every column comes out as the table shows it, including formulas, backlinks and other computed columns. The file is saved as <base name> export.csv next to the base, and exporting that base again replaces it.

Before you lose access to Obsidian

Export while Obsidian still runs if you might lose it, for example on a work computer or before moving to another app. Your notes stay readable without Obsidian, because they're plain Markdown files, and .base files are plain text. What you can't recreate without Obsidian is the table itself: which notes each view shows, and what its formulas work out to.

For each base you want to keep:

  1. Export each view. Open the base, switch to the view, and run Export active base results as CSV. This gives the exact rows and every column, formulas included.
  2. Rename each CSV before the next export. Every view of a base saves to the same file name, so the next export replaces the last one.
  3. Save the filters, sorting and grouping. In Export to CSV, open the From a base tab, load the base, choose Export this view, then Write readable summary (.md). A CSV can't hold these, but the summary describes them in plain language.
  4. Optionally, keep formula results in the notes too. Sync formula into property writes a formula's result into each note, so the value survives in the note itself. It changes your notes, and you can undo it from History.

Then, once for the vault:

  1. Catch notes no base shows. In Export to CSV, open the From a folder tab and export each folder you care about. Every note's properties become a row.
  2. Copy everything out and check it. Exports are saved inside your vault, so copy the vault folder somewhere you'll still be able to reach. Open a CSV there to confirm it looks right. Images and PDFs aren't in the CSV, but copying the vault folder keeps them.

In a CSV, links become plain text and lists are joined with a semicolon.

Merge notes & duplicate finder

Merge current note into another: frontmatter-aware — properties missing on the target are copied, list properties union, and scalar conflicts get a per-property picker. The source's body is appended, links to the source are re-pointed at the target (aliases preserved), and the source moves to the vault trash (recoverable). The merge is recorded in History, so you can revert all of it.

Find duplicate notes: group candidates by similar file names (case, punctuation, and "copy"/number suffixes ignored), by equal values of a property you choose, and/or by identical bodies. Limit the scan to folders or exclude some. Each group shows every note's size, property count and dates, and how its body differs from the note you keep. Untick a note to leave it out of the merge.

A keep policy (oldest, newest or longest) can choose the note to keep, and then Merge all visible groups clears a whole scan at once. When no copy deserves to survive, Merge all N into a new note combines the ticked notes into a new one. Every merge, including bulk ones, can be reverted from History.

Filter quick-toggle

Command: Toggle base filters. Disable individual filter conditions of a .base without deleting them — disabled filters are remembered by the plugin and can be re-enabled later. (Nested filter groups are listed but not yet toggleable.)

Manage a base's views and columns

These open from the launcher, and the first two also from buttons next to a base's view switcher.

  • Manage views for this base: one dialog for all of a base's views. Rename in place, duplicate a whole view (columns, sort and filters), reorder, set the default, show one, add and delete.
  • Manage columns for this base: hide, reveal and reorder a view's columns, and jump to one that's scrolled off-screen. The reveal list comes from the properties the base's notes actually use, plus its formulas. Group re-sorts the columns so your own properties come before the file ones. A view with no column list gets one the first time you change something here, and after that new properties no longer appear on their own, so reveal them from this dialog.
  • Add or fix a base formula column: adds a formula column by writing it into the .base file. It also repairs Obsidian's empty-formula glitch, a blank formula the Bases editor won't let you edit.
  • Toggle read-only for this base and Toggle read-only for all bases: lock a base, or every base, so its cells can't be edited, which guards against accidental edits and deletes. Links and the date picker stay clickable. Manage the list in Settings → Read-only bases.
  • Exclude skipped file extensions from this base: adds a filter so files with the extensions in your skip list (Settings → Always skip file extensions, .edtz by default) stop appearing in every view. Running it again doesn't add it twice. Revertible from History.

Kanban views

  • Toggle hide empty columns (kanban): a toolbar button on kanban views, and a command, that hides the columns with no cards. It switches Bases' own "hide empty groups" option, and clicking again brings them back.
  • Manual card order for this base's kanban: Bases orders kanban cards by the base's sort, so a card you drag snaps back after a reload. This gives the base a number property for the order, fills it in from a starting order you pick (creation date, modification date, name or the current order) and sorts the kanban by it. Values are spaced out so you can put a card between two others. Re-run it any time to start over. The values and the sort change are both revertible from History.

Cell zoom editor

Command: Zoom into focused cell. Click into a Bases cell or a property value in the frontmatter panel, run the command (bind a hotkey), and edit the value in a proper multi-line editor. List properties edit one-item-per-line. Saved through Obsidian's frontmatter API.

Embedded-base display options

Control how an embedded base renders via flags in the embed's alt text:

![[My Base.base|bases-no-toolbar]]        hide the toolbar row
![[My Base.base|bases-no-header]]         hide the whole header
![[My Base.base|bt-height-300]]           fix the embed height (px)
![[My Base.base|bases-no-header bt-height-150]]   combine them

No CSS snippets needed; flags apply per embed.

Multiline list cells

Settings toggle: list-property values in Bases table cells stack one per line instead of a single row of pills. Rows in Bases are fixed-height (virtualized), so long lists scroll inside the cell — pair with the Bases row-height option for taller rows.

Property index

Command: Open property index (also a ribbon icon). A sidebar view listing every frontmatter property in the vault with its type, file count, and — when expanded — every distinct value with usage counts. Built straight from the metadata cache, so it never forgets a property the way the Bases filter menu can. Each property and value has a shortcut into find & replace.

Bases built-in properties (and Obsidian's forgetful picker)

Obsidian's Bases property menu sometimes drops the built-in file.* attributes, so a column you want — created time, tags, folder — isn't offered. They aren't formulas; you can re-add any of them by its identifier:

Identifier What it is
file.name note name (no extension)
file.ext file extension
file.path / file.folder full path / containing folder
file.size size in bytes
file.ctime / file.mtime created / modified time
file.tags every tag (frontmatter + body)
file.links / file.backlinks / file.embeds outgoing links / backlinks / embeds
file.properties all frontmatter properties on the file

To add one: in a table view open a column's property menu and pick it under File — or edit the .base file directly and add the identifier to a view's order: list:

views:
  - type: table
    order:
      - file.name
      - file.ctime      # re-added built-in
      - file.tags

For a formatted or computed column (a readable date, a derived value), use a formula instead — add a formulas: block and reference it as formula.<name>:

formulas:
  created: file.ctime
views:
  - type: table
    order:
      - file.name
      - formula.created

…then rename that column's header in the view. Obsidian 1.9.5+ ships a built-in formula editor (autocomplete + docs), and the community plugin Formula Forge adds global formulas and renders them inline — reach for either if you're writing anything beyond a bare file.* reference.

This "forgetting" is Obsidian's behavior, not something this plugin can patch — but the property index above never forgets your properties.

Recipe: look up a value from a linked note (a Bases "XLOOKUP")

Bases has no built-in relational lookup, but if a property links to another note, a formula can pull one of that note's properties in — the equivalent of Excel's XLOOKUP. Say each Transaction links to an Account (account: [[Chase 1234]]) and you want the Account's bank name as a column:

formulas:
  bank: account.asFile().properties.bank

For property names with spaces or symbols, use bracket syntax on both sides:

formulas:
  holder: note["Account"].asFile().properties["Account Holder Name"]

Then add formula.bank / formula.holder to the view's order. It's the relational join Bases doesn't give you out of the box. (This is a plain Bases formula recipe, not a plugin feature.)

Property format doctor

Command: Property format doctor. Obsidian flags type-mismatched property values but "corrects" them destructively — sometimes erasing the value outright. The doctor opens a tab listing every value in the vault that doesn't match its property's assigned type (number, checkbox, date, datetime, text, list, tags, aliases), explains what each type expects with an example, and pre-fills a suggested fix only when one is safe (dates get normalized, yes becomes true, scalars become one-item lists, a date in a datetime slot gains T00:00). Everything is editable before applying; inputs that still don't match are marked red and the file is left untouched; an empty input means "skip" — a value is never erased. Applied fixes are logged to history and revertible.

Convert or fork a property's format

Command: Convert or fork a property's format. For frontmatter that predates Bases — dates like 3/4/2024 or February 3 2025, or values wrapped in [[wikilinks]] where you want raw text (or vice versa). Pick a property and a transform (normalize dates → YYYY-MM-DD, unwrap wikilinks, wrap in wikilinks, plain copy), preview the effect, then either convert in place or fork into a second property so you keep your original format AND a Bases-friendly variant side by side. Forks can be kept in live sync — edit the original and the fork recomputes automatically. Live syncs are managed in the plugin settings: pause one without deleting it, delete it (deleted syncs move to a restorable "recently removed" list), or open the fork builder to add another. Every apply is history-logged and revertible.

Allowed values (pinned)

From the property index, pin the allowed values of any property (pin icon). Editing a pinned property — in the frontmatter panel or a Bases cell — shows a picker of the allowed values, and the Audit allowed values command lists every value that falls outside a pinned list, with one-click jumps into find & replace.

Companion notes for non-Markdown files

Command: Create companion notes for non-Markdown files. Bases only reads frontmatter from .md files — images, PDFs, audio, and other attachments are invisible to it. This scans a folder (or the vault), optionally filtered by extension, and creates one companion note per file (named <file>.<ext>.md) whose frontmatter replicates the file's metadata — file-name, file-ext, file-size, file-created, file-modified, file-path — plus a companion-of link and an embed of the file in the body. Companions live adjacent to their files by default, or collected into a designated folder mirroring the source structure. Re-running refreshes the file-* properties while preserving anything you added to a companion; originals are never touched, and files derived from notes (like version files other plugins create) are never companioned. Every non-Markdown file is eligible by default; settings let you exclude specific extensions (managed as chips, with every file type found in your vault listed so you can click to exclude it), set a default destination, and turn on an opt-in auto mode that companions files as they're added — enabling it also companions eligible files that already existed.

Stamp file metadata into note properties

Command: Stamp file metadata into note properties. Filesystem created/modified times get destroyed by syncs, copies, and migrations — frontmatter travels with the note forever. This snapshots each Markdown note's current times into properties of your choosing (default created / modified), scoped to a folder or the vault. Set-if-missing by default, so existing values are respected; overwrite is opt-in. Logged to history and revertible.

Inline-field migration

Command: Migrate inline fields to properties. Scans for Dataview-style Key:: value lines (and optionally [key:: value] spans), previews what it found, and writes them into frontmatter so Bases can query them. Optionally cleans the migrated fields out of note bodies (off by default — that part isn't revertible; the frontmatter side is, via history). Scope to a folder or the whole vault; existing properties are skipped unless you opt into overwriting.

Property forms for one note

  • New note with properties: creates a note from a roomy form for its properties.
  • Edit properties of the active note: the same form for the active note, which can also rename it.

Command: Audit aliased internal links in properties. Finds property values whose links use an alias ([[Note|Alias]]) and groups them by the note they point to. It flags any note that's linked more than one way, such as with different aliases, or with an alias in some values and none in others. Read-only.

Open a grid with GridSense

Command: New grid (GridSense). Opens an editable, spreadsheet-style grid over a folder's notes, using the separate GridSense plugin. If GridSense isn't installed or is turned off, it says so. Nothing else in Bases Toolbox needs GridSense.

Open Stashpad notes in Stashpad

A setting, off by default. With it on, clicking a note in a base that lives in a Stashpad folder opens it in the Stashpad view instead of the plain editor. Cmd/Ctrl-click and middle-click do the same in a new tab. Only notes with a Stashpad id are redirected.

Tips & recipes

Fork any note (duplicate + rename in one go): Obsidian's core Templates plugin already covers new-note-from-template, so this plugin doesn't ship a templates feature. To quickly clone an existing note and rename it, install the community Commander plugin and bind a macro that runs Create new note and then Rename file back to back — one click forks the note you're on.

Writing formulas: for anything past a bare file.* reference (see Bases built-in properties above), use Obsidian 1.9.5+'s built-in formula editor, or Formula Forge for global formulas and inline rendering. A full formula builder is out of scope here — those tools do it well.

Parts of this plugin overlap with — and were inspired by — existing community work. Credit where due, and if one of these fits your workflow better, use it. What each is capable of:

  • Mass Editor (MIT) — shipped while this plugin's find & replace was already in development (built independently). Reviewing its code later inspired several history refinements here — selective per-file revert, the force-revert option, and set-if-missing/delete bulk modes — as concepts; no code was copied, our implementations are our own. Capabilities:
    • query builder over tags, frontmatter, and body text
    • bulk frontmatter set / add / delete / append on the matched notes
    • automatic per-run backups with a history panel
    • selective undo with drift detection and git-style diffs
  • Better Properties — the full-featured take on property editing (BRAT install):
    • select-style fields with predefined value lists per property
    • extra property input types beyond core's set
    • rename or delete a property across the whole vault from the property menu
  • Metadata Menu — the heavyweight metadata suite (requires Dataview):
    • fileClass schemas: define which fields a kind of note has
    • select / multi-select fields with predefined and dynamic values
    • lookup fields that aggregate over Dataview queries and persist results into frontmatter (count / sum / average / custom JS)
    • edit any field from context menus, links, or buttons anywhere in the app
  • Multi Properties — bulk property editing:
    • add or overwrite properties on many notes at once
    • works on folders, multi-selected files, and search results (this plugin covers the missing scope: the live results of a Bases view)
  • Dataview to Properties — converts Dataview inline key:: value fields into frontmatter properties (our migrator adds folder scoping, a dry-run preview, and revertible writes)
  • Bases Lock — per-embed control of embedded bases:
    • hide the toolbar / lock header interaction with |x / |o embed flags (reading view; our flags add a fixed-height option)
  • Colored Bases Properties — automatic, hash-based colors for property value pills in Bases views (our conditional formatting instead colors whole rows by explicit rules)
  • Dualyze Notes — finds similar notes by weighted title / heading / tag / link / body similarity and builds side-by-side merge drafts for their bodies
  • Merge Notes — straightforward concatenation of two notes into one (our merge adds frontmatter awareness: list union + per-conflict picker)
  • CSV-to-Obsidian-Properties-for-Bases — the companion browser tool our CSV import's converter core is ported from (same author as this plugin):
    • paste/drop CSV or TSV, map columns to typed properties, live preview
    • downloads a ZIP of ready-to-drop .md files — no install, works offline

Permissions & data

Bases Toolbox runs entirely on your machine. It has no network access — it never sends anything anywhere, and there is no telemetry or analytics.

  • Reading the list of files in your vault — the property index, vault-wide find & replace, companion-notes scan, base discovery, and merge all need to enumerate file paths (vault.getFiles / getMarkdownFiles). This stays local; it's what lets the plugin offer "a searchable index of every property" and replace a value everywhere it appears.
  • Clipboard — used write-only. When you click a Copy button (copy property name, copy value, copy file path, or copy a CSV export) the plugin writes to the clipboard. It never reads the clipboard, so nothing you've copied from elsewhere is ever accessed.
  • Reading and writing note files — property edits, find & replace, and the format doctor modify frontmatter through the standard Obsidian file API, only when you ask them to.

Development

pnpm install
pnpm run dev        # watch build
pnpm run build      # production build
pnpm run deploy     # build + copy artifacts to the vault(s) in .deploy-target

.deploy-target (gitignored) holds one <vault>/.obsidian/plugins/bases-toolbox path per line.

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Binary File Manager
5 years ago by qawatake
An Obsidian plugin to manage binary files
Frontmatter Tag Sugest
5 years ago by Jonathan Miller
Autocompletes tags in Obsidian YAML frontmatter. No more deleting #!
Auto Card Link
5 years ago by Nekoshita Yuki
Front Matter Title
4 years ago by Snezhig
Plugin for Obsidian.md
Media DB Plugin
4 years ago by Moritz Jung
A plugin that can query multiple APIs for movies, series, anime, games, music and wiki articles, and import them into your vault.
Metadata Menu
4 years ago by mdelobelle
For data management enthusiasts : type and manage the metadata of your notes.
Open Related Url
4 years ago by Dan Pickett
Custom File Explorer sorting
4 years ago by SebastianMC
Take full control over the order and sorting of folders and notes in File Explorer in Obsidian
Meta Bind Plugin
4 years ago by Moritz Jung
A plugin for Obsidian to make your notes interactive with inline input fields, metadata displays, and buttons.
FuzzyTag
4 years ago by Adrian
Note aliases
4 years ago by Pulsovi
This plugin manages wikilinks aliases and save them on the aliases list of the linked note
Page Properties
4 years ago by Anton Bualkh
A plugin that adds Logseq-like page tags to Obsidian
Testing Vault
4 years ago by Michael Pedersen
Frontmatter Alias Display
4 years ago by muhammadv-i
A plugin for Obsidian.md to show front-matter aliases as display names in the file menu.
Linked Data Vocabularies
4 years ago by kometenstaub
Add linked data to the YAML of your Obsidian notes.
Financial Doc
3 years ago by Studio Webux
Financial Documentation and Tracking using CSV format and Chart.js directly in Obsidian
Importer
3 years ago by Obsidian
Convert your data to Markdown files you can use in Obsidian. Works with Apple Notes, OneNote, Evernote, Notion, Google Keep, and many other formats.
Auto Front Matter
3 years ago by conorzhong
Add an ID to the front matter
3 years ago by llimllib
Notes dater
3 years ago by Paul Treanor
Adds created_on and updated_on dates of the active note to status bar
Bulk Exporter
3 years ago by symunona
Bulk export Markdown filtered, renamed and sorted by front matter metadata into a new structure.
Update frontmatter modified date
3 years ago by Alan Grainger
Automatically update a frontmatter/YAML modified date field
Copy Metadata
3 years ago by wenlzhang
An Obsidian plugin to copy metadata to clipboard and insert it into file name.
Auto Tag
3 years ago by Control Alt
Easily generate relevant tags for your Obsidian notes.
CSV Codeblock
3 years ago by elrindir
Plugin for obsidian to render csv syntax in codeblocks.
Frontmatter generator
3 years ago by Hananoshika Yomaru
A plugin for Obsidian that generates frontmatter for notes
Multi Properties
3 years ago by fez-github
Plugin for Obsidian that allows user to add properties to multiple notes at once.
File Index
3 years ago by Steffo
Obsidian plugin to create a metadata file about the files present in the Vault
Sort Frontmatter
3 years ago by Kanzi
Sort frontmatter automatically
Additional Icons
3 years ago by Matthew Turk
Add additional iconsets to Obsidian
Metadata Icon
3 years ago by Benature
change metadata entry icon
Markmap to CSV
3 years ago by maxlee
obsidian plugin for conversion from markmap to csv
Update Time Updater
3 years ago by MURATAGAWA Kei
Obsidian plugin to update the 'update time' element when saving or manually.
Draft Indicator
3 years ago by Brian Boucheron
Show draft status with ✎ icons in the Obsidian file explorer.
Update Time
2 years ago by Sébastien Dubois
Obsidian plugin that updates front matter to include creation and last update times
Watched-Metadata
2 years ago by Nail Ahmed
Watches for changes in metadata and updates the note content accordingly.
SQLSeal
2 years ago by hypersphere
Query your files using SQL directly from your Obsidian Vault
Front Matter Timestamps
2 years ago by LighthouseDino
Track note created and modified times in front matter, kept up to date automatically.
Image Metadata
2 years ago by alexeiskachykhin
Adds image metadata editing capabilities to Obsidian
Virus Total Enrichment
2 years ago by ytisf
An Obsidian plugin to enrich a note with VirusTotal API.
Live Variables
2 years ago by Hamza Ben Yazid
Define variables in your note's properties and reuse them throughout your content.
Onto Tracker
2 years ago by Jacob Hart
Plugin for obsidian allowing project management with ontologies.
Recent Files
6 years ago by Tony Grosinger
Display a list of most recently opened files
Dataview
6 years ago by Michael Brenan
A data index and query language over Markdown files, for https://obsidian.md/.
CSV Editor
6 years ago by death_au
Edit CSV Files in Obsidian
Supercharged Links
6 years ago by mdelobelle
obsidian plugin to add attributes and context menu options to internal links
Charts View
5 years ago by caronchen
Data visualization solution in Obsidian, support plots and graphs.
MetaEdit
5 years ago by Christian B. B. Houmann
MetaEdit for Obsidian
CSV Table
5 years ago by Adam Coddington
Have a CSV file you want to render some or all of the data from? This plugin allows you to display that data in your obsidian preview.
Force note view mode
5 years ago by Benny Wydooghe
Metadata Extractor
5 years ago by kometenstaub
Obsidian Plugin that provides metadata export for use with third-party apps.
Update time on edit
5 years ago by beaussan
Metadata Auto Classifier
2 years ago by Beomsu Koh
Obsidian plugin that uses AI providers to generate tags and frontmatter metadata for your notes.
Fold Properties
2 years ago by James Alexandre
Adds Fold/Unfold Properties Function to Folder Context Menu
Featured Image
2 years ago by Johan Sanneblad
Obsidian plugin to automatically set a featured image property in your notes based on the first image, YouTube link, or Auto Card Link image found in your document. This allows you to create rich note galleries using Folder Notes and Dataview.
ExMemo Assistant
2 years ago by ExMemo AI
Using LLMs to manage files and generating metadata such as tags and summaries.
KoReader Highlight Importer
2 years ago by Tahsin Kocaman
Imports highlights and metadata from KoReader into Obsidian notes
Frontmatter Markdown Links
2 years ago by mnaoumov
Obsidian Plugin that adds support for markdown links in frontmatter
Boardgame Search
2 years ago by Marlon May
A plugin to create notes for boardgames based on the BGG API
Sentinel
2 years ago by Giorgos Sarigiannidis
A plugin for Obsidian that allows you to update properties or run commands based on document visibility changes.
Current File Tags
2 years ago by Trung Tran
Dataview Autocompletion
2 years ago by Daniel Bauer
Hephaistos Importer
2 years ago by Skallaturi
Non-official plugin for importing characters from Hephaistos.online to Obsidian.md
NetClip
2 years ago by Elhary
this plugin is for Obsidian that allows you to browse the web and clip webpages directly into your vault.
Media Companion
2 years ago by Nick de Bruin
Fold Properties By Default
2 years ago by Tommy Bergeron
Always have editor/metadata properties folded by default.
LLM Tagger
2 years ago by David Jayatillake
Paste Image Into Property
2 years ago by Nito
My Thesaurus
2 years ago by Mara-Li
A plugin that auto tags file based on contents and a csv file or a Markdown table (inspired by https://github.com/pmartinolli/MyThesaurus)
Content Cards
2 years ago by leo
Insert content cards in Markdown, such as timeline, highlightblock, target card, book information card, music information card, movie information card, photoes ablum, business card, content subfield, countdown, SWOT,BCG.
AI Tagger Universe
2 years ago by Hu Nie
An intelligent Obsidian plugin that leverages AI to automatically analyze note content and suggest relevant tags, supporting both local and cloud-based LLM services.
Note Favicon
2 years ago by mdklab
Obsidian plugin – Show Favicon from Metadata
CSV All-in-One
2 years ago by hihangeol
File Title Updater
2 years ago by wenlzhang
An Obsidian plugin that synchronizes titles between filename, frontmatter, and first heading in your notes.
Kanban Status Updater
2 years ago by Ankit Kapur
Obsidian plugin that automatically updates the note property when card is moved to a column.
Simple File Info
2 years ago by Lukas Capkovic
Another Name
2 years ago by Jiyuan Wang
Add a subheading to your note in Obsidian
Title-Only Tab
2 years ago by tristone13th
a plugin of obsidian for to change showing tab name to short
GitHub Integration
a year ago by Kirill Zhuravlev
Plugin that fetch your github stars into notes
Note UID Generator
a year ago by Valentin Pelletier
Allow you to automatically generate UID for the notes in your vault.
Simple Banner
a year ago by Sandro Ducceschi
Visually enhance your Obsidian notes with a customizable banner. Supports icons and time/date display.
Current View
a year ago by Lucas Ostmann
Automatically set the view mode (Reading, Live Preview, Source) for notes in Obsidian using folder rules, file patterns, or frontmatter.
Symbol linking
a year ago by Evan Bonsignori ; Mara-Li
Adds ability to link with any trigger in Obsidian. Each trigger can limit linking to specific folders or file.
Frontmatter Metadata Link Classes
a year ago by Varvara Zmeeva / zmeeva.io
Enhanced internal links with automatic classnames based on frontmatter metadata.
Insert Arknights URL Banner
a year ago by Rerurate_514
Obsidianのプラグイン、img_dwnldr_wikigg_ak_ktに保存されている画像を選択してbannersプロパティに簡単に設定できるプラグイン
Template Folder
a year ago by LucasOe
Obsidian plugin to move notes to a folder when applying a template.
Discrete
a year ago by shkarlsson
Publish Note to Mowen Note
a year ago by ziyou
This is a mowen plugin for Obsidian (https://obsidian.md)
Papers
a year ago by William Liang
An obsidian plugin to retrieve and import research papers.
Note Codes
a year ago by Ezhik
Reference your Obsidian notes from anywhere with simple 4-character codes.
Maps
a year ago by Obsidian
Map layout for Obsidian Bases. Display your notes as an interactive map view.
Pretty Properties
a year ago by Anareaty
Book Clipper
a year ago by Hossein Fardmohammadi
Save book details from websites into your notes
Conditional Properties
10 months ago by Diego Eis
Automate frontmatter property updates in your Obsidian notes using simple conditional rules.
Connections
10 months ago by Eric Van Cleve
Frontmatter to HTML Attributes
8 months ago by Tarek Saier
Kanban Bases View
8 months ago by I. Welch Canavan
A kanban-style drag-and-drop custom view for Obsidian Bases that allows you to organize your notes into columns based on any property.
Banners Reloaded
8 months ago by Dani García
Banners Reloaded offers a simple, fast, and lightweight way to add beautiful and customizable banners to your Obsidian notes. Designed for performance, it gives you powerful control over your vault's appearance through an intuitive interface. Set banners globally, by tag, or override them on any individual note.
Calendar Bases
8 months ago by Edrick Leong
Feed Bases
6 months ago by edrickleong
Bases Charts
6 months ago by Moritz Jung
Snipd Official
6 months ago by snipd-app
Base Board
5 months ago by mderazon
Kanban Plugin For Obsidian
Life Tracker
5 months ago by Sébastien Dubois
Capture and visualize the data that matters in your life
Better Export PDF
5 months ago by l1xnan
Obsidian PDF export enhancement plugin
April Automatic Timelines
5 months ago by april-gras
Simple timeline generator plugin for story tellers using obsidian
TaskNotes
5 months ago by callumalpass
Task and time-tracking management with calendar integration for Obsidian
JSON-CSV Importer
4 months ago by farling42
Plug-in for Obsidian.md which will create Notes from JSON files
Bases Paginator
4 months ago by sean2077
A plugin for Obsidian that adds a paginated table view with column filtering capabilities to Obsidian Bases.
Property Panels
3 months ago by Eva Chen
Display and edit Obsidian frontmatter properties in configurable panels that stay inside the note's scrollable content.
Power Bases
3 months ago by Power Plugins
Add board, calendar, timeline, chart, gallery, and table views to Bases, with inline editing, colors, rollups, field types, formulas, and CSV import.
Power Tables
3 months ago by Power Plugins
Color, calculate, and sort Markdown tables in place: cell fills and text colors, live formulas that recalculate, and column sorting, all stored as plain Markdown.
Bulk Tag Manager
3 months ago by ducktapekiller
A comprehensive utility to standarize the entire front matter. Features a dashboard for bulk renaming, enforcing casing rules (lowercase/uppercase), swapping separators (snake/kebab), and generating master tag lists.
Note Types
3 months ago by jsmorabito
Canvas Bases
3 months ago by callumalpass
Canvas-style layouts and JSON Canvas materialization for Obsidian Bases.
Image Manager
3 months ago by David V. Kimball
Insert, rename, and sort external images by transforming them into local files within your notes.
Gantt this
3 months ago by Altarok
Obsidian plugin showing multiple TTRPG calendars at once in one gantt chart.
Link Structure
3 months ago by Dmitry Fert
Obsidian plugin that adds a Structure view for Bases, displaying notes as a hierarchical tree based on the up property. Supports drag-and-drop reorganization with automatic link updates, multi-select, and Templater integration.
MD Butler
3 months ago by Peter Petschownik
Automatically manages YAML frontmatter fields for all notes. A reliable alternative to Templater formulas for consistent metadata.
PixNote
3 months ago by Sofia Milton
Metadata Validator
3 months ago by flowing-abyss
Manifest-driven metadata validation for Obsidian.
Bases Board
3 months ago by flowing-abyss
Kanban and gallery views for Obsidian Bases.
Auto Move File
2 months ago by sx kan
Automatically move files based on frontmatter properties in Obsidian
Vault Shelf
2 months ago by Lukas Proprentner
Your Obsidian vault as a browsable library: shelves of books built from titles, dates, people, tags, folders or any note property. Customizable to make it your own.
Antigravity
2 months ago by ke yongcheng
Autonomous vault management, knowledge organization, and agentic intelligence powered by Google Antigravity (agy).
Notion Suite
2 months ago by craigstfn
Obsidian plugin: Notion-style databases, views, relations, rollups, charts and a / menu
Mapa neuronal
2 months ago by Felipe Córdova
A graph that explains itself: your Obsidian vault as a layered neural map, with the reason each note links to the next.
Objects
2 months ago by Finn
Base Source Editor
a month ago by fronglemog
Edit the YAML source of a Base without leaving Obsidian.
Split Groups
a month ago by Fuad Laguda
Obsidian Bases view that puts a note in every group its list property names
Advanced Metadata Cache
a month ago by Michael Naumov
Maintains the vault indexes that are otherwise rebuilt on every call, and answers the built-in lookups from them, so backlinks come from an index instead of a fresh scan of every note.
Bases Timeline View
a month ago by xjiaxiang
timeline view for obsidian bases
F2 Quick Rename
a month ago by 熊猫别熬夜
F2 to quick rename the current note, or an embedded note/image under the cursor (including wiki aliases and markdown image alt text).
Ontomark
a month ago by DreamLab AI
Offline ontology reasoning, SPARQL and reviewed frontmatter edits for Obsidian
Home Cards
a month ago by ttangents
Give your vault a homepage: a start page or dashboard of note cards from recent notes, properties, tags, links and Bases, with pins, project boards and pages for any folder or tag.
Cool Bases
24 days ago by pattgue
Design cool card views for Obsidian Bases.
Choreday
24 days ago by Paul Chiu
Obsidian plugin for tracking recurring household chores as plain-markdown notes, with a due list, one-tap done, snooze and skip, and a short history per chore.
Masonry
23 days ago by Mario Miletta
A visual masonry browser for Obsidian notes and filtered Bases.
Horizon
23 days ago by Mario Miletta
Horizon — calendar for your Obsidian vault: daily and periodic notes, tasks, and dated notes in one place.
Coherence Wizard
19 days ago by coherence-wizard
Obsidian Plugin With Powerful Tools For Creating Order and Coherence
Markdown Tasks
19 days ago by jsmorabito
Note Player
16 days ago by xia-ataraxia
Obsidian plugin that plays note-backed playlists with YouTube (via yt-dlp), cached audio, and local files.
Just Simple Planner
11 days ago by David Hurt
A local visual planner for Obsidian: Markdown notes on a continuous timeline, connected threads, compact previews, tasks and notebook view.
CountCraft
11 days ago by meet-v
Obsidian Plugin: CountCraft is a powerful note statistics calculator that counts words, characters, lines, and headings, storing results in customizable properties.