Architecture
abapctl is a thin, deterministic layer over SAP's ADT REST API. It has no opinion about what you should do. It does exactly what you ask, captures the result, and returns structured output.
Connections & sessions
A connection tells abapctl which SAP system to talk to and how to authenticate. A session lets abapctl reuse one login across many calls.
Lock → write → activate
Every write to SAP follows the same lifecycle. Understanding it is the core mental model for all of abapctl's write commands: source put, source push, the create family, clean-core apply, workspace push, and more.
Capabilities & gating
Not every SAP system exposes the same ADT operations. Endpoints vary by release, by stack (ECC vs S/4HANA), and by what is installed and authorized. abapctl adapts to this at runtime rather than assuming a fixed feature set.
JSON & safety
abapctl was built with agentic workflows in mind. That shaped its output contract: every command emits structured JSON, carries a safety annotation, and returns a meaningful exit code, so a script or an AI agent can plan, route, and react without screen scraping.