Bella
An Eclipse plugin that puts Claude into ABAP Development Tools: explain, generate, rework and implement from the editor's context menu, completion as ghost text, and a chat whose tools reach the system through the developer's existing ADT logon.
Bella runs inside ABAP Development Tools for EclipseABAP Development Tools for EclipseSAP's Eclipse plugins for ABAP: source, dictionary and CDS editors, Project Explorer, Outline and ABAP Unit, calling ADT resources on the connected system.sap official, abap and grounds what the model writes in the system the developer is logged on to: its editor actions collect the tables, types, classes and function modules the code and the instruction mention, load their definitions through the existing ADT logon, and list them in the diff preview shown before anything is written. Code for an object that is open goes into the Eclipse editor only, never into the system, and the editor is left dirty so the developer saves and activates as usual; objects that are not open may be written, created and activated after confirmation, and releasing a transport is always refused. In the chat the model calls Bella's own adt_* tools for search, read, context, where-used, syntax check, ABAP Unit and ATC, and abap_lint checks generated code for obsolete statements without SAP access, a rule set of Bella's own that its README states is not abaplint and no replacement for ATC. The model never talks to the system itself: Bella makes the provider call, through an Anthropic API key, a locally installed Claude Code CLI, the GitHub Copilot CLI or an OpenAI-compatible endpoint. ARC-1arc-1An MCP server in front of the ADT REST API that runs locally and on Cloud Foundry with twelve tools that read, search, write, activate, lint and transport ABAP objects.independent, abap or another MCP server can be added beside the built-in tools, which the README names as where a central audit log, rate limits and a package allowlist come from.
Facts
Where it sits
Who is behind it
In the atlas: maintains 1, contributes to 1@ktaubmannmaintainer
Before choosing this
Conditions
PolicySAP API Policy 4.2026a§ 1.1, 1.2, 2.2.2from Agent access to your codeAn MCP server calls ADT or another SAP API of a running system for an agent.
- § 1.1 Published APIs. Published APIs are made available for the documented purposes identified by SAP, including integration, extensions and data exchange.
- § 1.2 Non-Published APIs. Customer and third-party applications must not access non-published APIs except where documentation permits it or SAP otherwise authorizes it.
- § 2.2.2 AI call sequences and data extraction. Outside SAP-endorsed architectures, data services or expressly identified pathways, the policy prohibits specified agentic API use and systematic or large-scale extraction.
An agent that plans and executes ADT calls is the case section 2.2.2 names. Check that the endpoints are published for the intended use, and that the design runs within a pathway SAP identifies for it.
SAP API Policy 4.2026a →What it declares
Every artifact
- Type
- IDE extension
- Origin
- Independently maintained
- Runtime
- Java
As an IDE extension
- Installs into
- Eclipse with ABAP Development Tools
- Distributed through
- does not say
For agent access to your code
- Read
- sourcesearchwhere-usedDDICCDStable data
- Change
- writecreateactivatetransportsgit
- Check
- syntaxATCABAP Unit
- Run
- run codedumps
Connections
Letting a coding agent read and act on your project or system
Editor help with source: completion, navigation, errors, refactoring
Catching problems in code before execution
SAP's application server and development platform for ABAP. For the things here it is the system a developer's editor or an agent's tool reaches over ADT, and a program calls over RFC; where it runs is the deployment's, as for SAP BW/4HANA.
MCP server over the ADT REST API for ABAP objects
SAP's Eclipse plugins for ABAP development over ADT
The Java-based IDE and plugin platform, downloaded as an archive per operating system and extended through p2 update sites. For the things here, the installation SAP's ABAP Development ToolsABAP Development Tools for EclipseSAP's Eclipse plugins for ABAP: source, dictionary and CDS editors, Project Explorer, Outline and ABAP Unit, calling ADT resources on the connected system.sap official, abap and their companion plugins are added to.
Download
README
quoted from ktaubmann/Bella under MIT, read
Bella – AI assistant for ABAP in Eclipse
Bella brings Claude into the SAP ABAP Development Tools (ADT). You can use it with an API key, with your Claude subscription, with your GitHub Copilot subscription, or with another model through an OpenAI-compatible endpoint.
- Explain code: right-click → What happens here?
- Chat with the code in your editor as context
- Generate code, rework a selection or implement a method, written into the editor only
- Inline AI completion as ghost text
Bella reaches the SAP system through your existing ADT logon. ARC-1 or any other MCP server can be added. The user interface is available in 14 languages.

Features
| Feature | Where | |
|---|---|---|
| What happens here? Explains the selection or, without a selection, the method at the cursor | Right-click in the editor → Bella | |
| Generate code here… Writes code at the cursor position, using the real definitions of the tables, classes and function modules involved | Right-click → Bella | |
| Rework selection… Fix errors, modern syntax, ABAP Cloud, performance, comments | Right-click → Bella | |
| Implement method Writes the body of the METHOD/FORM/FUNCTION at the cursor | Right-click → Bella | |
| AI completion as grey ghost text; Tab accepts, Esc dismisses | Ctrl+↑ (macOS: Cmd+Option+Enter), or automatically while typing (not with the Claude subscription or GitHub Copilot) | |
| Check with ATC and fix… Runs ATC on the object, lists the findings; Bella fixes the ticked ones in the editor (diff preview, not saved) | Right-click → Bella, toolbar | |
| Review transport request… Pick one of your requests (or enter a number); Bella reviews it in the chat: what it does, findings per object, security, syntax/ATC/ABAP Unit, completeness, verdict. Read only | Menu Bella, right-click → Bella | |
| Review code Checks the selection or the method at the cursor with abap_lint, syntax check and ATC and reports blocking points, performance and Clean ABAP issues, most important first (read only) | Right-click → Bella (chat) | |
| Suggest refactoring / unit test | Right-click → Bella (chat) | |
| Chat with editor context, streaming and tool calls; insert code blocks, replace the selection or take them over as a method body | Ctrl+Alt+B, pink B in the toolbar, menu Bella | |
| SAP tools: search, read (also DDIC tables, structures, data elements, domains, table types, function modules, message classes, classic DDIC views, lock objects, transactions, enhancement implementations and knowledge transfer documents), table contents, context of used objects, where-used, syntax check (also for unsaved code), ABAP Unit and ATC (for one object or a whole package), style check, write, create, activate, test OData and REST services | automatically in the chat | |
| Chat modes from Diff mode only to Automode, and Planning Mode with accept, change or cancel (see below) | Drop-down and button below the chat input | |
| Questions with options: when a decision is yours, Bella asks with a menu as Claude Code does; pick with the mouse, arrow keys or digits, or type your own answer | in the chat | |
| Chat history: chats are saved; open an earlier one to read and continue it | Chats ▾ below the chat input, toolbar of the chat view |

