Skip to main content

Ymery

Ymery Logo

Build interactive GUI applications with YAML instead of code.

Ymery lets you create Dear ImGui applications using declarative YAML files, powered by Dear ImGui Bundle for Python.

Why Ymery?

Traditional GUI development with ImGui requires writing repetitive boilerplate code. Every button, slider, or layout change means modifying and recompiling your application.

Origins

Ymery emerged from building an audio viewing and analysis tool with imgui-bundle. We discovered that live data observation and manipulation was a central pattern - UI components constantly consuming and updating data in real-time. This led us to separate concerns in an MVC-like direction: the UI as a tree structure consuming an equivalent data tree, similar to React's approach in the web world.

While most UI elements directly manipulate or observe data tree nodes, the framework also supports event generation and handling. We're also exploring a broader vision: an "Ymery browser" where you write interactive applications with Python and YAML instead of HTML and JavaScript.

These concepts are in early alpha. We'd love to hear your thoughts and suggestions.

For architectural details, see docs/design/main.md.

Ymery changes this:

  • Declarative - Define your UI in YAML, not code
  • Rapid iteration - Edit layouts without recompiling
  • No programming required - Create simple UIs with just YAML
  • Modular - Reusable widget definitions with imports
  • Data-driven - Separate UI structure from application logic

Quick Example

Create a simple GUI in app.yaml:

app:
  window_title: "Hello Ymery"
  widget: builtin.text
  data: greeting

data:
  greeting:
    metadata:
      label: "Welcome to Ymery!"

Run it:

ymery --main app

That's it. No Python code, no compilation - just a YAML file describing what you want.

Who is Ymery for?

  • Python developers who prefer declarative approaches
  • ImGui users frustrated with boilerplate code
  • Data scientists needing quick interactive tools
  • Game developers prototyping UI and tools
  • Anyone who wants to experiment with ImGui without writing code

Framework or Library?

Both. Ymery provides structure and patterns (like a framework) but you can use it flexibly, picking what you need (like a library). Use it however it serves you best.

Project Status

⚠️ Early Alpha - Ymery is experimental. APIs will change, features are incomplete, and breaking changes should be expected. We welcome feedback and contributions!

Installation

pip install ymery

Requires Python 3.12+

Examples

Check out the demo directory for examples:

  • demo/classic/ - Classic ImGui demo widgets
  • demo/hello-imgui/ - Basic Hello ImGui examples
  • demo/hello-imgui-full/ - Full-featured application layout

Run any demo:

ymery --layouts-path demo/hello-imgui-full --main app

Documentation

For more examples, explore the YAML files in the demo directories.

How It Works

  1. Write YAML - Define your UI structure, widgets, and data
  2. Import modules - Compose UIs from reusable components
  3. Run - Ymery renders your YAML as a native ImGui application
  4. Iterate - Change the YAML and see updates immediately

Contributing

We're in early development and actively seeking feedback:

  • Try Ymery with your use cases
  • Report issues and suggest features
  • Share what works and what doesn't

Your input helps shape Ymery's direction.

License

[Add license information]

Credits

Built on top of:

Metadata

Release files for ymery 0.0.76

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ymery 0.0.76
File Size Uploaded Provenance Actions
ymery-0.0.76.tar.gz 370.5 kB Without provenance Details for ymery-0.0.76.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ymery 0.0.76
File Interpreter ABI Platform Actions
ymery-0.0.76-py3-none-any.whl Python 3 none any Details for ymery-0.0.76-py3-none-any.whl

Total release size: 812.6 kB

Release files / ymery-0.0.76.tar.gz

Download URL ymery-0.0.76.tar.gz
Size 370.5 kB
Tags Source
SHA-256 checksum
How to use checksums
eaadd460af7613abc097ac70e1acac9abdbf8b862d987715d45da10f1d0b8c11
BLAKE2b-256 checksum
How to use checksums
59afac990aae2ceb8010ce471f8946c2cbe6b1708b88e466da4531596e5f32ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / ymery-0.0.76-py3-none-any.whl

Download URL ymery-0.0.76-py3-none-any.whl
Size 442.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
59099b5a1bd1d9994d014ab3aa13c17106f619b1c1fe5d4ead1b8bd9698e99cd
BLAKE2b-256 checksum
How to use checksums
560c4dbc262a22116ac3300eb49bbe41fdf314e47ddbf6b6811f45deeb2d1a22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Security for ymery 0.0.76

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page