Declarative application framework for Nim

One meaning.
Every interface.

Define application capabilities and interactions once. Project them into product interfaces and development surfaces—from CLI and Web to VS Code, playgrounds, test UIs, and mocks.

Under design · Early development

APPLICATIONDSL
CLI
TUI
MCP
WEB
DESKTOP

Your application is
not its interface.

Applications increasingly expose the same capabilities through many interfaces. Yet each implementation repeats operations, arguments, types, validation, errors, and workflows.

Rhyzora makes those semantics explicit — and reusable.

Contract to interface.
Without the duplication.

Connect existing systems through typed engine contracts, express how their capabilities are used, and let each backend create the right experience.

01 / INPUT

Engine sources

  • Native Nim
  • OpenAPI
  • Structured CLI
  • MCP tools
normalize
02 / CONTRACT

Typed capabilities

operation searchUsers:
  input: query, limit
  output: seq[User]
  effect: read
project
03 / OUTPUT

Product & dev surfaces

CLITUIMCPWEBDESKTOPVS CODEPLAYGROUNDTEST UIMOCK

The same contract.
A better test harness.

Rhyzora can project its typed operations and application semantics into tools for authoring, exploration, mocking, and repeatable testing—not only end-user interfaces.

01 / DEV

VS Code extension

Inspect contracts, run operations, preview application flows, and provide authoring support inside the editor.

02 / DEV

Playground

Explore operations and interactions immediately with generated inputs, outputs, validation, and state.

03 / DEV

Test UI & mocks

Generate a controllable UI and mock engines for scenarios, edge cases, errors, and workflow checks.

04 / DEV

Harness adapters

Wrap contracts as fixtures, drivers, and programmatic APIs for integration, end-to-end, and agent tests.

ENGINE CONTRACTFixture · Driver · Mock · ScenarioTEST RUNNER / CI / AGENT
YOUR USE CASE MATTERS

What would you build with Rhyzora?

Tell us which systems and interfaces you would connect, what should stay shared, and where this model might break.

Share your use case

Describe intent.
Not widgets.

Rhyzora works above individual components. Define meaningful interactions; each backend decides how they should be represented.

INSTEAD OF

Label

Input

Button

Table

Dialog

DESCRIBE

search

browse

inspect

select

confirm

01

Semantics before presentation

Describe what the application does before deciding how it looks.

02

Business logic stays outside the UI

Engines expose typed capabilities. Interfaces consume them.

03

Backend-appropriate UX

Each surface expresses the same intent in the way that fits its environment.

Interested in Rhyzora?

Start small: follow the project, share the idea, or help shape it.

HAVE A USE CASE IN MIND?

Help test the idea against a real application.

Tell us which engine and interfaces you would connect, or open a concrete issue.

Build the meaning once.

Help shape a new foundation for multi-interface applications.

View the repository