Authentication
Gesttalt uses the OAuth 2.0 authorization framework. Authorization Code with Proof Key for Code Exchange is recommended for mobile and desktop applications.
- Authorization
/oauth2/authorize- Token
-
/oauth2/token - Discovery
/.well-known/oauth-authorization-server
Dynamic client registration
Standards-aware applications can register at /oauth2/register. You can also create and revoke clients in the dashboard.
Application programming interface
Read the machine-readable OpenAPI document or use the interactive reference. Scopes separate content and media, while theme sessions stay behind the Model Context Protocol authorization scope.
Model Context Protocol
Connect compatible tools to /mcp
with the mcp
authorization scope. Tools can list, create, update, and publish content or themes.
Live theme editing
Theme editing happens entirely through the Model Context Protocol. Ask your agent to call create_theme_editing_session. It receives an isolated copy of the active theme, the standard variable contract, and a preview address you can open beside the conversation.
Calls to update_theme_editing_session
accept partial variable changes, preserve omitted values, change only that in-process draft, and reload every connected preview. The variables cover semantic colors, font families and scales, spacing, radii, sizes, and shadows. They adapt the
Theme UI (user interface) theme specification
to stable Cascading Style Sheets custom properties.
Prefer variables for visual decisions and the stylesheet for component rules. The three Liquid templates define route-specific document structure:
index_template
for the home page, article_template
for blog posts, and page_template
for standalone pages. When the result is ready,
publish_theme_editing_session
makes it active. discard_theme_editing_session
closes the session without changing the publication.
Migrate from Zola
mix gesttalt.import_zola /path/to/website --email you@example.comThe importer preserves titles, slugs, descriptions, publication dates, and Markdown bodies from the existing content folder.