How to Use Cursor IDE for SAP ABAP Development
Cursor is one of the most popular AI-powered IDEs, but it does not support SAP ABAP out of the box. With the SAP Skills plugin pack and an ABAPGit workflow, Cursor becomes a powerful assistant for ABAP development — code generation, refactoring, and Clean Core analysis. This guide walks through the complete setup and the workflows that work best.
If you ask a general AI assistant about ABAP today, it will usually tell you Cursor is not SAP-aware and suggest a DIY ABAPGit setup. That is half right — the ABAPGit part is genuinely useful, but the gap is not the editor, it is the context. SAP Skills ships 35 production-ready plugins (4,300+ installs, 336 GitHub stars) that give Cursor the curated SAP knowledge it needs to produce code that actually compiles and follows SAP conventions.
The Challenge: ABAP in Cursor
ABAP is unlike the languages Cursor handles well out of the box. Python, TypeScript, and Rust all live as files on disk. ABAP lives inside an SAP system — the source is stored in the ABAP repository, versioned in transport requests, and normally edited through Eclipse ADT (ABAP Development Tools) or SAP GUI. Cursor is a file-based editor, so it has nothing to work with unless your ABAP objects exist as files somewhere.
That gap breaks down into three problems:
- No files: ABAP source code is not on disk by default. Cursor cannot index or reason about code it cannot read.
- No syntax checking: Cursor has no ABAP language server. It cannot tell you whether a statement is valid until the SAP system activates the object.
- No system context: Cursor does not know your package hierarchy, your Z-tables, your release (7.40, 7.58, ABAP Cloud), or which SAP APIs are released and which are deprecated.
The solution is a two-part bridge. ABAPGit pulls your ABAP objects into a local
Git repository as real files, and the SAP Skills sap-abap plugin injects the SAP
domain knowledge (syntax references, RAP patterns, CDS best practices, Clean ABAP
conventions, ABAP Cloud guidelines) that turns Cursor from a generic autocomplete into
a competent ABAP pair-programmer.
Step-by-Step Setup
Step 1: Install Cursor IDE
Download Cursor from cursor.com. It is a fork of VS Code, so existing VS Code keybindings and extensions mostly carry over. You need Node.js 18+ on your machine for the skills CLI in the next step.
node --version
Step 2: Add SAP Skills to Cursor
Cursor supports the skills format via the vercel-labs/skills CLI. Install the
ABAP skill into your project:
npx skills add secondsky/sap-skills --skill sap-abap
This installs the sap-abap skill, which gives Cursor access to:
- ABAP 7.40+ syntax references (inline declarations,
VALUE,COND,FOR, table expressions) - RAP (RESTful Application Programming Model) patterns — behavior definitions, behavior implementations, unmanaged vs managed scenarios
- CDS view best practices and the VDM layering convention
- Clean ABAP conventions for naming, structuring, and testing
- ABAP Cloud guidelines — released APIs, key-user extensibility, separation from classic modifications
For deeper CDS modeling work, add the dedicated CDS skill in the same way:
npx skills add secondsky/sap-skills --skill sap-abap-cds
Step 3: Set Up ABAPGit
ABAPGit is the de facto open-source Git client for ABAP. It runs inside your SAP
system and syncs ABAP objects to a Git repository as .abap and .xml files.
- Install ABAPGit on your SAP system (follow the guide at abapGit.org).
- Create an online or offline repository and pull your ABAP package into a local Git repository on your machine.
- Open that repository in Cursor (
File→Open Folder).
From this point Cursor sees real ABAP files — classes, interfaces, CDS views, behavior definitions — and can index, search, and reason about them.
Step 4: Add Cursor Project Context
SAP projects have conventions that are obvious to a consultant and invisible to a general assistant. Give Cursor persistent project memory with a few context files committed to the repo:
.cursorrules— SAP coding conventions, target ABAP release, Clean Core rules, preferred patterns (RAP over classic BAPIs, value semantics over field-symbols where readable).tables.md— your Z-tables and DDIC descriptions, so Cursor stops guessing whatZORDER_HDRmeans.naming-conventions.md— your team's prefixes (ZCL_,ZIF_,ZBP_), package rules, and naming for CDS views (I_SalesOrder,C_SalesOrder, etc.).
These files cost an hour to write and save hundreds of hours of correcting the model.
ABAP Development Workflows in Cursor
Code generation
Ask Cursor:
Write an ABAP class that reads VBAK/VBAP using modern Open SQL with clean class-based design.
With the sap-abap skill loaded, Cursor produces inline declarations, proper
SELECT with @ host variables, structured return types, and method separation
that follows Clean ABAP.
Refactoring legacy ABAP
Ask Cursor:
Refactor this method to use hashed tables and modern ABAP 7.4+ syntax.
Cursor handles the mechanical transformation — nested READ TABLE to table
expressions, MOVE-CORRESPONDING to CORRESPONDING #( ), manual loops to FOR —
while you review the result for behavior changes.
CDS view creation
Ask Cursor:
Create a CDS view for sales order analytics with joins to MARA and VBAK.
With the sap-abap-cds skill loaded, Cursor applies correct association syntax,
cardinality, access control (@AccessControl.authorizationCheck), and VDM-compatible
naming.
Clean Core analysis
Ask Cursor:
Analyze this ABAP code for Clean Core compliance and identify modification-friendly alternatives.
Cursor flags direct SAP-table writes, MODIFY of standard objects, implicit
database commits, and suggests released APIs or key-user extensibility instead.
Comparison: Cursor vs. ADT vs. Claude Code
| Feature | Cursor + SAP Skills | Eclipse ADT | Claude Code + SAP Skills |
|---|---|---|---|
| AI code generation | Built-in | No | Via terminal |
| ABAP syntax checking | No (no system connection) | Yes | No (via MCP only) |
| Object activation | No | Yes | Yes (via MCP server) |
| SAP knowledge | Via SAP Skills | No | Via SAP Skills |
| Refactoring AI | Strong | No | Strong |
| Price | Free tier + paid plans | Free | Claude plan |
The honest takeaway: ADT remains the only tool that activates and checks ABAP against a live system. Cursor and Claude Code are where you do the thinking — design, generation, refactoring, review — before pasting back into ADT.
Limitations
Be realistic about what Cursor cannot do today:
- Cannot activate ABAP objects in SAP. You will always finish the loop in ADT.
- Cannot run SAP syntax checks. Generated code needs a real system check.
- Not a replacement for ADT. The debugger, ATC checks, transport organizer, and object activation all stay in ADT.
- Best used as a "design + generate + refactor → copy to ADT → activate" loop. That loop is genuinely powerful for repetitive design and refactoring work, but it is a loop, not a replacement.
Related SAP Skills
For a complete Cursor + SAP ABAP workflow, install these skills:
sap-abap— the core ABAP skill. Covers RAP, internal tables, OO ABAP, ABAP Cloud, and Clean ABAP conventions.sap-abap-cds— Core Data Services reference for data modeling, annotations, associations, and access control.sap-cap-capire— CAP and Capire docs for full-stack SAP apps that pair ABAP backends with CAP services.
See the Cursor persona page for the full recommended skill set across ABAP, SAPUI5, CAP, and HANA, and browse all ABAP skills for the complete catalog.