# mxcli Documentation > CLI tool and MDL (Mendix Definition Language) for reading, querying, and modifying Mendix application projects headlessly. Designed primarily for AI coding agents (Claude Code, Cursor, GitHub Copilot) and CI/CD pipelines. Version: mxcli v0.28.0 @ ff2473f | Generated: 2026-10-25T07:12:10Z Full content (entire book, single page): https://huaiyukhaw.github.io/mxcli-llms/llms-full.txt - [Preface](https://huaiyukhaw.github.io/mxcli-llms/pages/preface/index.md): This documentation covers mxcli , a command-line tool for reading, querying, and modifying Mendix application projects, and MDL… - [Vision](https://huaiyukhaw.github.io/mxcli-llms/pages/preface/vision.md): mxcli and MDL exist to make Mendix development accessible to coding agents, automation pipelines, and developers who prefer… - [What is mxcli?](https://huaiyukhaw.github.io/mxcli-llms/pages/preface/what-is-mxcli.md): mxcli is a command-line tool that enables developers and AI coding assistants to read, understand, and modify Mendix application… - [What is MDL?](https://huaiyukhaw.github.io/mxcli-llms/pages/preface/what-is-mdl.md): MDL (Mendix Definition Language) is a text-based, SQL-like language for describing and manipulating Mendix application models. It… - [Design Principles](https://huaiyukhaw.github.io/mxcli-llms/pages/preface/design-principles.md): mxcli is not a thin wrapper over the .mpr format. It is a deliberate bet on a particular way of letting coding agents build… - [The Language Poster](https://huaiyukhaw.github.io/mxcli-llms/pages/preface/poster.md): All of mxcli and MDL on one page: the idea, getting started, the CLI map, exploring and querying a project, domain models… - [Mendix Concepts for Newcomers](https://huaiyukhaw.github.io/mxcli-llms/pages/preface/mendix-concepts.md): This page explains the core Mendix concepts you’ll encounter when using mxcli. If you’re familiar with web frameworks, relational… - [Document Conventions](https://huaiyukhaw.github.io/mxcli-llms/pages/preface/conventions.md): This page describes the formatting and notation conventions used throughout this documentation. ## Part I: Tutorial - [5-Minute Quickstart](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/quickstart.md): Get from zero to modifying a Mendix project in 5 minutes. No prior MDL knowledge needed. - [Setting Up](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/setup.md): Before you can start exploring and modifying Mendix projects from the command line, you need three things: - [Installation](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/installation.md): There are three ways to install the VS Code MDL extension. - [Opening Your First Project](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/opening-project.md): mxcli works with Mendix project files – the .mpr files that Mendix Studio Pro creates. Let’s open one. - [The REPL](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/repl.md): The mxcli REPL is an interactive shell for working with Mendix projects, much like psql is for PostgreSQL or mysql for MySQL. You… - [Developing on the Web (Claude Code)](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/claude-code-web.md): You can build a Mendix app with mxcli entirely in the browser — no local CLI, no Studio Pro, no machine setup. Claude Code on the… - [Exploring a Project](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/exploring.md): Once you have a project open – whether through the REPL, a CLI one-liner, or a script file – the next step is to look around… - [LIST MODULES, LIST ENTITIES](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/list-commands.md): The SHOW family of commands lists project elements by type. They are the fastest way to see what a project contains. - [DESCRIBE, SEARCH](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/describe-search.md): While SHOW commands list elements by name, DESCRIBE gives you the full definition of a single element. SEARCH lets you find… - [DESCRIBE STRUCTURE](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/describe-structure.md): The DESCRIBE STRUCTURE command gives you a compact, tree-style overview of a project. It is the fastest way to understand the… - [Your First Changes](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/first-changes.md): Now that you can explore a project with SHOW and DESCRIBE , it’s time to make changes. This chapter walks through the three most… - [Creating an Entity](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/create-entity.md): Entities are the foundation of any Mendix application – they define your data model. In this page you’ll create a Product entity… - [Creating a Microflow](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/create-microflow.md): Microflows are the server-side logic of a Mendix application. They’re comparable to functions or methods in traditional… - [Creating a Page](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/create-page.md): Pages are the user interface of a Mendix application. In this page you’ll create an overview page that lists products in a data… - [Validating with mxcli check](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/validation.md): You’ve created entities, microflows, and pages. Before opening your project in Studio Pro, you should validate that everything is… - [Working with AI Assistants](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/ai-assistants.md): mxcli is built from the ground up to work with AI coding assistants. The mxcli init command sets up your Mendix project with… - [Claude Code Integration](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/claude-code.md): Claude Code is the primary AI integration for mxcli. It gets the deepest support: a dedicated configuration directory… - [OpenCode Integration](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/opencode.md): OpenCode is a fully supported AI integration for mxcli. It gets deep support: a dedicated configuration directory, project-level… - [Other AI tools](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/other-ai-tools.md): Claude Code is the default integration, but mxcli also supports OpenCode, Cursor, Continue.dev, Windsurf, Aider, and Mistral… - [Skills and CLAUDE.md](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/skills.md): Skills teach AI assistants how to write correct MDL. Each skill covers a specific topic – creating pages, writing microflows… - [The MDL + AI Workflow](https://huaiyukhaw.github.io/mxcli-llms/pages/tutorial/mdl-ai-workflow.md): This page walks through the complete recommended workflow for using mxcli with an AI assistant, from project setup to reviewing… ## Part II: MDL by Example - [MDL by Example](https://huaiyukhaw.github.io/mxcli-llms/pages/examples/index.md): This part presents complete, self-contained MDL examples that show how the language comes together for real use cases. Each… - [CRM Module](https://huaiyukhaw.github.io/mxcli-llms/pages/examples/crm-module.md): A complete customer management feature: domain model, validation, CRUD pages, and security – all in one script. - [REST Integration](https://huaiyukhaw.github.io/mxcli-llms/pages/examples/rest-integration.md): Calling external APIs from microflows – GET, POST, authentication, and error handling. - [Data Import Pipeline](https://huaiyukhaw.github.io/mxcli-llms/pages/examples/data-import.md): Connect to an external database, explore its schema, import data into Mendix, and generate database connectors – all from the… - [Master-Detail Page](https://huaiyukhaw.github.io/mxcli-llms/pages/examples/master-detail.md): A single page with a list on the left and a detail form on the right. Selecting an item in the list updates the form via the… - [Modifying Existing Pages](https://huaiyukhaw.github.io/mxcli-llms/pages/examples/alter-page.md): ALTER PAGE modifies widgets in place without recreating the entire page. This is useful for incremental changes, maintenance, and… - [Validation Pattern](https://huaiyukhaw.github.io/mxcli-llms/pages/examples/validation.md): Validate an object before saving, showing feedback on invalid fields: - [Role-Based Security](https://huaiyukhaw.github.io/mxcli-llms/pages/examples/security.md): A complete security setup: module roles, entity access with XPath row-level constraints, document access, user roles, and demo… - [View Entities](https://huaiyukhaw.github.io/mxcli-llms/pages/examples/view-entities.md): View entities are backed by an OQL query. They appear in the domain model but have no database table (and no database view… ## Part III: Migration - [Migration Guide](https://huaiyukhaw.github.io/mxcli-llms/pages/migration/index.md): mxcli and MDL enable AI-assisted migration of existing applications to the Mendix platform. An AI coding agent (Claude Code… - [Assessment](https://www.mxcli.org/migration/assessment.html) - [Transformation Plan](https://www.mxcli.org/migration/transformation.html) - [Generation](https://www.mxcli.org/migration/generation.html) - [Data Migration](https://huaiyukhaw.github.io/mxcli-llms/pages/migration/data-migration.md): mxcli can connect directly to external databases to explore schemas, import data, and generate database connector code. This is… - [Validation and Handoff](https://www.mxcli.org/migration/validation.html) ## Part IV: The MDL Language - [MDL Basics](https://huaiyukhaw.github.io/mxcli-llms/pages/language/basics.md): MDL (Mendix Definition Language) is a SQL-like language for reading and modifying Mendix application projects. It provides a… - [Lexical Structure](https://huaiyukhaw.github.io/mxcli-llms/pages/language/lexical-structure.md): This page describes the tokens that make up the MDL language: keywords, literals, and identifiers. - [Qualified Names](https://huaiyukhaw.github.io/mxcli-llms/pages/language/qualified-names.md): MDL uses dot-separated qualified names to reference elements within a Mendix project. This naming convention ensures elements are… - [Comments and Documentation](https://huaiyukhaw.github.io/mxcli-llms/pages/language/comments.md): MDL supports three comment styles for annotating scripts and attaching documentation to model elements. - [Script Files](https://huaiyukhaw.github.io/mxcli-llms/pages/language/script-files.md): MDL statements can be saved in .mdl files and executed as scripts. This is the primary way to automate Mendix model changes. - [Language Versions and Migration](https://huaiyukhaw.github.io/mxcli-llms/pages/language/versions.md): An MDL script is written in one language version , declared by its first statement: - [Data Types](https://huaiyukhaw.github.io/mxcli-llms/pages/language/data-types.md): MDL has a type system that maps to the Mendix metamodel attribute types. Every attribute in an entity definition has a type that… - [Primitive Types](https://huaiyukhaw.github.io/mxcli-llms/pages/language/primitive-types.md): This page documents each primitive type available for entity attributes in MDL. - [Constraints](https://huaiyukhaw.github.io/mxcli-llms/pages/language/constraints.md): Constraints must appear in this order: - [Enumerations](https://huaiyukhaw.github.io/mxcli-llms/pages/language/enumerations.md): Each enumeration contains: - [Type Mapping](https://huaiyukhaw.github.io/mxcli-llms/pages/language/type-mapping.md): External database types are mapped to Mendix types: - [Domain Model](https://huaiyukhaw.github.io/mxcli-llms/pages/language/domain-model.md): The domain model is the data layer of a Mendix application. It defines the entities (data tables), their attributes (columns)… - [Entities](https://huaiyukhaw.github.io/mxcli-llms/pages/language/entities.md): Entities are the primary data structures in a Mendix domain model. Each entity corresponds to a database table (for persistent… - [Attributes and Validation Rules](https://huaiyukhaw.github.io/mxcli-llms/pages/language/attributes.md): Attributes define the fields on an entity. Each attribute has a name, a type, and optional constraints. - [Associations](https://huaiyukhaw.github.io/mxcli-llms/pages/language/associations.md): Associations define relationships between entities. They determine how objects reference each other and control behavior on… - [Generalization](https://huaiyukhaw.github.io/mxcli-llms/pages/language/generalization.md): Generalization (inheritance) allows an entity to extend another entity, inheriting all of its attributes and associations. The… - [Indexes](https://huaiyukhaw.github.io/mxcli-llms/pages/language/indexes.md): Indexes improve query performance for frequently searched or sorted attributes. They are defined after the attribute list in an… - [ALTER ENTITY](https://huaiyukhaw.github.io/mxcli-llms/pages/language/alter-entity.md): Modifies an existing entity without full replacement. - [Microflows and Nanoflows](https://huaiyukhaw.github.io/mxcli-llms/pages/language/microflows.md): Microflows and nanoflows are the primary logic constructs in Mendix applications. They define executable sequences of activities… - [Structure](https://huaiyukhaw.github.io/mxcli-llms/pages/language/microflow-structure.md): An MPR file is a standard SQLite database. Both format versions carry the same two tables; v2 adds a third. Contents live in the… - [Activity Types](https://huaiyukhaw.github.io/mxcli-llms/pages/language/activity-types.md): Workflow activities are the building blocks of a workflow definition. Each activity type serves a different purpose, from waiting… - [Control Flow](https://huaiyukhaw.github.io/mxcli-llms/pages/language/control-flow.md): MDL microflows support conditional branching, loops, and error handling to control the execution path of your logic. - [Expressions](https://huaiyukhaw.github.io/mxcli-llms/pages/language/expressions.md): Expressions in MDL are used in conditions, attribute assignments, variable assignments, and log messages within microflows. They… - [Nanoflows vs Microflows](https://huaiyukhaw.github.io/mxcli-llms/pages/language/nanoflows.md): Nanoflows are client-side logic flows that execute in the user’s browser or on mobile devices. They share the same MDL syntax as… - [Common Patterns](https://huaiyukhaw.github.io/mxcli-llms/pages/language/microflow-patterns.md): This page collects frequently used page patterns: overview/list pages, edit pages, and master-detail layouts. Each pattern is a… - [Pages](https://huaiyukhaw.github.io/mxcli-llms/pages/language/pages.md): MDL uses explicit property declarations for pages: - [Page Structure](https://huaiyukhaw.github.io/mxcli-llms/pages/language/page-structure.md): A page document has this top-level structure: - [Widget Types](https://huaiyukhaw.github.io/mxcli-llms/pages/language/widget-types.md): A widget is declared with a type keyword, a unique name, properties in parentheses, and optional child widgets in braces. - [Data Binding](https://huaiyukhaw.github.io/mxcli-llms/pages/language/data-binding.md): Data binding connects widgets to entity attributes and data sources. In MDL, binding is configured through widget properties… - [Snippets](https://huaiyukhaw.github.io/mxcli-llms/pages/language/snippets.md): Snippets are reusable page fragments that can be embedded in multiple pages. They allow you to define a widget tree once and… - [ALTER PAGE / ALTER SNIPPET](https://huaiyukhaw.github.io/mxcli-llms/pages/language/alter-page.md): Modify an existing page or snippet’s widget tree in-place without full CREATE OR REPLACE . Works directly on the raw BSON tree… - [Common Patterns](https://huaiyukhaw.github.io/mxcli-llms/pages/language/page-patterns.md): This page collects frequently used page patterns: overview/list pages, edit pages, and master-detail layouts. Each pattern is a… - [Security](https://huaiyukhaw.github.io/mxcli-llms/pages/language/security.md): Credentials are isolated from session output. The DSN (which contains username and password) is never displayed in session… - [Module Roles and User Roles](https://huaiyukhaw.github.io/mxcli-llms/pages/language/roles.md): Mendix security uses a two-tier role system. Module roles define permissions within a single module. User roles aggregate module… - [Entity Access](https://huaiyukhaw.github.io/mxcli-llms/pages/language/entity-access.md): Where is a comma-separated list of: - [Microflow, Page, and Nanoflow Access](https://huaiyukhaw.github.io/mxcli-llms/pages/language/document-access.md): Document-level access controls which module roles can execute microflows and nanoflows or view pages. GRANT adds roles and REVOKE… - [GRANT / REVOKE](https://huaiyukhaw.github.io/mxcli-llms/pages/language/grant-revoke.md): The GRANT and REVOKE statements control all permissions in a Mendix project. They work on three targets: entities (CRUD access)… - [Demo Users](https://huaiyukhaw.github.io/mxcli-llms/pages/language/demo-users.md): Demo users are test accounts created for development and testing. They appear on the login screen when demo users are enabled… - [Navigation and Settings](https://huaiyukhaw.github.io/mxcli-llms/pages/language/navigation.md): Navigation defines how users move through a Mendix application. Each device type has its own navigation profile with a home page… - [Navigation Profiles](https://huaiyukhaw.github.io/mxcli-llms/pages/language/navigation-profiles.md): A navigation profile defines the navigation structure for a specific device type. Each profile has a default home page, optional… - [Home Pages and Menus](https://huaiyukhaw.github.io/mxcli-llms/pages/language/home-pages.md): Each navigation profile has a default home page, optional role-specific home pages, and a menu tree. These determine what users… - [Project Settings](https://huaiyukhaw.github.io/mxcli-llms/pages/language/project-settings.md): Project settings control application runtime behavior, server configurations, language settings, and workflow configuration. MDL… - [Translations](https://huaiyukhaw.github.io/mxcli-llms/pages/language/translations.md): Every user-visible string in a Mendix app — page titles, widget captions, button labels, validation messages, enum captions, menu… - [Workflows](https://huaiyukhaw.github.io/mxcli-llms/pages/language/workflows.md): Workflow Activity Types: - [Workflow Structure](https://huaiyukhaw.github.io/mxcli-llms/pages/language/workflow-structure.md): A workflow definition consists of a context parameter, an optional overview page, and a sequence of activities. Activities… - [Activity Types](https://huaiyukhaw.github.io/mxcli-llms/pages/language/workflow-activities.md): Workflow activities are the building blocks of a workflow definition. Each activity type serves a different purpose, from waiting… - [Workflow vs Microflow](https://huaiyukhaw.github.io/mxcli-llms/pages/language/workflow-vs-microflow.md): Workflows and microflows are both used to express business logic, but they serve different purposes and have different execution… - [Business Events](https://huaiyukhaw.github.io/mxcli-llms/pages/language/business-events.md): Business events enable event-driven integration between Mendix applications. An application can publish events when something… - [Event Services](https://huaiyukhaw.github.io/mxcli-llms/pages/language/event-services.md): An event service is a named container for business event messages. It defines the contract between publishers and consumers: what… - [Publishing and Consuming Events](https://huaiyukhaw.github.io/mxcli-llms/pages/language/pub-sub-events.md): Business events follow a publish-subscribe pattern. One application publishes events when significant actions occur, and other… - [Scheduled Events and Task Queues](https://huaiyukhaw.github.io/mxcli-llms/pages/language/scheduled-events.md): Two Mendix features for work that runs outside a user request. They are unrelated and easy to confuse: - [Image Collections](https://huaiyukhaw.github.io/mxcli-llms/pages/language/image-collections.md): Image collections are Mendix’s way of bundling images (icons, logos, graphics) within a module. Each collection can contain… ## Part V: Project Tools - [Default Styling](https://www.mxcli.org/tools/theme.html) - [Domain Model Layout](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/domain-model-layout.md): A domain model generated from an MDL script has to be placed somewhere, and MDL says nothing about placement unless you write… - [Microflow and Nanoflow Layout](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/flow-layout.md): mxcli layout flows re-arranges existing microflows and nanoflows on their canvas. It is the flow counterpart of mxcli layout… - [Code Navigation](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/code-navigation.md): mxcli provides a suite of cross-reference navigation commands that let you explore relationships between elements in a Mendix… - [LIST CALLERS / CALLEES](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/callers-callees.md): These commands trace the call graph of your Mendix project, showing what calls a given element and what that element calls. - [LIST REFERENCES / IMPACT](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/references-impact.md): These commands provide broader reference tracking and impact analysis, helping you understand how changes propagate through a… - [DESCRIBE CONTEXT](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/describe-context.md): The DESCRIBE CONTEXT command assembles the surrounding context of an element within its module and project hierarchy. This is… - [Graph Analysis](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/graph-analysis.md): mxcli models a Mendix project as a dependency graph — documents (entities, microflows, pages, …) are nodes and their references (… - [Full-Text Search](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/search.md): The SEARCH command performs full-text search across all strings and source code in a Mendix project. It searches captions… - [Catalog Queries](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/catalog.md): The catalog is a SQLite-based query system that provides SQL access to project metadata. It indexes all elements in your Mendix… - [REFRESH CATALOG](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/refresh-catalog.md): The REFRESH CATALOG command builds or rebuilds the catalog index from the current project state. The catalog must be refreshed… - [Available Tables](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/catalog-tables.md): The catalog provides several tables that can be queried using standard SQL syntax. Use LIST CATALOG TABLES to list all available… - [SQL Queries](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/catalog-sql.md): The catalog supports standard SQL SELECT syntax for querying project metadata. Queries use the CATALOG. prefix to identify… - [Use Cases](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/catalog-use-cases.md): After running IMPORT FROM , verify the data was imported correctly: - [Project Brain](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/project-brain.md): mxcli brain records the project knowledge mxcli cannot compute. Two halves: - [Linting and Reports](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/linting.md): mxcli includes an extensible linting framework that checks Mendix projects for best practice violations, security issues, naming… - [Built-in Rules](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/builtin-rules.md): mxcli ships with built-in rules implemented in Go. These rules are fast and always available. - [Starlark Rules](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/starlark-rules.md): In addition to the built-in Go rules, mxcli bundles 29 Starlark-based lint rules. Starlark is a Python-like language that allows… - [Writing Custom Rules](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/custom-rules.md): You can extend the linter with your own rules written in Starlark, a Python-like language. A rule is a .star file in the… - [mxcli lint](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/mxcli-lint.md): The mxcli lint command runs all lint rules (built-in Go rules and Starlark rules) against a Mendix project and reports findings. - [mxcli report](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/mxcli-report.md): The mxcli report command generates a scored best practices report for a Mendix project. It runs all lint rules and aggregates… - [Claude Code Companion](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/companion.md): The mxcli companion is a Claude Code mod: a pane inside your Claude Code session that shows the Mendix app you are building while… - [Terminal UI (TUI)](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/tui.md): mxcli includes a terminal-based interactive UI for browsing, inspecting, and modifying Mendix projects. Built with Bubble Tea … - [Navigation and Layout](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/tui-navigation.md): The TUI uses a Miller column layout for hierarchical browsing of Mendix projects. This design, inspired by file managers like… - [Command Palette](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/tui-commands.md): Press : to open the command palette at the bottom of the TUI. The command bar provides VS Code-style command execution with tab… - [MDL Execution](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/tui-execution.md): The TUI includes a built-in MDL execution view for running MDL statements directly from the terminal interface. Press x to open… - [Project Validation](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/tui-check.md): The TUI integrates with mx check to validate Mendix projects directly from the terminal interface. Errors, warnings, and… - [Session Management](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/tui-session.md): The TUI supports session persistence, allowing you to restore your previous browsing state when relaunching the tool. - [Testing](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/testing.md): mxcli includes a testing framework for a Mendix app’s own logic: each test calls into the running app — a microflow, a retrieve —… - [Test Formats](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/test-formats.md): mxcli test reads two file formats: .test.mdl for plain MDL tests, and .test.md for tests embedded in documentation. Both describe… - [Test Annotations](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/test-annotations.md): Annotations describe what a test is and what must be true when it finishes. They live in the javadoc comment above a test’s… - [Running Tests](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/running-tests.md): The mxcli test command executes test files and reports results. - [Playwright Testing](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/playwright.md): mxcli integrates with playwright-cli for automated UI testing of Mendix applications. This enables verification that generated… - [Diff](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/diff.md): mxcli provides two diff commands for comparing MDL scripts against project state and viewing local changes in MPR v2 projects. - [External SQL](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/external-sql.md): mxcli can connect to external databases (PostgreSQL, Oracle, SQL Server) for querying, schema exploration, data import, and… - [SQL CONNECT](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/sql-connect.md): The SQL CONNECT command establishes a named connection to an external database. - [Querying External Databases](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/sql-query.md): Once connected to an external database, you can explore its schema and run arbitrary SQL queries. - [IMPORT FROM](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/import-from.md): The IMPORT command imports data from an external database into a Mendix application’s PostgreSQL database. It supports column… - [Credential Management](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/credentials.md): mxcli provides secure credential management for external database connections. Credentials are isolated from session output… - [Database Connector Generation](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/connector-generation.md): The SQL GENERATE CONNECTOR command auto-generates Mendix Database Connector MDL from an external database schema. This creates… - [Local Dev Loop](https://www.mxcli.org/tools/run-local.html) - [Bootstrap Prompt](https://www.mxcli.org/tools/bootstrap-prompt.html) - [Debug Microflows](https://www.mxcli.org/tools/debug-microflows.html) - [Measuring Agent Sessions](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/session-report.md): An agent session’s cost is roughly model calls × conversation size : every model call re-reads the whole conversation, and every… - [Docker Integration](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/docker.md): mxcli provides Docker integration for building, running, and validating Mendix applications without a local Mendix installation… - [mxcli docker build](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/docker-build.md): The mxcli docker build command builds a Mendix application using mxbuild in Docker, including support for PAD (Platform-Agnostic… - [mxcli docker check](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/docker-check.md): The mxcli docker check command validates a Mendix project without building it. It runs the Mendix mx check tool against the… - [mxcli docker run](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/docker-run.md): The mxcli docker run command runs a Mendix application in a Docker container, providing a local runtime environment for testing… - [OQL Queries](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/oql.md): The mxcli oql command executes OQL (Object Query Language) queries against a running Mendix runtime via the M2EE admin API. OQL… - [Dev Container Setup](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/devcontainer.md): When using mxcli init , a .devcontainer/ configuration is also created. Opening the project in VS Code and choosing Reopen in… - [Live Studio Pro Sync (MCP)](https://www.mxcli.org/tools/mcp-connect.html) - [Working Outside Studio Pro](https://huaiyukhaw.github.io/mxcli-llms/pages/tools/outside-studio-pro.md): A project edited with mxcli, git and an editor is sometimes opened in Studio Pro afterwards. Several kinds of state that Studio… ## Part VI: IDE Integration - [VS Code Extension](https://huaiyukhaw.github.io/mxcli-llms/pages/ide/vscode.md): The MDL extension for VS Code provides a rich editing experience for .mdl files, bringing IDE-level support for Mendix Definition… - [Installation](https://huaiyukhaw.github.io/mxcli-llms/pages/ide/vscode-installation.md): There are three ways to install the VS Code MDL extension. - [Syntax Highlighting and Diagnostics](https://huaiyukhaw.github.io/mxcli-llms/pages/ide/vscode-syntax.md): The VS Code extension provides three layers of language feedback: syntax highlighting, parse diagnostics, and semantic… - [Completion, Hover, Go-to-Definition](https://huaiyukhaw.github.io/mxcli-llms/pages/ide/vscode-intellisense.md): The VS Code extension provides IntelliSense features powered by the MDL language server ( mxcli lsp --stdio ). - [Project Tree](https://huaiyukhaw.github.io/mxcli-llms/pages/ide/vscode-project-tree.md): The VS Code extension provides a Mendix Project Tree view that mirrors the App Explorer in Mendix Studio Pro, allowing you to… - [Context Menu Commands](https://huaiyukhaw.github.io/mxcli-llms/pages/ide/vscode-commands.md): The VS Code extension adds three commands to the editor context menu (right-click) for .mdl files. These commands provide quick… - [LSP Server](https://huaiyukhaw.github.io/mxcli-llms/pages/ide/lsp.md): The MDL language server implements the Language Server Protocol (LSP), enabling any editor with LSP support to provide rich MDL… - [Protocol](https://huaiyukhaw.github.io/mxcli-llms/pages/ide/lsp-protocol.md): The MDL language server uses the standard LSP stdio transport: JSON-RPC messages are exchanged over the process’s standard input… - [Capabilities](https://huaiyukhaw.github.io/mxcli-llms/pages/ide/lsp-capabilities.md): The MDL language server supports the following LSP capabilities. - [Integration with Other Editors](https://huaiyukhaw.github.io/mxcli-llms/pages/ide/lsp-editors.md): The MDL language server works with any editor that supports the Language Server Protocol. This page covers setup for editors… - [mxcli init & mxcli new](https://huaiyukhaw.github.io/mxcli-llms/pages/ide/mxcli-init.md) - [What Gets Created](https://huaiyukhaw.github.io/mxcli-llms/pages/ide/init-output.md): Running mxcli init (or mxcli new , which runs init automatically) creates the following directory structure in your Mendix… - [Customizing Skills](https://huaiyukhaw.github.io/mxcli-llms/pages/ide/customizing-skills.md): The skill files generated by mxcli init are starting points. You can modify them to match your organization’s patterns, naming… - [Syncing with Updates](https://huaiyukhaw.github.io/mxcli-llms/pages/ide/syncing.md): When you upgrade mxcli , the skills, lint rules and project guidance it ships may have changed. A project keeps them in step with… ## Part VII: Go Library - [Quick Start](https://huaiyukhaw.github.io/mxcli-llms/pages/library/quickstart.md): The modelsdk-go library provides programmatic access to Mendix projects from Go code. It is the underlying library that powers… - [Installation](https://huaiyukhaw.github.io/mxcli-llms/pages/library/installation.md): There are three ways to install the VS Code MDL extension. - [Reading a Project](https://huaiyukhaw.github.io/mxcli-llms/pages/library/reading.md): Open a Mendix project file ( .mpr ) in read-only mode to inspect its structure and contents. - [Modifying a Project](https://huaiyukhaw.github.io/mxcli-llms/pages/library/modifying.md): Make changes to a Mendix project file using the writer API. Always back up your .mpr file before modifying it. - [Public API](https://huaiyukhaw.github.io/mxcli-llms/pages/library/public-api.md): The public API surface is defined in modelsdk.go at the package root. It provides convenience functions for opening projects and… - [Open / OpenForWriting](https://huaiyukhaw.github.io/mxcli-llms/pages/library/open.md): The two entry points for accessing a Mendix project from Go code. - [Reader Methods](https://huaiyukhaw.github.io/mxcli-llms/pages/library/reader-methods.md): Complete list of methods available on the reader returned by modelsdk.Open() . - [Writer Methods](https://huaiyukhaw.github.io/mxcli-llms/pages/library/writer-methods.md): Complete list of methods available on the writer returned by modelsdk.OpenForWriting() . - [Fluent API](https://huaiyukhaw.github.io/mxcli-llms/pages/library/fluent-api.md): The api/ package provides a high-level, fluent builder API inspired by the Mendix Web Extensibility Model API. It simplifies… - [ModelAPI Entry Point](https://huaiyukhaw.github.io/mxcli-llms/pages/library/model-api.md): The api package provides a high-level fluent API inspired by the Mendix Web Extensibility Model API. It wraps the lower-level… - [Builders](https://huaiyukhaw.github.io/mxcli-llms/pages/library/builders.md): The api package provides fluent builder types for constructing Mendix model elements. Each builder follows the pattern: create… - [Examples](https://huaiyukhaw.github.io/mxcli-llms/pages/library/fluent-examples.md): Sample output: ## Part VIII: MDL Statement Reference - [Connection Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/connection/index.md): Statements for opening and closing Mendix project files. - [OPEN PROJECT](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/connection/open-project.md) - [CLOSE PROJECT](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/connection/close-project.md) - [Query Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/query/index.md): Statements for browsing and inspecting project elements. Query statements are read-only and never modify the project. - [LIST MODULES](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/query/list-modules.md) - [LIST ENTITIES](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/query/list-entities.md) - [LIST MICROFLOWS / NANOFLOWS](https://www.mxcli.org/reference/query/list-microflows.html) - [LIST PAGES / SNIPPETS](https://www.mxcli.org/reference/query/list-pages.html) - [LIST ENUMERATIONS](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/query/list-enumerations.md) - [LIST ASSOCIATIONS](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/query/list-associations.md) - [LIST CONSTANTS](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/query/list-constants.md) - [LIST WORKFLOWS](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/query/list-workflows.md) - [LIST BUSINESS EVENTS](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/query/list-business-events.md) - [LIST IMAGE COLLECTIONS](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/query/list-image-collections.md) - [DESCRIBE STRUCTURE](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/query/describe-structure.md): The DESCRIBE STRUCTURE command gives you a compact, tree-style overview of a project. It is the fastest way to understand the… - [LIST WIDGETS](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/query/list-widgets.md) - [DESCRIBE ENTITY](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/query/describe-entity.md): To see the complete definition of an entity, including its attributes, types, and constraints: - [DESCRIBE MICROFLOW / NANOFLOW](https://www.mxcli.org/reference/query/describe-microflow.html) - [DESCRIBE PAGE / SNIPPET](https://www.mxcli.org/reference/query/describe-page.html) - [DESCRIBE ENUMERATION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/query/describe-enumeration.md): Each value is followed by its caption (the display label shown to end users). - [DESCRIBE ASSOCIATION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/query/describe-association.md): DESCRIBE prints only the clauses that differ from the defaults ( TYPE Reference , OWNER Default , STORAGE COLUMN , ON DELETE SET… - [SEARCH](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/query/search.md) - [Domain Model Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/domain-model/index.md): Statements for creating, altering, and dropping domain model elements: entities, enumerations, associations, and constants. - [CREATE ENTITY](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/domain-model/create-entity.md): The most common type. Data is stored in the application database: - [ALTER ENTITY](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/domain-model/alter-entity.md): Modifies an existing entity without full replacement. - [DROP ENTITY](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/domain-model/drop-entity.md): Removes an entity from the domain model: - [CREATE ENUMERATION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/domain-model/create-enumeration.md): Each value has an identifier (used in code) and a caption (displayed in the UI): - [DROP ENUMERATION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/domain-model/drop-enumeration.md): Remove an enumeration entirely: - [CREATE ASSOCIATION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/domain-model/create-association.md): Every clause after TO is optional. Left out, they mean TYPE Reference OWNER Default STORAGE COLUMN ON DELETE SET NULL , and… - [DROP ASSOCIATION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/domain-model/drop-association.md): Remove an association: - [CREATE CONSTANT](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/domain-model/create-constant.md) - [Microflow Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/microflow/index.md): Statements for creating and dropping microflows, nanoflows, and Java actions. - [CREATE MICROFLOW](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/microflow/create-microflow.md) - [CREATE NANOFLOW](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/microflow/create-nanoflow.md) - [DROP MICROFLOW / NANOFLOW](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/microflow/drop-microflow.md) - [CREATE JAVA ACTION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/microflow/create-java-action.md) - [CREATE JAVASCRIPT ACTION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/microflow/create-javascript-action.md) - [Page Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/page/index.md): Statements for creating, modifying, and dropping pages, snippets, and layouts. - [CREATE PAGE](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/page/create-page.md): The basic syntax for creating a page: - [CREATE SNIPPET](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/page/create-snippet.md): A snippet without parameters: - [ALTER PAGE / ALTER SNIPPET](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/page/alter-page.md): Modify an existing page or snippet’s widget tree in-place without full CREATE OR REPLACE . Works directly on the raw BSON tree… - [DROP PAGE / SNIPPET](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/page/drop-page.md) - [CREATE LAYOUT](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/page/create-layout.md) - [ALTER LAYOUT](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/page/alter-layout.md) - [Security Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/security/index.md): Statements for managing project security: module roles, user roles, entity access rules, microflow and page access, demo users… - [CREATE MODULE ROLE](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/security/create-module-role.md) - [CREATE USER ROLE](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/security/create-user-role.md) - [GRANT](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/security/grant.md) - [REVOKE](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/security/revoke.md) - [CREATE DEMO USER](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/security/create-demo-user.md): The keys are Studio Pro’s property names. The clause form PASSWORD '' [ENTITY .] (, …) is the… - [UPDATE SECURITY](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/security/update-security.md): Bring entity access rules back into sync with their domain model — the headless equivalent of Studio Pro’s Update security button… - [Navigation Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/navigation/index.md): Statements for configuring application navigation profiles, home pages, login pages, and menu structures. - [CREATE NAVIGATION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/navigation/create-navigation.md) - [ALTER NAVIGATION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/navigation/alter-navigation.md): To change one menu item, or to clear a page clause, edit the stored profile instead of restating it. The items are addressed by… - [LIST NAVIGATION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/navigation/list-navigation.md) - [CREATE MENU](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/navigation/menu.md) - [Workflow Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/workflow/index.md): Statements for creating, inspecting, and dropping workflows. - [CREATE WORKFLOW](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/workflow/create-workflow.md) - [DROP WORKFLOW](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/workflow/drop-workflow.md) - [OData and Integration Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/odata/index.md): Statements for managing OData services, external entities, and browsing service contracts. - [Integration Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/integration/index.md): Statements for managing JSON structures, import mappings, export mappings, and data transformers. - [CREATE JSON STRUCTURE](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/integration/create-json-structure.md) - [CREATE MESSAGE DEFINITION COLLECTION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/integration/create-message-definition-collection.md) - [CREATE MESSAGE DEFINITION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/integration/create-message-definition.md) - [CREATE IMPORT MAPPING](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/integration/create-import-mapping.md) - [CREATE EXPORT MAPPING](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/integration/create-export-mapping.md) - [CREATE DATA TRANSFORMER](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/integration/create-data-transformer.md) - [Agent Editor Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/agent/index.md): Statements for managing AI agent editor documents. Requires Mendix 11.9+ and the AgentEditorCommons module. - [CREATE AI MODEL](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/agent/create-model.md) - [CREATE KNOWLEDGE BASE](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/agent/create-knowledge-base.md) - [CREATE CONSUMED MCP SERVICE](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/agent/create-consumed-mcp-service.md) - [CREATE AGENT](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/agent/create-agent.md) - [Business Event Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/business-event/index.md): Statements for managing business event services. - [CREATE BUSINESS EVENT SERVICE](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/business-event/create-business-event-service.md): Message attributes support standard Mendix types: - [DROP BUSINESS EVENT SERVICE](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/business-event/drop-business-event-service.md): Remove an event service: - [Image Collection Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/image-collection/index.md): Statements for creating, inspecting, and dropping image collections within modules. - [CREATE IMAGE COLLECTION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/image-collection/create-image-collection.md): The images are the collection’s children, so they are in { } , each with its properties in ( ) . The older form ( IMAGE Name FROM… - [DROP IMAGE COLLECTION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/image-collection/drop-image-collection.md): Remove a collection and all its embedded images: - [LIST / DESCRIBE IMAGE COLLECTION](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/image-collection/list-describe-image-collection.md) - [Catalog Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/catalog/index.md): The catalog is a SQLite database that caches project metadata for fast querying and cross-reference navigation. It is stored in… - [REFRESH CATALOG](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/catalog/refresh-catalog.md): The REFRESH CATALOG command builds or rebuilds the catalog index from the current project state. The catalog must be refreshed… - [SELECT FROM CATALOG](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/catalog/select-from-catalog.md) - [LIST CALLERS / CALLEES](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/catalog/list-callers-callees.md): These commands trace the call graph of your Mendix project, showing what calls a given element and what that element calls. - [LIST REFERENCES / IMPACT, DESCRIBE CONTEXT](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/catalog/list-references-impact.md) - [LIST CATALOG TABLES](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/catalog/list-catalog-tables.md) - [External SQL Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/external-sql/index.md): Direct SQL query execution against external databases (PostgreSQL, Oracle, SQL Server). Credentials are isolated – DSN never… - [SQL CONNECT](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/external-sql/sql-connect.md): The SQL CONNECT command establishes a named connection to an external database. - [SQL DISCONNECT](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/external-sql/sql-disconnect.md) - [SQL (query)](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/external-sql/sql-query.md) - [SQL GENERATE CONNECTOR](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/external-sql/sql-generate-connector.md) - [IMPORT FROM](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/external-sql/import-from.md): The IMPORT command imports data from an external database into a Mendix application’s PostgreSQL database. It supports column… - [Settings Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/settings/index.md): Statements for viewing and modifying Mendix project settings. Settings are organized into categories: MODEL (application-level… - [LIST SETTINGS](https://www.mxcli.org/reference/settings/list-describe-settings.html) - [ALTER SETTINGS](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/settings/alter-settings.md): Settings are organized into categories. Each ALTER SETTINGS command targets one category. - [Organization Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/organization/index.md): Statements for organizing project structure: creating modules and folders, and moving documents between them. - [CREATE MODULE](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/organization/create-module.md) - [CREATE FOLDER](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/organization/create-folder.md) - [DROP FOLDER](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/organization/drop-folder.md) - [MOVE](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/organization/move.md) - [MOVE FOLDER](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/organization/move-folder.md) - [JAR Dependency Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/jar-dependency/index.md): Statements for managing Maven/JAR dependencies declared in a module’s settings. These map to the Module Settings → Java… - [ALTER MODULE JAR DEPENDENCY](https://www.mxcli.org/reference/jar-dependency/alter-module-jar-dependency.html) - [LIST / DESCRIBE JAR DEPENDENCY](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/jar-dependency/list-describe-jar-dependency.md) - [Session Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/session/index.md): Statements for inspecting and configuring the current REPL session. - [SET](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/session/set.md) - [SHOW STATUS](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/session/show-status.md) ## Part IX: Architecture & Internals - [System Architecture](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/architecture.md): ModelSDK Go is a Go-native library for reading and modifying Mendix application projects ( .mpr files). It provides programmatic… - [Layer Diagram](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/layers.md): Detailed description of each architectural layer in ModelSDK Go. - [Package Structure](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/packages.md): Overview of the Go package organization and dependency relationships. - [Design Decisions](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/design-decisions.md): Key architectural decisions made during the development of ModelSDK Go, with rationale and trade-offs. - [MPR File Format](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/mpr-format.md): Mendix projects are stored in .mpr files, which are SQLite databases containing BSON-encoded model elements. This page provides… - [Idempotent Writes](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/idempotent-writes.md): Re-running an MDL script against a project that is already in sync leaves the .mpr and mprcontents/ files byte-identical . git… - [v1 vs v2](https://www.mxcli.org/internals/mpr-v1-v2.html) - [BSON Document Structure](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/bson-structure.md): How Mendix project documents are serialized in BSON format, including the role of $Type fields, nested structures, array version… - [Storage Names vs Qualified Names](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/storage-names.md): Mendix uses different “storage names” in BSON $Type fields than the “qualified names” shown in the TypeScript SDK documentation… - [Widget Template System](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/widget-templates.md): Pluggable widgets (DataGrid2, ComboBox, Gallery, etc.) require embedded template definitions for correct BSON serialization. This… - [Pluggable Widget Engine](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/widget-engine.md): The Pluggable Widget Engine replaces hardcoded Go builder functions with a data-driven system. Widget behavior is described in… - [MDL Parser](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/parser.md): The MDL parser translates SQL-like MDL (Mendix Definition Language) syntax into executable operations against Mendix project… - [ANTLR4 Grammar Design](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/antlr4-grammar.md): The MDL parser uses ANTLR4 with separate lexer and parser grammars. This page covers the design patterns and key decisions in the… - [Lexer - Parser - AST - Executor Pipeline](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/parser-pipeline.md): The complete parsing pipeline from raw MDL text through lexical analysis, parsing, AST construction, and execution against the… - [Adding New Statements](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/adding-statements.md): Step-by-step guide for adding a new MDL statement to the parser and executor. - [Catalog System](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/catalog.md): The catalog is an in-memory SQLite database that indexes Mendix project metadata for fast querying, full-text search, and… - [SQLite Schema](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/catalog-schema.md): The catalog uses an in-memory SQLite database with the following table definitions. - [FTS5 Full-Text Search](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/fts5.md): The catalog uses SQLite’s FTS5 extension to provide fast full-text search across all project content. - [Reference Tracking](https://huaiyukhaw.github.io/mxcli-llms/pages/internals/reference-tracking.md): The cross-reference tracking system powers the callers, callees, references, and impact analysis queries. It is built during… - [MCP Backend: Script-to-Tool-Call Cost](https://www.mxcli.org/internals/mcp-backend-cost.html) ## Guides - [Capabilities Overview](https://huaiyukhaw.github.io/mxcli-llms/pages/reference/capabilities.md): Everything mxcli can do, organized by use case. - [Customizing AI Generation](https://huaiyukhaw.github.io/mxcli-llms/pages/guides/customizing-ai.md): How to make AI assistants (Claude Code, OpenCode, Cursor, etc.) generate Mendix code that follows your team’s conventions. - [Pluggable Widgets Across Versions](https://www.mxcli.org/guides/pluggable-widgets.html) - [Marketplace Content](https://huaiyukhaw.github.io/mxcli-llms/pages/guides/marketplace.md): How to discover, download, and install Mendix Marketplace content (modules, widgets) from the command line with mxcli marketplace… ## Part X: Appendixes - [MDL Quick Reference](https://huaiyukhaw.github.io/mxcli-llms/pages/appendixes/quick-reference.md): Complete syntax reference for MDL (Mendix Definition Language). This is the authoritative reference for all MDL statement syntax. - [Data Type Mapping Table](https://huaiyukhaw.github.io/mxcli-llms/pages/appendixes/data-type-mapping.md): Comprehensive mapping between MDL data types, Mendix internal types, and backend representations. - [Reserved Words](https://huaiyukhaw.github.io/mxcli-llms/pages/appendixes/reserved-words.md): Complete reference for MDL reserved words and quoting rules. - [Mendix Version Compatibility](https://huaiyukhaw.github.io/mxcli-llms/pages/appendixes/version-compatibility.md): Supported Mendix Studio Pro versions, feature availability matrix, and known limitations. - [Common Mistakes and Anti-Patterns](https://huaiyukhaw.github.io/mxcli-llms/pages/appendixes/common-mistakes.md): Frequent errors encountered when writing MDL scripts or using the SDK, with explanations of why they occur and how to avoid them. - [Error Messages Reference](https://huaiyukhaw.github.io/mxcli-llms/pages/appendixes/error-messages.md): Common error messages from Studio Pro, mxcli, and the MDL parser, with explanations and solutions. - [Glossary](https://huaiyukhaw.github.io/mxcli-llms/pages/appendixes/glossary.md): Mendix-specific terms and concepts for developers who are new to the Mendix platform. - [TypeScript SDK Equivalence](https://huaiyukhaw.github.io/mxcli-llms/pages/appendixes/sdk-equivalence.md): Mapping between the official Mendix Model SDK (TypeScript) and MDL/modelsdk-go equivalents. - [Changelog](https://huaiyukhaw.github.io/mxcli-llms/pages/appendixes/changelog.md): Version history and release notes for ModelSDK Go and the mxcli tool. ## Blog - [Blog](https://huaiyukhaw.github.io/mxcli-llms/pages/blog/index.md): News, release announcements, and demos from the mxcli team. - [Release: mxcli v0.28.0](https://huaiyukhaw.github.io/mxcli-llms/pages/blog/v0.28.0-release.md): October 23, 2026 - [Release: mxcli v0.27.0](https://huaiyukhaw.github.io/mxcli-llms/pages/blog/v0.27.0-release.md): October 15, 2026 - [Release: mxcli v0.26.0](https://huaiyukhaw.github.io/mxcli-llms/pages/blog/v0.26.0-release.md): October 11, 2026 - [Introducing mxcli](https://huaiyukhaw.github.io/mxcli-llms/pages/blog/introduction.md)