MVP Runs on your machine · no account
Operate your site by talking to it.
A self-hosted content platform. Every admin capability is also a tool an agent can call.
16:9 · 60–90 s screen capture · muted, captions on.
An operator asks for a redirect. The admin changes on screen.
You
Assistant
- redirects_create
- seo_regenerate_sitemap
/blog to /articles and regenerated the sitemap.$ git clone https://github.com/leonaburime-ucla/Tovu.git
$ cd Tovu && npm install
$ npx tsx apps/website/src/cli/main.ts init my-site
$ npx tsx apps/website/src/cli/main.ts serve my-site
# prints two addresses: the site, and its admin.
- my-site/
- content.db ← everything
- uploads/
- themes/
- basic/
- plugins/
- skills/
- theme.json
- pages_write_html
- redirects_create
- forms_list_submissions
- seo_regenerate_sitemap
- comments_approve_comment
- theme_read_file
- members_disable
Typed, permissioned, the same ones the admin uses.
For agents
One capability. Two front doors.
Built once, exposed twice: a screen a person clicks, a typed tool an agent calls. Same definitions, same permissions, same validation.
One real tool call, 8–12 lines. The same call, three ways, via the tabs.
- MCP
- HTTP
- CLI
The tool surface
What it can be asked to do.
Each ships tool definitions next to its admin screens.
- Pages
Structure, templates and routing.
- Posts
Drafts, publishing and search.
- Media
Uploads and generated assets.
- Themes
Install, switch, edit files.
- Forms
Definitions, fields and submissions.
- Members
Accounts, roles and access.
- Newsletter
Lists, issues and sends.
- Comments
Threads and moderation.
- Taxonomy
Categories, tags and terms.
- Widgets
Blocks, regions and embeds.
- Redirects
Rules, status codes and hit counts.
- SEO
Metadata, overrides and sitemaps.
- Deployments
Builds and static export.
- Webhooks
Outbound event delivery.
- External MCP
Third-party tool servers.
- Credentials
Stored secrets, sealed at rest.
- Recovery
Restore points and rollback.
- Plugins
Bundled and installed extensions.
Themes
Four ways to build a front end.
A theme declares its tier; the renderer picks the engine. Plain HTML is first-class, not a fallback.
Static
html + css + jsPlain pages. What you write is what ships.
Templated
liquidjsLoops, conditionals and partials.
Handlebars
handlebarsThe same idea, in a syntax you may already use.
Declarative
json block treesNo template language. Structure an agent can edit safely.
Choose how to start.
Run it yourself
From an empty folder to a published post in ten minutes.
- Node.js 24 or newer, git and npm. Nothing else.
- No Docker, no database server.
- Each site carries its own SQLite database.
- No signup, no account, no hosted plan.