v0.25.0: A New Theme System, AWS SSM Tunnels and Startup Improvements TabularisDB released v0.25.0, which turns themes into installable declarative packages managed through the same registry and install lifecycle as driver plugins, adds AWS Systems Manager Session Manager port forwarding as a third tunnel method alongside SSH and Kubernetes, and cuts the JavaScript loaded at startup. The release also lets every MCP tool return TOON instead of JSON, has the standalone MCP process detect plugins installed, disabled or removed while running, and surfaces PostgreSQL and MySQL table and column comments in the schema inspector, sidebar and grid. Theme packages are ZIP archives with a `.tabularium` manifest of `kind: "theme"` and one JSON file per variant, stored under `plugins/themes//` beside `plugins/drivers//`, and are never executed. v0.25.0: A New Theme System, AWS SSM Tunnels and Startup Improvements v0.25.0 follows v0.24.0 https://tabularis.dev/blog/v0240-notebook-query-plans-proxy-settings-result-fonts with a release about the things around your queries rather than the queries themselves. Themes stop being a fixed list of twelve presets and become packages you install, preview, update and remove the way you already handle driver plugins, with a command-line tool for authors. Connections gain a third tunnel method, AWS Systems Manager Session Manager port forwarding, next to SSH and Kubernetes. Available updates for the app and for installed plugins are counted in the sidebar and announced once at startup instead of waiting in Settings. Startup itself loads far less JavaScript. On the MCP side, every tool can return TOON instead of JSON, and the standalone MCP process now notices plugins that were installed, disabled or removed while it was running. Table and column comments from PostgreSQL and MySQL reach the schema inspector, the sidebar and the grid. The community fixes cover read-only JSON viewers, plugin display names, schema text selection and MongoDB replica set URIs. Themes Become Installable Packages PR 793 https://github.com/TabularisDB/tabularis/pull/793 , with the follow-up 803 https://github.com/TabularisDB/tabularis/pull/803 , addresses 791 https://github.com/TabularisDB/tabularis/issues/791 : themes are now declarative packages that travel through the same registry and the same install lifecycle as driver plugins. A theme package is a ZIP with a .tabularium manifest of kind: "theme" and one JSON file per variant, typically a light and a dark one. It contains data only. Nothing in a theme package is executed, and theme packages are excluded from the driver activation path entirely. Two surfaces change. Settings → Appearance → Manage themes lists built-in, personal and installed themes together. Preview applies a theme temporarily and shows a read-only SQL sample rendered by the shared Monaco renderer; Cancel or Escape restores the saved selection, Apply saves it. Installed packages are read-only; Duplicate as personal creates an editable copy. The application theme and the SQL editor theme are selected independently, and the Follow System light and dark picks from v0.22.0 continue to work with installed variants. Settings → Plugins gains a Filter by type control with Drivers and Themes , so theme packages can be installed from the registry, updated, enabled, disabled and uninstalled next to drivers. Removing a theme package reuses the plugin removal dialog and states that every variant of the package is affected. Installing a package never selects a variant on its own: close the dialog and pick it explicitly in Appearance. The lifecycle underneath is the careful part. The archive is inspected with size bounds, every path and payload is validated, the package is staged privately under a lock, and the install is committed by atomic replacement with rollback on failure. Interrupted operations have an explicit Recover interrupted installs action rather than silent repair. A saved selection that points at a package that is currently unavailable, because it was disabled or its file went missing, falls back to a built-in theme without overwriting your preference; the moment the package is back, the selection is restored. Packages are stored by kind, in plugins/themes/