Changing shortcuts: Preferences → General → Keys, filter for "Bella". Ctrl+↑ only applies in editors Bella is attached to and replaces "Scroll Line Up" there. Bella does not use Ctrl+Alt+Space, because the Claude desktop app takes it for its quick entry on Windows.
![]() Generate code at the cursor. Describe what you need or pick a suggestion. |
![]() What happens here? The explanation also lists side effects and suspicious points, here a missing authority check. |
![]() Check with ATC and fix. The findings, most important first; Bella fixes the ticked ones in the editor after the diff preview. |
|
Chat modes
A drop-down below the chat input sets how freely Bella may act, from careful to free. It applies from the next tool call on, and every chat starts with Ask before changes.
| Mode | Reading | Table contents | Writing into an open editor | Saving, creating, activating in SAP |
|---|---|---|---|---|
| Diff mode only (suggest) | runs | asks | diff preview | refused |
| Ask before changes (default) | runs | asks | diff preview | asks |
| Read data without asking | runs | runs | diff preview | asks |
| Write and activate | runs | asks | diff preview | runs |
| Automode | runs | runs | diff preview | runs, plus ABAP Unit after each activation (adt_activate with run_unit_tests); Bella carries the task out and fixes errors, ATC priority 1 and 2 findings and failing tests |
- Choosing one of the two modes that write without asking asks once for confirmation.
- Planning Mode (button next to Send): Bella reads and analyses what you typed and answers with a numbered plan; nothing is changed, also not in the editor. Below the plan you then choose:
- Accept plan: Bella carries the plan out in the mode chosen in the drop-down (e.g. asking before each change, or everything at once in Automode).
- Change plan: you type what should be different; Bella answers with a revised plan and asks again.
- Cancel: the plan is dropped and nothing happens.
- In every mode the allowed packages, your
DENYrules and the ban on releasing transports stay, and objects open in an editor are only changed in the editor (you save and activate those). - The modes work the same with an API key, the Claude subscription and GitHub Copilot.
- Use the modes that write without asking in development systems only.
How Bella gets SAP context
A model that does not know your system guesses field names and signatures. Bella therefore reads them from the system through your ADT logon:
- Editor actions (Generate code here…, Rework selection…, Implement method) first collect the objects the code and your instruction mention: tables in
SELECT, types afterTYPE, classes before=>or afterNEW, function modules inCALL FUNCTION, and names such asMARAin "select mara and show". Bella loads their definitions (at most 12 objects, 8 seconds), adds them to the request and lists them in the diff preview under SAP definitions used. You can switch this off under Preferences → Bella → Editor. It needs ADT and an ABAP editor of a logged-on system; the completion (Ctrl+↑) stays without it so that it stays fast. - In the chat the model calls
adt_contextoradt_read_sourceitself. To save tokens,adt_read_sourcecan return a single method (method) or only the matching lines (grep), andadt_write_sourcecan replace a single method. Sources are cached and revalidated with SAP (ETag), and a note tells the model when an object has saved changes that are not activated yet.adt_contexttakes an object name, a piece of code or a list of names and returns in one call: the public section of classes, interfaces, table and structure fields, CDS views, function module signatures, data elements and table types. - Style check:
abap_lintchecks code without SAP access for obsolete statements (MOVE,CALL METHOD,CREATE OBJECT, header lines,FORM…),SELECT *,SELECTin loops,SELECT … ENDSELECT, uncheckedSELECT SINGLE,CATCH cx_root, emptyCATCHblocks, break-points, aborting messages, texts the user sees as literals instead of text symbols, selection texts set in code (%_p_name_%_app_%-text), unused variables, unused local types and private methods, unreachable code,sy-subrcnot checked afterREAD TABLE,ASSIGN,AUTHORITY-CHECKorCALL FUNCTIONwithEXCEPTIONS, database changes in loops,DELETE … INDEX sy-tabixinside a loop over the same table,MANDTin SQL,INTObeforeWHEREin strict SQL,EXIT/CHECKoutside loops,EXPORTINGwhereRETURNINGfits, an emptyCATCHof a down cast, commented-out code, repeatedELSEIFconditions, mismatchedBEGIN OF/END OFnames, deep nesting, long or complex methods, a missing@in strict Open SQL, long lines, trailing spaces, runs of blank lines and mixed keyword case (rules after ARC-1's abaplint presets and rules.abaplint.org, compared with abaplint on abapGit's sources). It knows the target system: syntax the system's SAP_BASIS release does not have yet (inline declarations, constructor expressions and table expressions before 7.40,RAISE EXCEPTION NEWbefore 7.52,FINAL( )before 7.57) is an error, and on ABAP Cloud so are classic statements, lists, dynpros, obsolete statements and SQL without@. Where the release offers them it suggests modern forms:xsdbool( ),line_exists( ),CORRESPONDING #( )andRAISE EXCEPTION NEW. CDS data definitions get CDS rules: obsolete DDIC-based views (DEFINE VIEWwithoutENTITY) and association names without a leading underscore. The diff preview shows its findings for generated code. It is a small rule set of Bella's own, not abaplint and no replacement for ATC. - Checks before and after writing, as with ARC-1: before
adt_write_sourcesaves an ABAP main source, SAP's syntax check runs on the new source; a write that adds syntax errors is refused (unlessallow_errorssays the errors are an intended step). Unlike ARC-1's local abaplint parser, SAP's compiler knows the system's real DDIC. A clean change costs one check, whose result also stands in for the check after saving.adt_write_sourceandadt_create_objectadd the style check of the code written and a syntax check of the saved version to their result (for CDS views, access controls, metadata extensions, behavior and service definitions only the syntax check), so the model fixes them before activating.adt_activatewithrun_atcruns ATC on the activated objects in the same call, because ATC checks the active version; findings are listed by priority. Write and activate and Automode run ATC once when a change is complete (not on every activation), fix priority 1 and 2 and explain what they leave. - Quick fixes and pretty printer:
adt_quickfixlists SAP's own quick fixes (Ctrl+1) for the line of a syntax or ATC finding and previews one as a diff, ready foradt_write_source;adt_formatformats code with the system's pretty printer settings;adt_format_settingschanges those settings for everybody and always asks first. - Targeted class and program changes:
adt_edit_codeadds a method (with an empty implementation), changes a method's signature, moves it to another section (keeping its body and ABAP Doc), deletes it, replaces the class definition, or replaces or adds aFORM/MODULE— without rewriting the whole source. A change that would add syntax errors is refused, and one that would leave a method declared without implementation (or the reverse) too, as in ARC-1's class surgery. Open objects are changed in the editor with a diff preview. - Source code search:
adt_search_objectswithsearch_insourcesearches the text of ABAP sources through ADT's text search (as ARC-1'sSAPSearchdoes), optionally only in one package or object type, and returns the objects with their matching lines. It needs SAP_BASIS 7.51 or later and the authorization S_ADT_RES. - Speed:
adt_contextand the editor actions load up to three definitions at the same time. The tool lists of MCP servers such as ARC-1 are kept for five minutes instead of being fetched before every chat question; a server that does not answer is asked again after a minute, and its tools stay out of the chat meanwhile. - Size limit: a tool result longer than 120,000 characters (about 30,000 tokens) is cut at a line end with a note to ask for less, so a large table, trace or source cannot fill the model's context.
- Navigation and object information:
adt_navigatefinds the definition of the symbol at a position, its references, ADT's code completion and a class hierarchy;adt_object_infoshows the release state of an SAP API (C0–C4, successor of a deprecated API), the version history and a version's source, and program variants.adt_object_info 'diff'shows a unified diff between two versions of a source: by default the active one and the saved changes that are not activated yet, or two numbers from the version history (as ARC-1'sSAPReaddiff).adt_navigate 'impact'lists what a CDS view reads, associates and composes (from its source) and what uses it, grouped into CDS views, behavior and service definitions, service bindings, access controls, metadata extensions and ABAP code, direct uses only unlessinclude_indirect;adt_navigate 'structure'shows the includes of a table or structure, followed five levels deep, and its append structures (as ARC-1'sSAPContext impactandstructure). - Deleting:
adt_delete_objectchecks the where-used list first, refuses while other objects use the object unless told otherwise, and always asks. - Text elements:
adt_text_elementsreads andadt_write_text_elementswrites the text pool of a program, class or function group through ADT's textelements service, as ARC-1'sSAPWrite edit_text_symbolsdoes: text symbols (TEXT-001), selection texts ofPARAMETERSandSELECT-OPTIONS, and list headings, in the body format ADT and ARC-1 use (one@MaxLengthper symbol, symbols separated by blank lines, unpadded selection names). SAP keeps selection texts only for fields of the active program; those it does not keep are listed for the developer to maintain in SE38. Bella adds a missing@MaxLengthto text symbols, reads the part back to check that SAP kept the texts, and activates the text pool;adt_activatetakes an inactive text pool of the activated program, class or function group along (or activate it alone with typeREPT). - Creating objects:
adt_create_objectcreates classes, interfaces, programs, includes, function groups and function modules (with processing type normal, RFC or update), message classes with their messages, data elements, domains (with fixed values), table types, tables, structures, CDS views, access controls, metadata extensions, behavior definitions, service definitions and service bindings, as ARC-1'sSAPWrite createdoes.adt_write_metadatachanges data elements, domains, table types and the messages of a message class; it reads the object first and changes only the fields given. Objects that depend on each other (a domain and its data element, a table and its CDS view, a RAP stack) go together intoobjectsofadt_create_object: up to 20, created in that order and activated together at the end, as ARC-1'sbatch_create; every entry passes the same checks before anything is created, and the first failure stops the rest.
Tables and structures are read as source on newer ABAP releases (7.52 and later). On older releases, and for data elements, domains, table types and message classes, Bella summarizes the object's ADT description.
- Table contents:
adt_table_contentsreads rows of a table or CDS view through ADT's data preview, like SE16 or the SQL console:tablewith optionalcolumns,whereandmax_rows(default 100, at most 1000), or a complete ABAP SQLSELECTinsql. Only a singleSELECTis sent, and SAP checks your authorization for the data. Because the rows go to the model provider, Bella asks before each read unless the chat mode is Read data without asking or Automode. - System knowledge:
adt_list_systemsshows each system's SAP_BASIS release or whether it is an ABAP Cloud system, and the editor actions tell the model the release.adt_transports 'for_object'asks SAP which transport request a change needs,adt_transports 'history'lists the requests an object was changed in (from its version history), andadt_diagnose 'short_dumps'lists and reads runtime errors (ST22). - Diagnostics:
adt_diagnosereads system messages, gateway errors, ABAP profiler traces (hit list, statements, database accesses) and trace requests, the state and directory of the SQL trace (ST05), the authorization trace (STUSERTRACE; it contains user names and authorization values, so Bella asks first like for table contents) and the ATC check variants.adt_trace_controlarms or cancels a profiler trace for the next run of a user and switches the SQL trace on or off; it always asks. - Debugging (experimental): while the ABAP debugger in Eclipse is stopped,
debug_contextgives the model the current line, the call stack, the variables of the current frame (tables and structures two levels deep, at most 10 rows; one variable in full withvariable, e.g.LT_ITEMS/[3]), the exception it stopped at and the breakpoints.debug_breakpointsets or removes a line breakpoint through Eclipse's own Toggle Breakpoint command in the open editor of the object, anddebug_stepsteps into, over, out or resumes. Bella reads the session through Eclipse's debug framework, not through internal SAP APIs. Variable values reach the model provider, sodebug_contextasks first like table contents (not in the Read data mode);debug_breakpointasks, anddebug_stepasks in every mode, because resuming may runCOMMIT WORK. The model suggests breakpoints with the reason before it sets them. Bella: Explain debugger state in the context menu of the Debug and Variables views sends the state to the chat; Analyse newest short dump (Bella menu) reads the newest ST22 dump, finds the cause and proposes a fix. When the debugger stops at an exception, a notification offers an analysis (switch it off under Preferences > Bella); nothing is sent before you click it. - Testing services (experimental):
adt_diagnose 'odata_request'sends a GET to an OData service of the system (/sap/opu/odata/…or/sap/opu/odata4/…, e.g.$metadataor an entity set with$top) and returns the status, the answer and thesap-statisticstiming split with a verdict where the time goes (database, ABAP, Gateway framework, authorization), as ARC-1'sSAPDiagnose 'odata_perf'does. Because the answer is business data, Bella asks first like for table contents.adt_http_sendsends POST, PUT, PATCH or DELETE to a service of the system (OData,/sap/bc/rest/…, own ICF nodes) to test creating, changing or deleting; it fetches the CSRF token in the same session and always asks, also in Automode, and Planning Mode and Diff mode only refuse it. Both take only host-relative paths on the connected system and run with your ADT logon; ADT and gCTS paths (/sap/bc/adt,/sap/bc/cts_abapvcs), logon parameters and the headersAuthorization,Cookieandx-csrf-tokenare refused, and cookies and tokens of the answer do not go to the model. They have no package scope, since a URL names no repository object. Whether a service accepts requests through the ADT connection, and the CSRF token of the ADT session, depends on the system; this was tested against a simulated backend only. - Transports and packages:
adt_transport_managecreates a request (with the package's route or a target), gives a request and its open tasks to another owner, deletes a request or removes one object from it, and always asks; releasing stays impossible.adt_transports 'layers'and'targets'list transport layers and targets.adt_package_managecreates a package (super package, software component, transport layer) and deletes one after asking. - Git:
adt_gitlists abapGit repositories and checks one, and reads gCTS repositories, branches, history and objects.adt_git_writeclones, pulls, switches branches and pushes (all or chosen objects) through abapGit's ADT backend and always asks. Bella never passes Git credentials; repositories that need them must have them stored in the SAP system. - RAP and UI5:
adt_rap 'generate_handlers'adds the handler methods a behavior definition requires (actions, determinations, validations, instance features and authorizations) to the local types of the behavior pool, as Eclipse's quick fix does;publish_srvbandunpublish_srvbpublish an OData service binding.adt_ui5lists BSP/UI5 apps, reads their files and the deploy information, and reads Fiori launchpad catalogs, groups and tiles (read only, as in ARC-1). - Whole packages:
adt_run_unit_testsandadt_atc_checktake apackageinstead of anameand run over all its classes, programs and function groups (ATC also interfaces, CDS and RAP objects, tables, data elements and domains), withinclude_subpackagesalso over its subpackages, as ARC-1'sunittest_ciandatc_cido. Bella collects the objects through ADT's repository search, so the result says how many objects ran; includes and function modules run with their program or group. Large packages run in requests of 50 objects, at most 300 objects per call, and the result lists at most 200 ATC findings, most important first, with the counts per priority. With a development package set, only that package runs, and customer objects of its subpackages are left out. - Transport review:
adt_transportslists requests,adt_transport_reviewcollects a review dossier for one: per source the diff between the version in the request and the version before it (version choice as in ARC-1's transport diff), syntax check, ATC and ABAP Unit in one run each, objects not activated, and customer objects the changed code uses that are missing, inactive or held in another open request. The review answer starts with the verdict and at most five blocking and five should-fix points, then an overview table per object, then the details.
Compared with ARC-1: Bella's tools now cover what ARC-1's SAPRead, SAPSearch, SAPContext, SAPQuery, SAPNavigate, SAPWrite (create, metadata, class and unit surgery, text elements, delete), SAPActivate (incl. publishing service bindings), SAPDiagnose (incl. odata_perf as adt_diagnose 'odata_request'), SAPTransport (without releasing), SAPManage (packages), SAPGit and the quick fixes and pretty printer of its dev tools offer, plus a package allowlist for writes and changing requests to services (adt_http_send). ARC-1's 12 tools are grouped by intent; Bella keeps reading and writing in separate tools (so the chat modes and rules can tell them apart) but groups related reads, e.g. transports in adt_transports and short dumps in adt_diagnose. Risky actions ask in every chat mode. ARC-1 is still worth adding for the real abaplint rule set (SAPLint; Bella has its own smaller rule set), a central audit log and rate limits, or when the tools should run on a server instead of in Eclipse. The ADT requests of the new tools follow ARC-1 and were tested against a simulated backend only; the OData services (UI5 deploy information, launchpad) and gCTS live outside ADT and may not be reachable through ADT's connection on every system.
Ground rule: open objects are only changed in the editor
- Code for an open method or class goes only into the Eclipse editor, never directly into the SAP system. The editor holds the lock on the object.
- A diff preview first shows old and new side by side (can be switched off).
- Afterwards the editor is dirty: nothing is saved or activated.
Ctrl+Zundoes the change. - You save and activate as usual with
Ctrl+SandCtrl+F3.
- If Claude tries to change an open object through a tool in the chat, Bella's router redirects the write into the editor.
- Objects that are not open may be written, created and activated in the SAP system, after you confirm.
Architecture: who calls whom
- and 2. Bella reads the source from the ADT editor and writes suggestions only into its buffer.
- Only Bella calls the model. Prompt, code context and tool list go out; text and
tool_userequests come back. With the Claude subscription or GitHub Copilot, the local Claude Code CLI or Copilot CLI makes this call for Bella. - Optionally Bella runs tool requests through ARC-1 or another MCP server.
- Tools reach the SAP system in one of two ways:
- 5a (default): Bella's own
adt_*tools use the ADT communication layer with the logon of your ABAP projects, including SSO. There is no second logon and no extra process. - 5b (optional): ARC-1 talks to the SAP system and adds audit, rate limits and a package allowlist.
- 5a (default): Bella's own
- You save and activate open objects yourself in ADT.
The model never talks to the SAP system directly. Your system does not need to be reachable from the internet.
Tool policy
| Tool | Default |
|---|---|
Read and check (adt_search_objects, adt_read_source, adt_context, adt_syntax_check, adt_run_unit_tests, adt_atc_check, adt_text_elements, adt_quickfix, adt_format, adt_navigate, adt_object_info, adt_transports, adt_transport_review, adt_diagnose, adt_git, adt_ui5, abap_lint; ARC-1: SAPRead, SAPSearch, …) | runs automatically |
Table contents and service answers (adt_table_contents, adt_diagnose 'odata_request'; ARC-1: SAPQuery) | asks first |
Write, create, activate (adt_write_source, adt_edit_code, adt_create_object, adt_write_metadata, adt_write_text_elements, adt_activate, adt_rap, adt_package_manage 'create'; ARC-1: SAPWrite, SAPActivate, …) | asks first |
Delete objects, create or change transport requests, Git clone/pull/push, delete packages, start traces, change system settings, send changing requests to services (adt_delete_object, adt_transport_manage, adt_git_write, adt_package_manage 'delete', adt_trace_control, adt_format_settings, adt_http_send; rules with ASK, also for ARC-1's matching actions) | asks in every chat mode, also in Automode |
| Release transports | always refused |
The chat mode can tighten or loosen this (see Chat modes); refusals stay refusals in every mode.
- Add your own rules under Preferences → Bella → SAP-Tools & ARC-1, one per line as
pattern=AUTO|CONFIRM|ASK|DENY;ASKasks even in Automode, andtool:action=…matches only one action of a multi-purpose tool (e.g.mcp_arc1_SAPTransport:create=ASK). Rules that still name tools Bella has merged, also through a wildcard such asadt_short_dump*, keep their effect on exactly the calls they covered:adt_short_dumpsapplies toadt_diagnose 'short_dumps',adt_where_usedtoadt_navigate 'references',adt_transport_infotoadt_transports 'for_object',adt_list_transportstoadt_transports'list', 'layers' and 'targets',adt_settings_writetoadt_format_settings. - Development package: a chat works in one package. With an object from the editor in the chat it is the package of the first such object, unless you named a package before (then that one stays and the editor object is only context); switching to another include or class later keeps package and request, and changes to objects of other packages are refused. Without an editor object Bella asks you which package to develop in and records your answer with
adt_dev_package(you confirm it, also in Automode). Customer objects (Z*, Y*) of other packages are ignored: the search lists their names only as taken,adt_contextand the class hierarchy and where-used list ofadt_navigateleave them out, and reading them (also as a table in aSELECTofadt_table_contents) or changing them is refused, as is any write before the package is known. The editor actions leave such objects out of the definitions they load, too; if the package of the edited object cannot be read, they load the definitions without this filter. - New chat (button next to Planning Mode, also in the view's toolbar): starts over; the model forgets the conversation, a running answer stops, package and transport request are reset. The chat before is kept in the chat history.
- Chat history (Chats ▾ below the input, or the clock in the view's toolbar): the last chats with their age, and All chats… to filter, open or delete them. An opened chat shows what you saw (answers, tool calls, answered questions, code blocks with their buttons) and goes on where it stopped: with an API key or an OpenAI-compatible endpoint and the same model Bella takes the conversation over as it was; otherwise (Claude subscription, GitHub Copilot, another model) the next message carries the conversation so far as text. Package and transport request of the chat are set again with the usual checks, and its chat mode unless it writes without asking. Chats are saved in
<workspace>/.metadata/.plugins/de.kiliantaubmann.bella.ui/chats/; Preferences → Bella switches the history off and sets how many chats are kept (default 50). - Questions with options (
ask_user): when a decision is yours and Bella cannot settle it from the code or the system (which approach, package or object, what a requirement means), it asks one to four questions with two to four options each, recommended option first, as Claude Code's AskUserQuestion. The menu appears in the answer: click an option, or use ↑/↓ and Enter or the digits, Space ticks options of a question that allows several, the last line takes your own answer, Esc dismisses. It runs in every chat mode, also in Planning Mode (before the plan), and with every provider. - Transport request: before the first change in a non-local package Bella asks you which request to use; only your own open requests are accepted, every write uses that request (Bella fills it in), and a different one is refused. A new package can be created before a development package is set, with one of your own open requests; it then becomes the chat's development package with that request. A new chat starts without package and request.
- Package bar above the chat: shows the chat's development package and transport request, whoever set them, and a note in the chat marks each change. Type a package (Enter) or pick one of your last ten, search the system with …, and choose one of your own open requests in the drop-down; Bella checks them like
adt_dev_packageand the next message tells the model, so it does not ask again. With an editor object in the chat the package is locked; the bar is locked while Bella answers. It reads package and request again when you return to the chat (e.g. after logging on). - Allowed packages (same page, default
$TMP, Z*, Y*): Bella's tools write, create and activate only there; other writes are refused before you are asked. Empty allows all packages. Writing into an open editor is not affected. - With ARC-1, its server-side safety flags apply in addition.

Installation
Requirements:
- Eclipse 2026-09 or newer with Java 21
- SAP ABAP Development Tools
- on Linux also WebKitGTK (
libwebkit2gtk-4.1) for the chat
From the update site (recommended):
- In Eclipse: Help → Install New Software… → Add…, name Bella, location:
https://bella.kilian-taubmann.de/ - Install both features:
- Bella: chat, editor actions, completion, MCP/ARC-1.
- Bella ADT integration: Bella's own SAP tools through the ADT logon. Requires ADT.
- Restart Eclipse. New versions then arrive through Help → Check for Updates.
From a ZIP (offline): download bella-update-site-vX.Y.Z.zip from Releases, do not unzip it, and choose Add… → Archive… instead of entering the address. Check for Updates does not find new versions of a local ZIP; install the next ZIP the same way.
Bella does not ship or download ADT. The update site contains only Bella's own bundles, and they accept any installed ADT version, so an existing ADT installation is left as it is. To be on the safe side, you can untick Contact all update sites during install to find required software in the install dialog; Eclipse then only looks at Bella's update site.
Setup
Window → Preferences → Bella

- Provider (drop-down at the top): Claude (API key), Claude subscription (Claude Code CLI), GitHub Copilot (Copilot CLI) or OpenAI-compatible. The page only shows the fields of the selected provider, plus a note on code completion.
- Claude (API key):
- Enter an API key from console.anthropic.com. It is stored encrypted in Eclipse secure storage.
- Default models:
claude-opus-5for chat and code,claude-haiku-4-5for fast completion. - Effort and the server-side fallback model for declined requests can be set.
- Claude subscription and GitHub Copilot: see the next sections.
- OpenAI-compatible (optional): base URL, key and model, e.g.
http://localhost:11434/v1for Ollama. The source code then stays in-house. - Languages:
- User interface: like Eclipse or fixed. Menus switch right away, no restart needed.
- Answers: like the user interface, like the question, or fixed.
- ABAP comments in generated code: separate setting, English by default.
- Editor: diff preview, automatic completion while typing and its delay.
Claude subscription instead of an API key
With a Claude subscription (Pro, Max, Team or Enterprise) you do not need an API key. Bella then uses the locally installed Claude Code CLI, which handles logon and billing through your subscription.
- Install Claude Code and log in once in a terminal:
If Eclipse does not see this logon (e.g. a different user),claude auth login # log in with your Claude account in the browserclaude setup-tokencreates a long-lived subscription token. Enter it in Bella as Subscription token; it is kept in secure storage. - Choose Preferences → Bella → Provider: Claude subscription (Claude Code CLI) and click Check. The status line shows e.g. "logged in (max)".
- You only need to set the path to
claudeif Bella does not find it. Bella searchesPATH,~/.local/bin,/opt/homebrew/bin,/usr/local/binand on Windows%USERPROFILE%\.local\binand%APPDATA%\npm. To find the path, run(Get-Command claude).Sourcein PowerShell orwhich claudeon macOS/Linux, and paste the result (or use Browse…). If the command is not found, the CLI is not installed yet, or the terminal was opened before the installation: open a new one. - Models: alias or full ID, default
opusfor the chat andhaikufor completion. Which models are available depends on your plan.
- You only need to set the path to
What happens:
- Bella starts
claudeheadless (-p,stream-json) in its own working directory in the Eclipse workspace metadata. One CLI process runs per chat; New chat ends it. - The CLI's built-in tools are switched off (
--tools ""), so Claude can neither read files nor run commands. - The CLI gets Bella's SAP tools through a local MCP server inside Bella. It listens on
127.0.0.1only and requires a random token. Other MCP configurations of the user are ignored (--strict-mcp-config). - Every tool call passes the same rules as with an API key: tool policy, confirmation dialog and the router for open objects (code only goes into the editor).
- Bella removes an
ANTHROPIC_API_KEYfrom the CLI's environment so that the subscription is really used.
Limits:
- Completion: every suggestion starts the CLI and takes 2–5 seconds. With the subscription there are therefore no automatic suggestions while typing, only on
Ctrl+↑. - Your subscription's usage limits apply. When the limit is reached, Bella says so in the chat.
- Stop interrupts the running answer. If the CLI does not react within 3 seconds, Bella ends the process; the next message then starts without the earlier conversation, and Bella tells you.
GitHub Copilot subscription
With a GitHub Copilot subscription, Bella uses the locally installed GitHub Copilot CLI. It handles logon and billing through your Copilot plan, and you can pick any model your plan offers (Claude, GPT and others).
- Install the Copilot CLI and log in once in a terminal:
Instead ofwinget install GitHub.Copilot # Windows; or: npm install -g @github/copilot, brew install copilot-cli copilot login # opens the browsercopilot loginyou can create a fine-grained personal access token with the Copilot Requests permission and enter it in Bella as Token. Classicghp_tokens are not supported. - Choose Preferences → Bella → Provider: GitHub Copilot (Copilot CLI) and click Check. The status line shows "logged in", the CLI version and the models your plan offers.
- You only need to set the path to
copilotif Bella does not find it. Bella searchesPATHand on Windows also%LOCALAPPDATA%\Microsoft\WinGet\Linksand%APPDATA%\npm. To find the path, run(Get-Command copilot).Sourcein PowerShell orwhich copiloton macOS/Linux, and paste the result (or use Browse…). Typical results:C:\Users\<you>\AppData\Local\Microsoft\WinGet\Links\copilot.exe(winget) orC:\Users\<you>\AppData\Roaming\npm\copilot.cmd(npm). If the command is not found, open a new terminal after the installation. - Models: leave empty for the Copilot default, or enter a model ID from the list shown by Check.
- You only need to set the path to
What happens:
- Bella starts
copilot --acp(Agent Client Protocol) in its own empty working directory in the Eclipse workspace metadata. One CLI process runs per chat; New chat ends it. - The CLI's own abilities are switched off: no shell commands (
--deny-tool shell), no file changes (--deny-tool write), no web access (--deny-tool url), no GitHub MCP server and none of your own Copilot MCP servers. - The CLI gets Bella's SAP tools through the same local MCP server as the Claude subscription (loopback only, random token). Tool policy, confirmation dialog and the router for open objects apply as usual. Bella rejects every other action the CLI asks permission for and says so in the chat.
Limits:
- Premium requests: every chat message, explanation or completion counts against your Copilot plan's premium requests, depending on the model.
- Completion: every suggestion starts the CLI and takes a few seconds, so there are no automatic suggestions while typing, only on
Ctrl+↑. - Stop cancels the running answer; if the CLI does not react within 3 seconds, Bella ends the process and the next message starts a new conversation.
Project conventions
Under Preferences → Bella → Project conventions you describe your project for Bella, for all systems and per ABAP project (a system's settings are added to those for all systems):
- Project information (Markdown): package structure, architecture, dos and don'ts. Bella gives it to the model in the chat and in the editor actions.
- Naming rules, one per line as
kind = pattern, pattern(*any characters,?one character), e.g.
Insert standard rules fills in common SAP conventions. The model follows the rules, and the style check (class = ZCL_SD_* local_data = lv_*, lt_*, ls_*, lo_*, lr_* importing = iv_*, it_*, is_*, io_* field_symbol = <ls_*>, <lv_*> test_class = ltc_*abap_lint, diff preview) reports names that break them: data by where it is declared (local, global, attribute), constants, field symbols, types, methods and their parameters, local and test classes, and the names of programs, global classes and interfaces. - Derive from package… reads the objects and a few sources of a package and lets the model propose both parts; review them before you apply.
- ATC check variant for Check with ATC and fix…, the transport review, Review code and
adt_atc_check. A system's own variant wins over the one for all systems; left empty, Bella uses the system's default variant. Useful when the default variant runs remote checks through a central check system that cannot be reached (RFC destination errors).
The parameters of ATC check variants (e.g. a naming check) cannot be read through ADT, so they cannot be imported; findings of such a check are fixed with Check with ATC and fix….
Connecting ARC-1 (optional)
Under Preferences → Bella → SAP-Tools & ARC-1 → Add…:
- HTTP: URL of the ARC-1 server, e.g. locally
http://localhost:3000/mcpor a BTP instance, optionally with a bearer token. - stdio: Bella starts ARC-1 itself, e.g. with
npx -y arc-1@latest. Configure the SAP connection as described in the ARC-1 documentation.
Bella does not start an HTTP server itself. If the server is not reachable, the chat shows this once with the URL, and Test shows the same message. When the server comes back, or after it was restarted, Bella reconnects on the next question.
Test lists the tools a server offers. When two tools offer the same capability (e.g. reading source code), Bella's ADT tools win by default. You can prefer ARC-1 instead, e.g. when governance should run centrally through ARC-1.
Troubleshooting: log file
When something does not work, switch on the log under Preferences → Bella → Log file (it is off by default) and repeat what went wrong.
- Normal records what Bella does, with status, duration and errors:
- model requests: provider, model, tokens, stop reason,
- tool calls with the policy decision,
- every ADT request with path and HTTP status, plus the SAP error text,
- Claude Code and Copilot CLI processes with command line, exit code and stderr,
- MCP connections.
- Details (a second checkbox) adds the content: prompts, answers, tool input and output, source code and every protocol line of the CLIs. Only switch it on while you reproduce a problem.
- API keys, tokens, passwords and authorization headers (also
x-csrf-token,Proxy-Authorization, and every scheme such as Basic, Bearer, Negotiate or NTLM) are removed from every entry. Environment variables are logged by name only. - Masking (same page, on by default): confidential data in the log is replaced with placeholders, so you can attach the file to a bug report. The model still gets the real data.
- Customer objects (Z*, Y*):
ZCL_ACME_ORDER→ZCL_MASK1,zcl_acme_order→zcl_mask1. - System data: SID, ABAP project and logon user →
MASKSYS2,MASKUSER3. - E-mail addresses and IBANs →
maskmail4@example.invalid,MASKIBAN5; with this option also user names SAP gives in its messages ("locked by user MUELLER"), but not ABAP code such asDATA user TYPE syuname. - Own terms (company, customer, project, namespace such as
/ACME/), one per line →MASKTERM6,/MASK7/. - A value keeps its placeholder for the Eclipse session, so you can follow an object through the log. Names of people in free text, comments or string literals are only masked if you add them as terms.
- Customer objects (Z*, Y*):
- The file is
bella.login<workspace>/.metadata/.plugins/de.kiliantaubmann.bella.ui/. The preference page opens it, opens its folder or clears it; the chat view menu (▾) has Open log. At 5 MB it moves tobella.log.1. - Please attach the file to a bug report. Errors also still go to Eclipse's Error Log view.
Security and privacy
- The selected model provider receives your question, source excerpts from the editor and tool results. With Ollama everything stays local.
- API keys and tokens are kept in Eclipse secure storage, not in plain-text preferences.
- Bella never opens an SAP logon itself. Tools only use projects that are already logged on.
- Writing tools ask first, releasing transports is blocked, and open objects are only changed in the editor.
- The log file is off by default and never contains keys or tokens; with details on it contains source code.
- The chat history stays in the workspace and contains your messages, the answers and shortened tool calls, so also source code. Results of table contents, service answers and debugger values are not stored. Switch it off under Preferences → Bella, or delete chats in All chats….
- With a personal subscription (Claude Pro/Max, GitHub Copilot for individuals) the provider's data settings apply. Check whether your chats may be used for model training, and switch that off if your company's code must not be used for it. Anthropic and GitHub do not train on data from API keys or business plans by default.
Development
./mvnw verify # core, UI, unit tests (without the SAP SDK)
xvfb-run -a ./mvnw verify # plus the workbench smoke test on Linux
./mvnw -Padt verify # plus the ADT bundle and the update site
# (downloads ADT from tools.hana.ondemand.com)
python3 releng/i18n/generate.py # generate translations from releng/i18n/*.py
mvnw (mvnw.cmd on Windows) uses Maven 3.9.16, the version the build and the release workflow use; Maven 3.10 on the GitHub runners did not start the earlier Tycho 4 build.
-Padt downloads ADT from SAP's update site; SAP's license terms for these downloads (SAP Developer License Agreement) apply to whoever runs the build. The ADT bundles are only used to compile against and are not part of Bella's update site.
Release: raise the version in all pom.xml, MANIFEST.MF and feature.xml files and in BellaPlugin.VERSION (e.g. with ./mvnw org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=0.3.0-SNAPSHOT) and commit. Then push a tag v0.3.0, or enter the version 0.3.0 under Actions → Release → Run workflow. The release.yml workflow builds everything including the ADT integration, runs the tests and attaches bella-update-site-v0.3.0.zip to a GitHub release. When the repository variable PAGES_ENABLED is true, it then publishes the same update site on GitHub Pages (pages.yml, address from the variable UPDATE_SITE_URL); Actions → Update site → Run workflow publishes an existing release again.
| Module | Contents |
|---|---|
bundles/de.kiliantaubmann.bella.core | no UI and no ADT: Anthropic and OpenAI-compatible providers (streaming, tool use, prompt caching), Claude Code integration (CLI, stream-json, local MCP server), GitHub Copilot integration (Copilot CLI, Agent Client Protocol), tool registry and policy, MCP client (HTTP and stdio), chat tool loop, ABAP scanner, reference finder and style check, prompts, ADT REST client, adt_* tools and the context builder |
bundles/de.kiliantaubmann.bella.ui | chat view, context menu, diff preview, router, ghost text, preferences, icons, translations |
bundles/de.kiliantaubmann.bella.adt | the only dependency on the ADT SDK: projects, logon and REST transport as an OSGi service |
tests/…core.tests | unit tests for providers, MCP client and server, Claude Code and Copilot sessions (with simulated CLIs), tool loop, ABAP scanner, reference finder, style check, ADT client and context (with a simulated ADT backend), logging and redaction, translations |
tests/…ui.tests | workbench smoke test: commands, chat, preferences (provider drop-down, subscription and Copilot hints), Ctrl+↑ without key conflict, menus in Bella's language, writing into the editor without saving, style check in the diff preview, log file on/off, router, language switch |
The Claude integration deliberately uses java.net.http instead of the Anthropic Java SDK. This keeps the OSGi bundle free of OkHttp, Kotlin and Jackson.
Status and known limits
-
The GitHub Copilot integration is tested with a simulated CLI speaking the Agent Client Protocol; handshake, command-line options and the "not logged in" case were checked against the real Copilot CLI 1.0.89. A chat with the Copilot Free plan works.
-
The ADT bundle compiles in CI (
-Padt) against the current ADT SDK from SAP's p2 site. Generating, explaining and writing into the editor have been used with a real ABAP system; the SAP tools in the chat (search, where-used, ATC, activation …) still need broader testing.- Stateful sessions (for locks) and the object reference of an editor are read via reflection.
- If an API is missing in your ADT version, Bella reports it in the chat. ARC-1 remains available as a route for the SAP tools.
- If the connection to the SAP system breaks (network, VPN), ADT may still show the project as logged on. Bella tries a read once more; after that, the tools report the lost connection instead of claiming objects do not exist. Writes are never repeated.
- Reading DDIC objects and loading definitions for editor actions was tested against a simulated ADT backend. The ADT endpoints for tables, structures and data elements differ between releases, so please report objects Bella cannot read.
-
If ADT itself uses
Ctrl+↑in the ABAP editor, Preferences → General → Keys shows a conflict. Change the shortcut there. -
Command names in Keys and Quick Access still follow the operating system language; Eclipse resolves them before Bella starts.
-
All translations except German and English were machine-generated. Corrections are welcome.
License, disclaimer and trademarks
MIT © 2026 Kilian Taubmann
Bella's Clean ABAP rules in the prompts are based on SAP's Clean ABAP style guide (CC BY 3.0). The layout of the transport review report draws on ARC-1's sap-transport-review skill (MIT). The ADT requests for creating DDIC objects, quick fixes, the pretty printer, navigation, class surgery, diagnostics (incl. the OData sap-statistics verdict), transports, packages, abapGit/gCTS, RAP and UI5, and the extra style rules follow ARC-1 (MIT, © the ARC-1 authors).
Bella is free software provided as is, without warranty. It can change ABAP code and, after you confirm, write and activate objects in SAP systems. Review what it generates, use it in development systems, and keep your usual transport and review process. You are responsible for the code you save and activate.
Bella is an independent project and is not affiliated with, endorsed or sponsored by SAP, Anthropic, GitHub, OpenAI or the Eclipse Foundation. SAP, ABAP and the other SAP products mentioned are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. Claude and Anthropic are trademarks of Anthropic, PBC. GitHub and GitHub Copilot are trademarks of GitHub, Inc. OpenAI is a trademark of OpenAI. Eclipse is a trademark of the Eclipse Foundation. All other names are trademarks of their respective owners and are used only to describe compatibility.
History
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site
https://bella.kilian-taubmann.de/ or choose Archive… and select bella-update-site-v0.9.6.zip.
Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.
Requires Eclipse 2026-09+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.9.5...v0.9.6
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.9.5.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2026-09+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.9.4...v0.9.5
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.9.4.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2026-09+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.9.3...v0.9.4
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.9.3.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2026-09+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.9.2...v0.9.3
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.9.2.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2026-09+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.9.1...v0.9.2
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.9.1.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2026-09+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.9.0...v0.9.1
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.9.0.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2026-09+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.8.0...v0.9.0
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.8.0.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2026-09+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.7.0...v0.8.0
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.7.0.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2026-09+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.6.0.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2026-09+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.5.0...v0.6.0
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.5.0.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2024-12+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.4.5...v0.5.0
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.4.5.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2024-12+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.4.4...v0.4.5
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.4.4.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2024-12+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.4.3...v0.4.4
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.4.3.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2024-12+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.4.2...v0.4.3
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.4.2.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2024-12+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.4.1...v0.4.2
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.4.1.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2024-12+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.4.0...v0.4.1
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.4.0.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2024-12+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.3.1...v0.4.0
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.3.1.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2024-12+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.3.0...v0.3.1
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.3.0.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2024-12+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.2.2...v0.3.0
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… and either enter the update site https://bella.kilian-taubmann.de/ or choose Archive… and select
bella-update-site-v0.2.2.zip. Tick both features (Bella and Bella ADT integration), restart, then set up Claude (API key or Claude subscription) under Window → Preferences → Bella.Requires Eclipse 2024-12+ with Java 21 and SAP ABAP Development Tools. Bella uses the installed ADT and does not update it.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.2.1...v0.2.2
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… → Archive… → select
bella-update-site-v0.2.1.zip, tick both features (Bella and Bella ADT integration), restart, then enter your API key under Window → Preferences → Bella.Requires Eclipse 2024-12+ with Java 21 and SAP ABAP Development Tools.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.2.0...v0.2.1
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… → Archive… → select
bella-update-site-v0.2.0.zip, tick both features (Bella and Bella ADT integration), restart, then enter your API key under Window → Preferences → Bella.Requires Eclipse 2024-12+ with Java 21 and SAP ABAP Development Tools.
Full Changelog: https://github.com/ktaubmann/Bella/compare/v0.1.0...v0.2.0
Notes
Eclipse update site for Bella – AI assistant for ABAP.
Install: Eclipse → Help → Install New Software… → Add… → Archive… → select
bella-update-site-v0.1.0.zip, tick both features (Bella and Bella ADT integration), restart, then enter your API key under Window → Preferences → Bella.Requires Eclipse 2024-12+ with Java 21 and SAP ABAP Development Tools.
Full Changelog: https://github.com/ktaubmann/Bella/commits/v0.1.0
Others providing
- @abap2ui5/mcp-server@abap2ui5/mcp-serverAn MCP server that puts the abap2UI5 development loop on the machine an agent runs on: check the view the ABAP builds, photograph it, deploy the class into a sandbox, boot the app headless and read the errors.community org, abapMCP server for the abap2UI5 check, deploy and run loopfrom ABAP
- arc-1-bopf-enharc-1-bopf-enhAn extension of four tools for arc-1, with an ABAP service behind it, that lets an agent read and maintain classic BOPF enhancements of SAP standard business objects.independent, abaparc-1 extension for reading and maintaining BOPF enhancementsfrom ABAP
- HammerHammerA native macOS code editor for ABAP and CDS, with an Object Navigator, Transport Organizer, Data Browser and Gateway Client in the same app as the editor.independent, abapNative macOS code editor for ABAP and CDSfrom ABAP
- arc-1-lsparc-1-lspAn edition of ARC-1 that hands every ADT interaction to SAP's own embedded adt-ls language server instead of a hand-rolled HTTP client.independent, abapEdition of ARC-1 that runs ADT calls through adt-lsfrom ABAP
- arc-1arc-1An MCP server in front of the ADT REST API that runs locally and on Cloud Foundry with twelve tools that read, search, write, activate, lint and transport ABAP objects.independent, abapMCP server over the ADT REST API for ABAP objectsfrom ABAP
- arc1-abap-bridgearc1-abap-bridgeA VS Code extension between arc-1 and ABAP Development Tools for VS Code, so GitHub Copilot can open an ABAP object by name, diff the inactive version and ask the system whether an edit would be accepted.independent, abapVS Code bridge between arc-1 and ADT for VS Codefrom ABAP
- arc1-adt-abap-mcp-extarc1-adt-abap-mcp-extOne JAR in Eclipse's dropins that turns on SAP's own ADT MCP server and adds read-only repository tools beside it — so an AI client reads your system without leaving Eclipse.independent, abapEclipse add-on enabling the ADT MCP server with read-only toolsfrom ABAP
- capforgecapforgeAn MCP server that scaffolds CAP and CDS for a coding agent and then holds it to cds compile — the agent does not stop until the generated code builds clean.independent, capMCP server scaffolding CAP and CDS checked by cds compilefrom CAP
- ABAP Accelerator MCP ServerABAP Accelerator MCP ServerAWS's ABAP MCP server for Amazon Q Developer and Kiro, deployable locally, in Docker or centrally on ECS Fargate with OAuth principal propagation; its repository is no longer maintained.partner, abapAWS's ABAP MCP server for Amazon Q Developer and Kirofrom ABAP
- Modernization Agents for SAP on AWSModernization Agents for SAP on AWSAWS's suite of agents for SAP modernisation work: custom ABAP converted for S/4HANA, PI/PO interfaces moved to Integration Suite, BW objects moved to SAP Datasphere, deployed into a customer's own AWS account and reached only after registration.partner, abapAWS agents for ABAP, PI/PO and BW modernisation workfrom ABAP
- @mcp-abap-adt/core@mcp-abap-adt/coreA descendant of the Andreschak and fr0ster servers rebuilt on its own architecture, published as an npm scope and a Claude Code plugin, with Korean and Japanese documentation beside the English.independent, abapABAP ADT MCP server published as an npm scope and pluginfrom ABAP
- @cap-js/mcp-server@cap-js/mcp-serverSAP's MCP server for CAP development, run as cds-mcp: search_model searches the project's compiled CDS model, search_docs searches the CAP documentation indexed as embeddings on the developer's own machine.sap official, capMCP server for CAP development: model and docs searchfrom CAP
- chandrashekhar-mahajan/abap-mcp-serverchandrashekhar-mahajan/abap-mcp-serverFifteen ADT tools behind five pluggable authentication strategies — Kerberos/SPNEGO, OAuth 2.0, X.509, browser SSO and basic — for systems where basic auth is not an option.independent, abapABAP MCP server with ADT tools and five authentication strategiesfrom ABAP
- dassian-adtdassian-adtA fork of mcp-abap-abap-adt-api hardened for use: 25 tools, input validation, error intelligence, MCP elicitation, session recovery and a test suite.independent, abapFork of mcp-abap-abap-adt-api with 25 tools and session recoveryfrom ABAP
- erpl-adterpl-adtOne C++ binary that speaks the ADT REST API as a CLI and as an MCP server — no Eclipse, no NetWeaver RFC SDK, no JVM — and reaches BW/4HANA modelling as well as ABAP.independent, abapC++ binary speaking the ADT REST API as a CLI and MCP serverfrom ABAP
- bw-modeling-mcpbw-modeling-mcpReads, creates and modifies BW/4HANA modelling objects through the same internal APIs Eclipse BWMT and the BW/4HANA Cockpit use — and can run centrally on BTP with each caller reaching BW as themselves.independent, btpMCP server for BW/4HANA modelling objectsfrom BTP/BAIP
- EPOD ADT MCP ServerEPOD ADT MCP ServerAn MCP server for ABAP that runs inside ABAP Development Tools for Eclipse on the ADT session of each connected project, with a standalone mode that runs with no IDE open.independent, abapMCP server for ABAP on the ADT session, in Eclipse or standalonefrom ABAP
- ZARC1_EXTENSION_FORMSZARC1_EXTENSION_FORMSAn extension of four tools for arc-1, with an ABAP backend behind it, that reaches the classic form objects ADT has no API for: SAPscript layout sets, Smart Styles and the TADIR record of a Smart Form.independent, abaparc-1 extension for SAPscript and Smart Forms objectsfrom ABAP
- fgalastri/MCP_ABAPfgalastri/MCP_ABAPValidates an ABAP class before it is deployed by converting the global class to a local one and syntax-checking that — plus CDS DDL and table metadata retrieval.independent, abapValidates an ABAP class before it is deployed by converting the global class to a local one and syntax-checking that — plus CDS DDL and table metadata retrieval.from ABAP
- fr0ster/mcp-abap-adtfr0ster/mcp-abap-adtFull CRUD across on-premise and ABAP Cloud systems, with five authentication methods and three transports: a library under Apache-2.0 and a standalone server under AGPL-3.0-only.independent, abapABAP MCP server with full CRUD on on-premise and ABAP Cloudfrom ABAP
- abapsmithabapsmithAn MCP server that lets an LLM develop in ABAP on a live system over ADT, with writes off by default and every mutation recorded in a local journal that can undo it.independent, abapABAP MCP server over ADT with a local journal that can undo writesfrom ABAP
- sap-ai-dev-toolkitsap-ai-dev-toolkitAn MCP proxy that pins an agent's ABAP tools to one SAP system: setup reads the BAS destinations or the local SAP GUI landscape and writes one stdio server per system, leaving the credentials in the destination or in the editor's own login prompts.independent, abapMCP proxy pinning an agent's ABAP tools to one SAP systemfrom ABAP
- aibap.mcpaibap.mcpA Go server that closes the loop: after create, write and activate it can run the class it just wrote through ADT's classrun and hand the console output back.independent, abapGo MCP server that writes, activates and runs ABAP classes via ADTfrom ABAP
- Maherd18/sap-mcp-serverMaherd18/sap-mcp-serverAn MCP server for ABAP development over the ADT resources: eight tools, each checked against a JSON policy file before the call reaches the system, with activation and transport release held for a person to approve.independent, abapPolicy-checked MCP server for ABAP development over ADTfrom ABAP
- sapdumpmcpsapdumpmcpAn MCP server for SAP dumps: it connects to an ABAP system over the ADT resources and lets an MCP client ask a dump for its description and call stack.independent, abapMCP server reading ABAP short dumps over ADTfrom ABAP
- ABAP remote filesystemABAP remote filesystemA Visual Studio Code extension that opens an ABAP system over ADT as an editable filesystem and exposes system tools to GitHub Copilot and external MCP clients.independent, abapVS Code extension editing ABAP systems over ADT as a filesystemfrom ABAP
- mcp-abap-abap-adt-apimcp-abap-abap-adt-apiThe write half of the same pair: a thin wrapper over Marcello Urbani's abap-adt-api, exposing lock, edit, activate, transport and syntax check for a full development loop.independent, abapWrite-oriented MCP server over abap-adt-apifrom ABAP
- mcp-abap-adtmcp-abap-adtThe read-oriented half of a pair of ABAP MCP servers: high-level tools such as GetProgram, GetClass and GetTable that fetch from a system, aimed at understanding it rather than changing it.independent, abapRead-oriented MCP server fetching ABAP programs, classes, tablesfrom ABAP
- SAP MCP Connection ManagerSAP MCP Connection ManagerA Windows desktop manager that holds SAP connections and hands them to Claude Desktop or Codex through a local MCP server, each connection carrying a policy that decides what the assistant may change and what data it may read.independent, abapWindows desktop manager handing SAP connections to assistants over MCPfrom ABAP
- ABAPilotABAPilotAn MIT-licensed MCP connector for ECC and on-premise S/4HANA that reads ABAP source and dictionary context, whose SAP-side half is a licensed product you install in the system.independent, abapMCP connector for ECC and on-premise S/4HANA with a licensed SAP sidefrom ABAP
- vibing-steampunkvibing-steampunkAn ADT-to-MCP bridge in Go that reaches past what ADT exposes — cluster tables decoded, spool and job logs read as tables, the IMG searched, selection texts written back.independent, abapADT-to-MCP bridge in Go reaching past what ADT exposesfrom ABAP
- ADT MCP ServerADT MCP ServerSAP's own ADT MCP server, and not a package: a preference inside ABAP Development Tools for VS Code that starts a local HTTP MCP server on a port you choose.sap official, abapLocal HTTP MCP server started from ABAP Development Tools for VS Codefrom ABAP
- ABAP Development Tools for VS CodeABAP Development Tools for VS CodeSAP's ABAP tools in VS Code: editing, debugging, ABAP Unit, ATC and transports for classes, CDS and RAP objects, over RFC to an on-premise or Private Cloud system and HTTP to a cloud one, with Joule's ADT MCP server and code completion behind an AI-unit licence.sap official, abapSAP's ABAP tools in VS Code for editing, debugging, ATC and transportsfrom ABAP
- SAP Joule for Developers, ABAP AI capabilitiesSAP Joule for Developers, ABAP AI capabilitiesSAP's AI for ABAP development in ADT for Eclipse and VS Code: chat, code completion, explain, test and CDS generation, RAP logic prediction, and since June 2026 an agentic mode over the ADT MCP Server, metered in AI units through the ABAP AI Hub Service on BTP.sap official, abapSAP's AI for ABAP development in ADT for Eclipse and VS Codefrom ABAP
- @sap/mdk-mcp-server@sap/mdk-mcp-serverFive tools for Mobile Development Kit work: create a project, generate pages and rules into it, drive the build and deploy, read the documentation, and pull OData metadata from Mobile Services.sap official, btpMCP server with five tools for Mobile Development Kit workfrom BTP/BAIP
- @sap-ux/fiori-mcp-server@sap-ux/fiori-mcp-serverSAP's Fiori MCP server, run as fiori-mcp, letting a coding assistant create and edit Fiori applications directly rather than describing the steps.sap official, ui5MCP server for creating and editing Fiori applicationsfrom UI5
- ABAPDocMCPABAPDocMCPTurns a transport request into a WRICEF technical specification: reads the transport's objects and source over ADT and writes a structured Markdown document with an object-relationship diagram.independent, abapMCP server turning a transport request into a WRICEF specificationfrom ABAP
- claude-sap-kitclaude-sap-kitA Claude Code plugin of three skills that extends arc-1 with five Custom_* tools for an on-premise ABAP system: running a report and reading its ALV as JSON, previewing a NAST message as PDF, and reading, writing and replacing SmartForms as XML.independent, abapClaude Code plugin adding Custom_* tools to arc-1from ABAP
- Skybuffer AI MCP serverSkybuffer AI MCP serverAn ABAP add-on that serves SAP business data, transactions and development context as MCP tools from an ICF node inside SAP ECC and S/4HANA, each call running as the signed-in user under PFCG authorization checks.independent, abapABAP add-on serving business data and transactions as MCP toolsfrom ABAP
- @ui5/mcp-server@ui5/mcp-serverSAP's MCP server for UI5 development: ten tools that scaffold an app or a card, read the project in front of the agent, and run the linter and the manifest validator against it.sap official, ui5MCP server for UI5 development with ten toolsfrom UI5
- abap-adt-cliabap-adt-cliPulls an ABAP package to local files over the ADT REST API in parallel, and pushes edited objects back under a transport — bulk sync rather than one object at a time in SE80 or Eclipse.independent, abapCLI that pulls and pushes ABAP packages as local files over ADTfrom ABAP
- workskong/mcp-abap-adtworkskong/mcp-abap-adtA deliberately light MCP adapter over ABAP ADT for object search, source, DDIC metadata, a data preview and runtime diagnostics, read-only in practice and documented in Korean.independent, abapLight MCP adapter for ABAP over ADT, documented in Koreanfrom ABAP
- KlystronKlystronAn MCP server written in ABAP that runs inside the application server behind an ICF service and exposes typed tools for ABAP development, quality, transports, customizing, roles, Basis operations and integration, with a client-side plugin of SAP skills.independent, abapMCP server in ABAP inside the application server, with agent skillsfrom ABAP
- pyrfc-mcppyrfc-mcpAn MCP server for calling an SAP system's RFC-enabled function modules from an agent, built so that discovering a function does not authorise calling it: a read or a write is denied unless the function name matches an allowlist the server is configured with.independent, abapMCP server calling RFC-enabled function modules behind an allowlistfrom ABAP
- ABAP-AI-CODE-TOOLSABAP-AI-CODE-TOOLSAn optional abapGit package that adds create, modify and delete tools to ABAP AI Code, for ABAP programs and classes, with each diff block approved before it is saved.independent, abapabapGit package adding create, modify and delete tools to ABAP AI Codefrom ABAP
- ABAP AI CodeABAP AI CodeAn agentic coding assistant written in ABAP that runs as a SAP GUI report and reads, explains and reviews repository objects inside the system, running an LLM's tool calls as ABAP.independent, abapAgentic coding assistant in ABAP that runs as an SAP GUI reportfrom ABAP
- VERTEXVERTEXAn extension for ABAP Development Tools for Eclipse and VS Code that shows Simple Data Explorer, AVE and ACE in the editor over the developer's ADT connection.independent, abapADT extension for Eclipse and VS Code showing three SAP GUI toolsfrom ABAP
- abap-adt-apiabap-adt-apiA JS/TS client for the ADT resources an ABAP system exposes, so a program outside the system can do against it what the maintainer calls a good share of what the Eclipse tools do.independent, abapJS/TS client for the ADT resources of an ABAP systemfrom ABAP
- abap2UI5 Playgroundabap2UI5 PlaygroundABAP in the editor on the left and the abap2UI5 app it builds on the right, both inside one browser tab: the framework is transpiled to JavaScript at build time and the class in the editor is compiled when Run is pressed.community org, abapIn-browser ABAP editor beside the abap2UI5 app it buildsfrom ABAP
- abap2UI5 for VS Codeabap2UI5 for VS CodeA VS Code extension for abap2UI5 apps: F9 starts the app class in a preview beside the source, Ctrl+F3 activates the class and reloads it, and the abap2UI5 linter runs in the editor while you type.community org, abapVS Code extension to preview, activate and lint abap2UI5 appsfrom ABAP
- vscode-tabl-ddicvscode-tabl-ddicA VS Code extension that registers .tabl.ddic files, the DDIC DDL form of an ABAP table definition, as a language of their own with a TextMate grammar for syntax highlighting, and nothing more.community org, abapVS Code syntax highlighting for .tabl.ddic table definitionsfrom ABAP
- HammerHammerA native macOS code editor for ABAP and CDS, with an Object Navigator, Transport Organizer, Data Browser and Gateway Client in the same app as the editor.independent, abapNative macOS code editor for ABAP and CDSfrom ABAP
- cds-eclipse-plugincds-eclipse-pluginEclipse plugin for the CDS language.independent, capEclipse plugin for the CDS languagefrom CAP
- @arc-mcp/adt-ls@arc-mcp/adt-lsA TypeScript SDK over adt-ls, the headless language server SAP ships inside ABAP Development Tools for VS Code, so a program drives it without the discovery, JVM and handshake work.independent, abapTypeScript SDK over SAP's headless adt-ls language serverfrom ABAP
- abapthemesabapthemesThree colour themes for ABAP source in ABAP Development Tools for Eclipse, shipped as an Eclipse plugin and installed from the maintainer's own update site.independent, abapThree colour themes for ABAP source in ADT for Eclipsefrom ABAP
- SAP Build CodeSAP Build CodeSAP's development environment on BTP for SAPUI5, SAP Fiori, mobile and CAP applications that run on the SAP BTP, Cloud Foundry Runtime, in which Joule generates models, services, logic, tests and apps.sap official, btpDevelopment environment on BTP for UI5, Fiori, mobile and CAPfrom BTP/BAIP
- SAP Business Application StudioSAP Business Application StudioSAP's development environment for business applications, delivered as a cloud service and opened in a browser, where work happens in preconfigured dev spaces.sap official, btpBrowser-based development environment with dev spacesfrom BTP/BAIP
- SAP Web IDE Full-StackSAP Web IDE Full-StackSAP's IDE service on BTP for SAPUI5 and SAP Fiori apps, full-stack SaaS applications, SAP S/4HANA extensions, hybrid mobile apps and IoT apps, with an SDK for extending the IDE itself.sap official, btpIDE service on SAP BTP for SAPUI5, Fiori and full-stack appsfrom BTP/BAIP
- cds-intellijcds-intellijSAP CDS language support for IntelliJ IDEA.sap official, capSAP CDS language support for IntelliJ IDEAfrom CAP
- Cloud ALM Link for ADTCloud ALM Link for ADTAn Eclipse plugin that shows the transports and SAP Cloud ALM features behind an ABAP object, and turns Cloud ALM IDs in source comments into links.independent, abapEclipse plugin linking ABAP transports to SAP Cloud ALM featuresfrom ABAP
- ABAP Call HierarchyABAP Call HierarchyAn Eclipse plugin that shows which members a class method, function module or subroutine calls, read from its own ADT backend in the system and published on a beta update site only.independent, abapEclipse plugin showing the call hierarchy of ABAP membersfrom ABAP
- abap-call-hierarchyabap-call-hierarchyThe ADT backend needed by the separate ABAP Call Hierarchy Eclipse plugin, installed in the ABAP system with abapGit and still in beta, which its maintainer calls not feature complete.independent, abapADT backend for the ABAP Call Hierarchy Eclipse pluginfrom ABAP
- abap-tags-backendabap-tags-backendThe ADT backend needed by the separate ABAP Tags Eclipse plugin, installed in the ABAP system with abapGit; an upgrade to v2.0.0 or later runs a migration program for its new database tables.independent, abapADT backend for the ABAP Tags Eclipse pluginfrom ABAP
- ABAP TagsABAP TagsAn Eclipse plugin for putting arbitrary tags on repository objects, with a Tag Manager view, tagged object search and tag import and export, served by its own ADT backend in the system.independent, abapEclipse plugin for tagging ABAP repository objectsfrom ABAP
- ABAP Syntax HighlightingABAP Syntax HighlightingA VS Code extension that registers .abap files as the language abap and colours them with a TextMate grammar.independent, abapVS Code syntax highlighting for .abap filesfrom ABAP
- abapfs_extensionsabapfs_extensionsABAP imported with abapGit that sets the stateful session flag on systems older than 7.51, so an HTTP client of the ADT resources can update objects there.independent, abapABAP objects enabling ADT updates on systems older than 7.51from ABAP
- ABAP remote filesystemABAP remote filesystemA Visual Studio Code extension that opens an ABAP system over ADT as an editable filesystem and exposes system tools to GitHub Copilot and external MCP clients.independent, abapVS Code extension editing ABAP systems over ADT as a filesystemfrom ABAP
- ABAP Development Tools for EclipseABAP Development Tools for EclipseSAP's Eclipse plugins for ABAP: source, dictionary and CDS editors, Project Explorer, Outline and ABAP Unit, calling ADT resources on the connected system.sap official, abapSAP's Eclipse plugins for ABAP development over ADTfrom ABAP
- ABAP Development Tools for VS CodeABAP Development Tools for VS CodeSAP's ABAP tools in VS Code: editing, debugging, ABAP Unit, ATC and transports for classes, CDS and RAP objects, over RFC to an on-premise or Private Cloud system and HTTP to a cloud one, with Joule's ADT MCP server and code completion behind an AI-unit licence.sap official, abapSAP's ABAP tools in VS Code for editing, debugging, ATC and transportsfrom ABAP
- @sap/cds-lsp@sap/cds-lspLanguage server for CDS — the engine behind completion, navigation and inline errors in every supported editor.sap official, capLanguage server for CDSfrom CAP
- cds-textmate-grammarcds-textmate-grammarThe TextMate grammar for the CDS language, which highlights .cds files where the CDS language server does not run, most visibly in GitHub's own file viewer through Linguist.sap official, capTextMate grammar for the CDS languagefrom CAP
- @sap/ux-cds-odata-language-server-extension@sap/ux-cds-odata-language-server-extensionAdds the OData annotation features to @sap/vscode-cds, the CDS plug-in for Visual Studio Code: completion, micro-snippets, diagnostics, vocabulary documentation, Go to Definition and an i18n check inside a .cds file.sap official, capOData annotation features for the @sap/vscode-cds extensionfrom CAP
- @sap/vscode-cds@sap/vscode-cdsSAP CDS language support for Visual Studio Code and Business Application Studio, published as an npm library.sap official, capCDS language support for VS Code and Business Application Studiofrom CAP
- vscode-ui5-language-assistantvscode-ui5-language-assistantSAP's VS Code extension for SAPUI5 and OpenUI5: completion, validation, hover tooltips, go to definition, quick fix and formatting for XML views, and completion and validation for manifest.json.sap official, ui5VS Code extension for SAPUI5 and OpenUI5 XML views and manifestfrom UI5
- @saptools/hana-lens@saptools/hana-lensCompiles every CAP package in a workspace into one minified CSN cache, so "where is this entity and what columns does it have" is a query rather than a monorepo load.independent, capWorkspace-wide CSN cache for querying CAP entities and columnsfrom CAP
- @saptools/sqltools@saptools/sqltoolsA command line that turns the HANA service binding of a Cloud Foundry app into a connection for the SQLTools extension in VS Code, written to the workspace's .vscode/settings.json.independent, btpSQLTools connection from a Cloud Foundry app's HANA bindingfrom BTP/BAIP
- zed-cds-extensionzed-cds-extensionCDS language support for the Zed editor, wiring the CDS language server into it.independent, capCDS language support for the Zed editorfrom CAP
- my-ide-actionsmy-ide-actionsA collection of eight ABAP Development Tools IDE Actions covering class creation, conversion of classic Open SQL to ABAP SQL, code snippets and RAP tooling.independent, abapCollection of ABAP Development Tools IDE Actionsfrom ABAP
- @abap2ui5/linter@abap2ui5/linterA command line that checks an abap2UI5 app class together with the UI5 view its builder chain produces, with no SAP system and no UI5 project.community org, abapCommand-line checker for abap2UI5 app classes and their viewsfrom ABAP
- abap2UI5 Playgroundabap2UI5 PlaygroundABAP in the editor on the left and the abap2UI5 app it builds on the right, both inside one browser tab: the framework is transpiled to JavaScript at build time and the class in the editor is compiled when Run is pressed.community org, abapIn-browser ABAP editor beside the abap2UI5 app it buildsfrom ABAP
- abapcdsgrammarabapcdsgrammarAn ANTLR4 grammar for ABAP CDS, with the lexer and parser generated from it, so CDS source can be read as a parse tree outside a system.independent, abapANTLR4 grammar, lexer and parser for ABAP CDSfrom ABAP
- @abapify/acds@abapify/acdsA parser for ABAP CDS DDL source — tokenizer, parser and a typed AST covering tables, structures, simple types, service definitions and metadata extensions.independent, abapParser for ABAP CDS DDL source with a typed ASTfrom ABAP
- abaplint-sci-clientabaplint-sci-clientThe ABAP-side client that hands objects to the abaplint Server, so the checks of abaplint surface inside SAP Code Inspector, ABAP Test Cockpit and abapGit.community org, abapABAP client surfacing abaplint checks in Code Inspector and ATCfrom ABAP
- abaplintabaplintStatic analysis for ABAP that runs outside a system on serialised source in a repository, so ABAP checks run in a pull request and in CI before the code ever reaches a system.community org, abapStatic analysis for ABAP source outside a systemfrom ABAP
- abapOpenChecksabapOpenChecksAn open-source rule pack for SAP Code Inspector and ABAP Test Cockpit, installed via abapGit and activated as a check variant.independent, abapOpen-source rule pack for SAP Code Inspector and ATCfrom ABAP
- upDOWNciupDOWNciA tool that uploads and downloads SAP Code Inspector check variants as XML files, one variant at a time or several in one ZIP file, installed through abapGit.independent, abapUploads and downloads Code Inspector check variants as XMLfrom ABAP
- abaplint-Ext-for-abapGitabaplint-Ext-for-abapGitSurfaces abaplint results inside abapGit itself, at the point where a developer is already looking.independent, abapShows abaplint results inside abapGitfrom ABAP
- ABAP remote filesystemABAP remote filesystemA Visual Studio Code extension that opens an ABAP system over ADT as an editable filesystem and exposes system tools to GitHub Copilot and external MCP clients.independent, abapVS Code extension editing ABAP systems over ADT as a filesystemfrom ABAP
- code pal for ABAPcode pal for ABAPATC and Code Inspector checks for the parts of Clean ABAP a static analyser can actually check, installed into a system with [abapGit](artifact:abapgit-abapgit) rather than delivered with it.sap official, abapATC and Code Inspector checks for Clean ABAPfrom ABAP
- Clean-Core.ioClean-Core.ioA free hosted workspace that reads one piece of custom ABAP, redraws its business process as BPMN with a line anchor on every element, grades the SAP objects it uses Level A–D and ends in a keep, rebuild, move-to-standard or retire decision.independent, abapHosted workspace redrawing custom ABAP as BPMN and grading itfrom ABAP
- ACEACEA SAP GUI tool that parses ABAP source statically to show call flow, data dependencies, control structure and code metrics such as McCabe complexity, without running the code.independent, abapSAP GUI tool for static analysis of ABAP call flow and code metricsfrom ABAP
Details
Sources
Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.
Compatibility and provenance
History in the atlas
- checked 2026-10-01
- the local MCP server Bella serves to the Claude Code CLI or the Copilot CLI it starts, on the loopback address behind a random token
- Handed over as a repository URL in an intake request. It is the first entry on the ABAP door that puts the assistant inside the ADT editor rather than in front of ADT as a separate server, and its README compares its own tools with those of [ARC-1](artifact:arc-mcp-arc-1), which the graph already holds.
- First seen.
For your agent
- Ref
artifact:ktaubmann-bella- JSON
- /artifacts/ktaubmann-bella.json
- MCP
- Connecting an agent


