Eight template types
Header, Footer, Single, Archive, Search, 404, Loop and Part. Set a site default in Settings, or override it on any individual page.
Features
Shilpi replaces the page builder, the form plugin, the snippet plugin, the SEO plugin, the font manager and the AI bolt-on with a single system that agrees with itself.
83
Elements across 8 groups
35
MCP tools for agents
8
Template types with native routing
22
Health checks on every install
The canvas
Click an element on the canvas and the inspector opens on the exact node, with a breadcrumb showing where you are in the document, right down to main › section.hero › h1 › span.
/* Desktop */
--color-accent: #6a5af9;
--pad-x: 40px;
--sect-y: 120px;
/* Tablet ≤1024px */
--pad-x: 32px;
/* Mobile ≤767px */
--pad-x: 20px;
/* every class reading it follows */
.section { padding: var(--sect-y) var(--pad-x); }
Design system
Variables are the source of truth for colour, spacing, type and effects. Give a token a Tablet and a Mobile value and every global class reading it becomes responsive at once, one token, three sizes.
Templates & dynamic content
Build a header once, a single-post layout once, an archive once, then let WordPress route to them the way it always has.
Header, Footer, Single, Archive, Search, 404, Loop and Part. Set a site default in Settings, or override it on any individual page.
Name a template single-product, archive-category-news, search or 404 and it mirrors the WordPress template hierarchy. No condition builder to configure afterwards.
Drop {post:title}, {post:image}, {author:name} or any ACF field straight into markup with {post:meta:key}.
Design one Loop template, point a loop container at a post type or taxonomy, and let it repeat, with pagination that behaves like WordPress expects.
Every part gets a shortcode, so a reusable block can appear inside a classic post or another plugin’s output.
Tokens like {site:title}, {site:tagline}, {menu:slug}, {part:slug} and {year} keep headers and footers in sync with WordPress, no shortcode required.
AI & MCP
Shilpi runs its own MCP server in WordPress. Your agent gets 35 scoped abilities, not SSH, not FTP, not wp-config.php.
One switch exposes the MCP endpoints. Turn it off and existing credentials immediately stop being able to edit the site.
OAuth is recommended, the agent signs in through the browser and no password ever lands in a config file. Application passwords are there for clients that need them, and each one is revocable on its own.
Copy the built-in agent instructions into your first message, or save them once in a CLAUDE.md or AGENTS.md. The agent then reads your existing classes and variables before writing anything.
Read the report, check the saved records, and switch off temporary permissions from the Security screen when the job is done.
Trusted Markdown files that teach an agent the conventions before it starts. Upload your own to add house rules, and since 1.9.3 an active plugin can contribute one of its own, which is how WooCommerce Kit teaches the agent about the store.
shilpi-theme ShilpiPages, templates, parts, design systems, dynamic and ACF tokens, query loops, forms, sliders, shortcodes, PHP snippets, local fonts and project assets.
wordpress-core WordPressNative posts, pages, media, menus, users, settings and site administration.
Works with Claude Code, Cursor and any MCP-compatible client.
Content operations
Design was never the whole job. Menus, taxonomies, SEO metadata and a storefront are now first-class abilities, readable and writable from the same permission boundary as everything else.
Shilpi → Plugins lists the free companion plugins and installs and activates the one you pick, in place. Each keeps itself up to date afterwards through WordPress’s own update mechanism, no licence key, nothing to download by hand. See what is available.
Read and write the title, description, canonical URL, robots directives and social card for any page or post. Existing Yoast and RankMath installs keep working, Shilpi reads what is already there rather than fighting it.
The storefront ships in Shilpi WooCommerce Kit, free, GPL, installed in one click from Shilpi → Plugins. It brings the storefront elements, ready-made Cart, Checkout and My Account designs, and the store MCP tools, while WooCommerce keeps owning cart and checkout. A store that does not need it does not carry it.
Create menus, order their items and assign them to the Primary or Footer location. Register and populate categories, tags and custom taxonomies, then point a query loop straight at them.
Upload and configure front-end script files with an explicit position and load order, so third-party behaviour is registered rather than pasted into a footer slot and forgotten.
Bring in a single template from another Shilpi install, or an entire site at once, with the last twenty import runs kept on record so you can see exactly what landed.
/* One concern per snippet. */
add_action( 'init', function () {
register_post_type( 'project', array(
'public' => true,
'label' => 'Projects',
'has_archive' => true,
'supports' => array( 'title', 'editor' ),
) );
} );
Code Hub
The alternative to a functions.php nobody remembers editing. Four scopes, each with its own rules, each with an explicit on switch.
PHP editing sits behind a temporary permission. Switch it on for the job, switch it off when the code is done, the Security screen shows how many permissions are open at any time.
Element library
Set any element to Active, Hidden or Disabled. Hiding an element takes it out of the palette but leaves existing pages rendering exactly as they are, nothing you already built breaks. The eight groups below ship in the theme; the storefront adds a ninth when you install the free WooCommerce Kit.
Container, Section, Grid, Divider, Spacer
Heading, Basic Text, Rich Text, Button, Text link, Icon, Image, Video
Tabs, accordion, slider, table, breadcrumb, pagination, social links and more
Gallery, lightbox, background video, audio, embed
Query loop, post field, term list, author box, archive title, pagination
Every field type, plus the submit and success states
Menus, search, comments, login state and shortcode blocks
Raw HTML, script slot, conditional wrapper, anchor and skip links
Product grid, gallery, title, price, rating, stock, add to cart, tabs, related products, mini cart, wishlist, comparison, recently viewed and the rest, a ninth palette group that appears once the free WooCommerce Kit is active, and disappears with it.
Native systems
Submissions are stored in WordPress and readable in the dashboard. Configure the recipient, the transport and SMTP credentials once, then watch the delivery log to see exactly what left the server. Set a retention window in days and old submissions clean themselves up.
Upload your web fonts and serve them locally. One switch blocks every Google Fonts request site-wide, including the ones plugins try to make, so no visitor IP reaches Google.
Scripts, JSON and media served from the right place, with validated uploads and an explicit load order instead of a hotlink to somebody else’s CDN.
Security
Everything risky is a temporary permission with a visible counter and a single button that closes all of them.
Performance
Neither is a lie about “optimisation”, they are two real trade-offs, described plainly, switchable in one dropdown.
Start building
Design it on a canvas, let an agent do the repetitive half, and hand over a codebase you would be happy to inherit.