skillfed

app-model

Generic application schema implemented in python

app-model v0.5.1 187.9K downloads/30d#9,956 on PyPI28
Permissive license BSD 3-Clause License Active released

What it is and what it does

app-model is a Python library that implements a generic application schema for declaratively organizing application metadata. It provides a structured way to define menus, keybindings, actions, and commands using a model inspired by VS Code's application architecture. The package relies on Pydantic for data validation, in-n-out for dependency injection, psygnal for event signaling, and typing-extensions for enhanced type hints.

The library is designed for developers building desktop or complex applications who need a consistent, schema-driven way to manage application structure and configuration. It is currently in Alpha status, meaning the API may change, but it is actively maintained and supports Python 3.9 through 3.13.

Use it for:

  • Define and validate menu structures and command hierarchies for a desktop application without hardcoding UI logic.
  • Centralize keybinding definitions and action registration in a single declarative schema.
  • Build plugin systems where commands and menus are registered dynamically via the schema.
  • Organize application metadata in a way that can be serialized, versioned, and shared across tools.
  • Implement a command palette or action browser by querying the application schema.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides a declarative schema for organizing application metadata like menus, keybindings, and commands, inspired by the VS Code application model.

Yes, if you are building a desktop or complex application and want a structured, schema-driven way to organize menus, commands, and keybindings. The low install friction, active maintenance, permissive license, and lack of known vulnerabilities make it a safe choice. Be aware it is in Alpha, so expect potential API changes; start with it if you value declarative organization over a mature, battle-tested API.

Install

app-model on PyPI

pip

pip install app-model

uv

uv add app-model

poetry

poetry add app-model

Installing app-model

Before you install

Low install friction with a pure-Python wheel and four lightweight runtime dependencies. Active maintenance with a recent commit on 2026-08-03, though the project is in Alpha status and has a modest community footprint.

License in practice

BSD 3-Clause License is permissive and places no significant restrictions on use, modification, or redistribution in commercial or private projects.

Quickstart

pip install app-model

from app_model import Application

app = Application(name="my_app")

Requires Python 3.9 or later.

Verify before relying

  • Whether the schema supports runtime validation of application structure beyond what Pydantic provides.
  • How the package handles complex nested menu hierarchies or dynamic command registration.
  • Whether there are built-in integrations with common UI frameworks or if it is schema-only.

Package facts

License BSD 3-Clause License (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 4 — in-n-out, psygnal, pydantic, typing-extensions
Maintenance actively maintained — 278 days since the last release
Last repo commit
First released
Downloads 187,917/month — #9,956 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: app_model-0.5.1-py3-none-any.whl

Development Status :: 3 - AlphaIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: Desktop EnvironmentTopic :: Software DevelopmentTopic :: Software Development :: User Interfaces

Tags

application schema frameworkmenu and command organizationdeclarative app configurationkeybinding and action registryvs code application modeldesktop app structurecommand palette framework
application-schemadeclarative-configcommand-registry

More Software Development packages