Starter repository for building abap2UI5 apps — UI5 applications written purely in ABAP. Comes with the validation gates and AI-assistant setup preconfigured, so a new app project starts with everything the abap2UI5 ecosystem has learned about developing with (and by) AI agents.
src/zcl_app_001— a working starter app (input, bound table, event) following the canonical template ofAGENTS.md- abaplint — syntax/style checks with the abap2UI5 framework resolved as a dependency, no SAP system needed
- abap2UI5-linter — checks every
built view statically (unknown/deprecated/too-new controls and members,
binding mistakes, builder-tree defects, chain layout) and renders it
headless with a real
XMLView.create - CI (
.github/workflows/check.yml) running both gates on every push/PR — the same versionsnpm run checkruns locally, pinned inpackage-lock.json AGENTS.md— the complete app-building reference for AI assistants, plus a.claude/settings.jsonpermission allowlist so autonomous sessions run the gates without prompts
- Click Use this template on GitHub (or fork/clone).
- Install the abap2UI5 framework in
your system via abapGit, then install this repo
the same way. The starter app needs framework 1.143.0 or newer — that
is the release the local gates lint against, pinned in
abaplint.jsonc. - Create an ICF endpoint for the framework's HTTP handler (see the
documentation) and open
<endpoint>?app_start=zcl_app_001. - Make it yours (below), then build your app following
AGENTS.md.
After Use this template the repository is still called app-template: the
name is in .abapgit.xml, the ABAP package still says abap2UI5 app, and the
app is still ZCL_APP_001. One command changes all of it:
npm run rename -- --class zcl_my_app --package "My App" --repo my-appAdd --dry to see what it would touch first. It rewrites the class in the
ABAP and the CLSNAME in its .clas.xml — renaming only one of the two
gives you an object abapGit imports under one name and ABAP activates under
another, which is the mistake this exists to prevent. (xml_consistency in
abaplint.jsonc catches it either way.)
Three decisions the script deliberately leaves to you:
- Your namespace.
abaplint.jsoncrequires^ZCL_or^ZCX_, which is the customer namespace every system has. If you develop in a registered namespace (/ACME/) or behind a company prefix (ZAB_), changeobject_namingthere first — you make this choice once and live with it for years. - The LICENSE, which still reads Copyright (c) 2026 abap2UI5. It is MIT, so you may keep it, change the holder, or replace it entirely. It is your project now.
- The ABAP package.
src/package.devc.xmlcreates one package. Whether that is$TMPor a transportable package is decided when abapGit first pulls the repository into your system, not here.
Both gates are npm devDependencies, so CI and your machine run the same versions:
npm ci # once - installs abaplint and the linter
npx playwright install chromium # once - only for the render gate
npm run check # both gates, expect 0 issues
npm run check:abap # abaplint only
npm run check:abap2ui5:fast # linter without the render gate (no browser)
npm run fix # apply the linter's mechanical correctionsSettings (paths, UI5 floor, distribution, rule severities, fail level) live in
abap2ui5lint.jsonc; every rule id is documented at
abap2ui5.github.io/linter.
Prefer no project install? npx @abap2ui5/linter src --no-render runs the
static half straight from npm.
- VS Code extension (Marketplace, Open VSX) — F9 launches a class in an embedded preview against a real system; the linter's findings arrive as editor diagnostics with quick fixes while you type, plus completion for the UI5 API and the class's own binding paths, a template gallery for new apps, and the reconstructed XML view beside the code.
- ai-mcp — MCP server giving AI agents the full loop: deploy the class, build the transpiled Node backend, run the app headless and look at a screenshot.
- AGENTS.md — the complete app-building reference (also for humans)
- Documentation — the rendered docs site
- Samples — curated example apps (bindings, events, popups, navigation)
- samples-controls — the official UI5 demo kit rebuilt 1:1 as gate-verified abap2UI5 apps