Skip to content

Repository files navigation

Fileclass

Give your notes typed, validated properties with guided input — define reusable note types, like a schema for your frontmatter.

You define reusable note types (called fileClasses), each with a fixed set of typed fields. For example, a Book type where author must be a link to a Person note, status is one of Reading / Read / Abandoned, and rating is a number from 1 to 5. Every note of that type then gets guided input for those fields (dropdowns, date pickers, link autocomplete), and Fileclass flags any note where a field is missing or has the wrong type.

In short: a schema and input forms for your frontmatter. You define the fields and fill them in; the core Bases plugin queries and displays them. If you have used Notion databases or Metadata Menu, it is that idea — but frontmatter-only, with no Dataview dependency.

📖 Documentation: https://mdelobelle.github.io/fileclass/

🎬 Start here — Tour #1 (5 min): from a vault where every note types its own properties by hand to a typed library, install and setup included: https://www.youtube.com/watch?v=rScC86I2vlg

Then one short video per feature, a couple of minutes each: the whole series.

It is the successor to Metadata Menu (same author). If you rely on Dataview inline fields (key:: value), stay on Metadata Menu; Fileclass is frontmatter-only.

Why Fileclass

Metadata Menu used Dataview to feed field values — the allowed values or file candidates for a Select/File field came from a DataviewJS query. Obsidian now ships its own query engine, Bases, so Fileclass uses that instead: you point a field at a .base view, and the notes/values that view returns become the field's candidates. Field-value filtering runs entirely on core Obsidian.

  • No Dataview dependency, lighter bundle.
  • Frontmatter-only — reads via the metadata cache, writes via processFrontMatter; note text is never parsed or edited.
  • Rebuilt with quality & security in mind — full unit-test coverage, TypeScript strict.
  • Your existing fileClass definitions work as-is — the Metadata Menu format is unchanged.

Features

  • fileClasses: typed schemas with inheritance (extends / excludes), bound by alias, tag, path, bookmark group, Base view, or a global default.
  • Typed fields: Input, Number, Boolean, Select, Cycle, Multi, Date/DateTime/ Time, File/MultiFile, Media/MultiMedia, Object/ObjectList, JSON/YAML, and Canvas fields — with guided input everywhere (modal, native Properties editor, context menus, indicators).
  • Data quality: required fields and per-note validation, surfaced in the table view and via the CLI/API.
  • Views: generate a .base for a fileClass and keep it in one-way sync; an editable fileclass-table Bases view with in-cell typed editing.
  • Terminal: a public plugin API (on the plugin instance), plus a standalone CLI and interactive TUI — in their own repo, fileclass-cli — to inspect, validate and edit typed frontmatter from the command line.

Requirements

  • Obsidian 1.12.7+ with the core Bases plugin enabled.
  • Schema and typed input work without Bases; query-dependent features (File/Media candidates, generated views) require it. They rely on Bases internals validated on 1.13.2; on older versions they degrade gracefully rather than erroring.

Installation

Settings → Community plugins → Browse, search for Fileclass, install and enable it. Then point it at a folder for your class notes — the first minute of Tour #1 does exactly that.

To install a build by hand instead, copy main.js, manifest.json and styles.css from the latest release into <your-vault>/.obsidian/plugins/fileclass/, then reload Obsidian.

Coming from Metadata Menu

Your fileClass notes are read as-is. Two things changed:

  • Lookup and Formula are out of scope — use Bases views for reverse relations and computed columns. Existing ones load read-only.
  • The old FileClassView is replaced by fileclass-table — a Bases view with editable cells.

Metadata Menu still works, but don't run both at the same time. It is in maintenance mode and won't receive further features.

Feedback

Bug reports, ideas and recommendations are very welcome — please open an issue: https://github.com/mdelobelle/fileclass/issues

License

MIT

About

Give your notes typed, validated properties with guided input — define reusable note types, like a schema for your frontmatter. Successor to Metadata Menu, powered by Bases.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages