@happyvertical/smrt-planner
The s-m-r-t app planner as a mountable Svelte component with cookbooks, recipes, layout, theme, and export tabs, a typed command set, and a plan snapshot.
What it gives you
The s-m-r-t app planner as a mountable Svelte component with cookbooks, recipes, layout, theme, and export tabs, a typed command set, and a plan snapshot.
- 01Add recipes or whole packages and an app mock-up assembles around them: navigation, a list and record view with a form per model, and help pages
- 02Ready-made cookbooks for a bakery, a mechanic, a welder, a yoga studio, and other small businesses; the cookbook saves in the browser or is left to the host
- 03Commands are published as tool definitions, so an LLM or MCP server can drive the planner
Mount it in a host page
Planner and createPlannerController come from the package root, which is Svelte source and needs a Svelte-compiling bundler. Its props are all optional: controller, basePath, inference, layout, persistence, themeControls, advancedStylesHref, defaultTitle, tabs, backLink, and onready. The controller runs commands such as add_recipes, set_policy, apply_cookbook, and undo, and returns a snapshot and receipt or a typed error. A host that owns an AppShell mounts PlannerControls inside it with PLANNER_SHELL_EDGE_TOGGLES and PLANNER_SHELL_PANEL_DEFAULTS.
What the tabs cover
The tabs are cookbooks, recipes, features, layout, theme, settings, and export. The pencil in the header edits the menu and every section page in place, and each edit lands in the cookbook layout and overviews. Metric, records, and chart widgets read the in-browser sample data. Theme offers palettes, appearance, a brand color wheel, fonts, and an Advanced Styles CSS editor. Export shows what the cookbook holds, a prompt to copy for a coding agent, and the download.
Drive it from a model
commandTools from the commands subpath is every command as name, description, and inputSchema. The snapshot is a compact read-only plan of a few kilobytes, fit for a prompt. Passing inference switches the assistant on; without it the planner has no chat icon. A plain Node server uses the core subpath for the schemas, buildHostPrompt, parseHostReply, the cookbook library, and createHeadlessPlanner. It serves the prebuilt app from the app subpath. HostPlanner mounts the same planner inside a Kitchen host such as an MCP app or widget.
Mounted on this site as build-a-boilerplate
This site mounts the complete Planner on its build-a-boilerplate page with a backLink to the documentation. An on-device browser model is offered first; a bring-your-own endpoint, with any key held in memory for the tab, is the alternative. The page is the site name, passed as defaultTitle; the package keeps its own.
Open build-a-boilerplate →Released with the framework
The planner lives in the smrt monorepo and releases in lockstep with every other smrt package. Its catalog is a build output generated from the packages in the same release, so the published planner cannot drift from them.
Package UI
Components in this package
Import these public components directly. When the package also exports playground entries, the next tab renders its real components with package-owned example data.
Package previews
No playground module yet
This package does not currently export a ./playground module. Its component names and import path remain available in the Components tab.
Intentionally not registered
Generated interface
REST
The exact route set comes from each model's @smrt({ api }) policy
and the application manifest—not from a second controller definition.
A browser component with no models. It describes the REST routes, MCP tools, and CLI commands other packages generate; it generates none itself.
Generated interface
MCP
AI tools are generated from the methods you explicitly include. Their inputs are validated against the same model metadata used by REST and CLI.
A browser component with no models. It describes the REST routes, MCP tools, and CLI commands other packages generate; it generates none itself.
Browser-native agent interface
WebMCP
The generated web definitions carry the same tool names, descriptions, and JSON Schema
inputs as MCP. smrt-web registers them with document.modelContext.
A browser component with no models. It describes the REST routes, MCP tools, and CLI commands other packages generate; it generates none itself.
Generated interface
CLI
The app CLI turns manifest resources into predictable operator commands while keeping package-specific actions close to their models.
A browser component with no models. It describes the REST routes, MCP tools, and CLI commands other packages generate; it generates none itself.