zhi

🧪 Example Plugins for zhi

Welcome to the examples! Each plugin below is a fully working, buildable project you can use as a starting point for your own plugins. Build them all with make build-examples or go explore one at a time. 🚀


🔴 zhi-config-pokedex

A configuration plugin that manages a small Pokedex – because every good config system needs Pokemon data. Demonstrates:

See zhi-config-pokedex/main.go and the Configuration Plugin docs for details.


⚡ zhi-transform-pokedex

A transform plugin that evolves starter Pokemon before display. It’s super effective! Demonstrates:

See zhi-transform-pokedex/main.go and the Transform Plugin docs for details.


📁 zhi-store-json

A store plugin that persists configuration trees as JSON files on disk. Simple, readable, debuggable. Demonstrates:

This example does not support versioning or encryption.

See zhi-store-json/main.go and the Store Plugin docs for details.


🧠 zhi-store-memory

A store plugin that persists configuration trees in memory. Poof – gone when the process exits, perfect for testing. Demonstrates:

This example does not support versioning or encryption.

See zhi-store-memory/main.go and the Store Plugin docs for details.


🔑 zhi-store-vault

A store plugin backed by HashiCorp Vault’s KV v2 secrets engine. For when your configs need a bodyguard. Demonstrates:

See zhi-store-vault/main.go and the Store Plugin docs for details.


🪞 zhi-store-mirror

A meta-plugin that mirrors writes to multiple stores – write once, persist everywhere. This is the prime example of the meta-plugin SDK in action. Demonstrates:

See zhi-store-mirror/main.go and the Meta-Plugin SDK docs for details.


☕ zhi-config-javabean

A config plugin written in Java using Bean Validation and GraalVM native-image. Proof that zhi plugins aren’t Go-only! Demonstrates:

See zhi-config-javabean/ and the Java Plugin Development docs for details.


🌐 zhi-ui-httpapi

A UI plugin that exposes the zhi configuration engine as an HTTP/JSON API. REST lovers, this one’s for you. Demonstrates:

See zhi-ui-httpapi/main.go and the UI Plugin docs for details.


🤖 zhi-ui-mcp-sse

A UI plugin that exposes the zhi configuration engine as an MCP (Model Context Protocol) server over HTTP. Let your LLM do the configuring! Demonstrates:

A builtin MCP stdio plugin (mcp-stdio) is also available for direct use with LLM clients that support stdio transport (e.g. Claude Desktop, Claude Code). Launch it with zhi edit --ui mcp-stdio.

See zhi-ui-mcp-sse/main.go and the UI Plugin docs for details.


🖥️ zhi-ui-webui

A browser-based Web UI plugin that serves a full configuration editor on localhost. For when the terminal isn’t fancy enough. Demonstrates:

See zhi-ui-webui/ and the UI Plugin docs for details.