Rank
70
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
Comprehensive SAP GUI automation for end-user task automation including connection/session management, transaction execution, GUI element interaction, table/tree operations, and script recording assistance. Use when working with SAP GUI for Windows to automate repetitive tasks, extract data, or navigate transactions programmatically. --- name: sap-gui-scripting description: Comprehensive SAP GUI automation for end-user task automation including connection/session management, transaction execution, GUI element interaction, table/tree operations, and script recording assistance. Use when working with SAP GUI for Windows to automate repetitive tasks, extract data, or navigate transactions programmatically. --- SAP GUI Scripting Skill Automate SAP GU Capability contract not published. No trust telemetry is available yet. 1 GitHub stars reported by the source. Last updated 4/15/2026.
Freshness
Last checked 4/15/2026
Best For
sap-gui-scripting is best for general automation workflows where OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB OPENCLEW, runtime-metrics, public facts pack
Comprehensive SAP GUI automation for end-user task automation including connection/session management, transaction execution, GUI element interaction, table/tree operations, and script recording assistance. Use when working with SAP GUI for Windows to automate repetitive tasks, extract data, or navigate transactions programmatically. --- name: sap-gui-scripting description: Comprehensive SAP GUI automation for end-user task automation including connection/session management, transaction execution, GUI element interaction, table/tree operations, and script recording assistance. Use when working with SAP GUI for Windows to automate repetitive tasks, extract data, or navigate transactions programmatically. --- SAP GUI Scripting Skill Automate SAP GU
Public facts
5
Change events
1
Artifacts
0
Freshness
Apr 15, 2026
Capability contract not published. No trust telemetry is available yet. 1 GitHub stars reported by the source. Last updated 4/15/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Apr 15, 2026
Vendor
1am2syman
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. 1 GitHub stars reported by the source. Last updated 4/15/2026.
Setup snapshot
git clone https://github.com/1am2syman/sap-gui-scripting-skill.gitSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
1am2syman
Protocol compatibility
OpenClaw
Adoption signal
1 GitHub stars
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
Parameters
python
from win32com.client import GetObject
import time
# Connect using GetObject (CORRECT)
SapGuiAuto = GetObject("SAPGUI")
application = SapGuiAuto.GetScriptingEngine
connection = application.OpenConnection("SYSTEM_NAME", True)
session = connection.Children(0)
# Wait for login screen
time.sleep(3)
# Login
session.FindById("wnd[0]/usr/txtRSYST-BNAME").Text = "USERNAME"
session.FindById("wnd[0]/usr/pwdRSYST-BCODE").Text = "PASSWORD"
session.FindById("wnd[0]").SendVKey(0)
# Handle multiple logon popup (if another session exists)
try:
if session.FindById("wnd[1]").Name != "":
session.FindById("wnd[1]/tbar[0]/btn[1]").Press() # End other sessions
except:
pass
# Execute transaction
session.FindById("wnd[0]/tbar[0]/okcd").Text = "/nME23N"
session.FindById("wnd[0]").SendVKey(0)python
from scripts.connection.sap_connection import (
connect_by_system_name, login, handle_multiple_logon
)
# Connect and login
session = connect_by_system_name("PRD")
login(session, "USERNAME", "PASSWORD")
handle_multiple_logon(session)
# Execute transaction
session.FindById("wnd[0]/tbar[0]/okcd").Text = "/nME23N"
session.FindById("wnd[0]").SendVKey(0)python
from scripts.connection.sap_connection import (
SAPConnection, connect, connect_by_system_name,
login, handle_multiple_logon, export_to_sap_dialog
)
# Method 1: Simple connection (recommended)
session = connect_by_system_name("PRD")
login(session, "USERNAME", "PASSWORD")
handle_multiple_logon(session)
# Method 2: Using class with auto-login
conn = connect("PRD", "100", "USER123", "password123")
session = conn.session
# Method 3: Using class for more control
sap_conn = SAPConnection()
session = sap_conn.connect_by_name("PRD")
sap_conn.login("100", "USER123", "password123")
sap_conn.handle_multiple_logon()
# Method 4: From environment variables
# Set SAP_SYSTEM, SAP_CLIENT, SAP_USER, SAP_PASSWORD
conn = connect_from_env()
# Get session info
info = sap_conn.get_session_info()
print(f"User: {info['user']}, Transaction: {info['transaction']}")python
# Always handle after login handle_multiple_logon(session) # Or use class method sap_conn.handle_multiple_logon()
python
from scripts.connection.sap_connection import export_to_sap_dialog # After running a report with ALV grid export_to_sap_dialog(session, "my_report", r"C:\Output", open_excel=False)
python
from scripts.connection.session_manager import create_session_manager mgr = create_session_manager(session) # Create new session new_session = mgr.create_session() # Get all sessions sessions = mgr.get_all_sessions() # Switch to session session = mgr.switch_to_session(0) # Close session mgr.close_session()
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB OPENCLEW
Editorial quality
ready
Comprehensive SAP GUI automation for end-user task automation including connection/session management, transaction execution, GUI element interaction, table/tree operations, and script recording assistance. Use when working with SAP GUI for Windows to automate repetitive tasks, extract data, or navigate transactions programmatically. --- name: sap-gui-scripting description: Comprehensive SAP GUI automation for end-user task automation including connection/session management, transaction execution, GUI element interaction, table/tree operations, and script recording assistance. Use when working with SAP GUI for Windows to automate repetitive tasks, extract data, or navigate transactions programmatically. --- SAP GUI Scripting Skill Automate SAP GU
Automate SAP GUI tasks using Python or VBScript. This skill provides scripts, templates, and reference documentation for all levels of SAP GUI scripting.
IMPORTANT: Use GetObject("SAPGUI") pattern, NOT Dispatch("SapGui.Scripting.1") which fails in many environments.
from win32com.client import GetObject
import time
# Connect using GetObject (CORRECT)
SapGuiAuto = GetObject("SAPGUI")
application = SapGuiAuto.GetScriptingEngine
connection = application.OpenConnection("SYSTEM_NAME", True)
session = connection.Children(0)
# Wait for login screen
time.sleep(3)
# Login
session.FindById("wnd[0]/usr/txtRSYST-BNAME").Text = "USERNAME"
session.FindById("wnd[0]/usr/pwdRSYST-BCODE").Text = "PASSWORD"
session.FindById("wnd[0]").SendVKey(0)
# Handle multiple logon popup (if another session exists)
try:
if session.FindById("wnd[1]").Name != "":
session.FindById("wnd[1]/tbar[0]/btn[1]").Press() # End other sessions
except:
pass
# Execute transaction
session.FindById("wnd[0]/tbar[0]/okcd").Text = "/nME23N"
session.FindById("wnd[0]").SendVKey(0)
from scripts.connection.sap_connection import (
connect_by_system_name, login, handle_multiple_logon
)
# Connect and login
session = connect_by_system_name("PRD")
login(session, "USERNAME", "PASSWORD")
handle_multiple_logon(session)
# Execute transaction
session.FindById("wnd[0]/tbar[0]/okcd").Text = "/nME23N"
session.FindById("wnd[0]").SendVKey(0)
File: scripts/connection/sap_connection.py
from scripts.connection.sap_connection import (
SAPConnection, connect, connect_by_system_name,
login, handle_multiple_logon, export_to_sap_dialog
)
# Method 1: Simple connection (recommended)
session = connect_by_system_name("PRD")
login(session, "USERNAME", "PASSWORD")
handle_multiple_logon(session)
# Method 2: Using class with auto-login
conn = connect("PRD", "100", "USER123", "password123")
session = conn.session
# Method 3: Using class for more control
sap_conn = SAPConnection()
session = sap_conn.connect_by_name("PRD")
sap_conn.login("100", "USER123", "password123")
sap_conn.handle_multiple_logon()
# Method 4: From environment variables
# Set SAP_SYSTEM, SAP_CLIENT, SAP_USER, SAP_PASSWORD
conn = connect_from_env()
# Get session info
info = sap_conn.get_session_info()
print(f"User: {info['user']}, Transaction: {info['transaction']}")
When multiple SAP sessions exist for the same user, SAP shows a popup:
# Always handle after login
handle_multiple_logon(session)
# Or use class method
sap_conn.handle_multiple_logon()
from scripts.connection.sap_connection import export_to_sap_dialog
# After running a report with ALV grid
export_to_sap_dialog(session, "my_report", r"C:\Output", open_excel=False)
VBScript Template: scripts/connection/sap_connection.vbs
File: scripts/connection/session_manager.py
from scripts.connection.session_manager import create_session_manager
mgr = create_session_manager(session)
# Create new session
new_session = mgr.create_session()
# Get all sessions
sessions = mgr.get_all_sessions()
# Switch to session
session = mgr.switch_to_session(0)
# Close session
mgr.close_session()
File: scripts/elements/element_finder.py
from scripts.elements.element_finder import create_element_finder
finder = create_element_finder(session)
# By ID
element = finder.find_by_id("wnd[0]/usr/txtRSYST-BNAME")
# By name
element = finder.find_by_name("RSYST-BNAME")
# All input fields
input_fields = finder.find_input_fields()
# All buttons
buttons = finder.find_buttons()
# Find by text
element = finder.find_by_text("Save")
# Print element tree (debugging)
finder.print_element_tree()
File: scripts/elements/input_handler.py
from scripts.elements.input_handler import create_input_handler
input_h = create_input_handler(session)
# Set text
input_h.set_text("wnd[0]/usr/ctxtEBELN", "4500012345")
# Get text
value = input_h.get_text("wnd[0]/usr/ctxtEBELN")
# Clear field
input_h.clear_field("wnd[0]/usr/ctxtEBELN")
# Focus field
input_h.focus_field("wnd[0]/usr/ctxtEBELN")
# Send keys
input_h.send_enter()
input_h.send_function_key(4) # F4 for search help
File: scripts/elements/click_handler.py
from scripts.elements.click_handler import create_click_handler
click_h = create_click_handler(session)
# Press button
click_h.press_button("wnd[0]/tbar[1]/btn[0]")
# Check if enabled
if click_h.is_button_enabled("wnd[0]/tbar[1]/btn[0]"):
click_h.press_button("wnd[0]/tbar[1]/btn[0]")
# Checkboxes
from scripts.elements.click_handler import create_checkbox_handler
checkbox = create_checkbox_handler(session)
checkbox.select("wnd[0]/usr/chkEKKO-LEWRT")
is_checked = checkbox.is_selected("wnd[0]/usr/chkEKKO-LEWRT")
File: scripts/utils/transaction_manager.py
from scripts.utils.transaction_manager import create_transaction_manager
txn = create_transaction_manager(session)
# Execute transaction
txn.execute("ME23N")
# With parameters
txn.execute("ME23N", {
"wnd[0]/usr/ctxtEBELN": "4500012345"
})
# Navigation
txn.navigate_back() # F3
txn.navigate_exit() # Shift+F3
txn.refresh() # F5
txn.cancel() # F12
# Get current transaction
current = txn.get_current_transaction()
Files: scripts/tables/table_reader.py
from scripts.tables.table_reader import (
create_table_reader, create_table_writer, create_table_exporter
)
reader = create_table_reader(session)
writer = create_table_writer(session)
exporter = create_table_exporter(session)
# Read table control
data = reader.read_table_control("wnd[0]/usr/tblSAPLMEREQ_TC_TOTAL")
# Read ALV grid
data, columns = reader.read_alv_grid("wnd[0]/usr/cntlGRID1/shellcont/shell")
# Get row count
row_count = reader.get_row_count("wnd[0]/usr/tblTABLE")
# Find row by value
row_idx = reader.find_row_by_value("wnd[0]/usr/tblTABLE", 0, "4500012345")
# Write to table
writer.set_cell("wnd[0]/usr/tblTABLE", 0, 1, "NEW_VALUE")
# Export to CSV
exporter.to_csv("wnd[0]/usr/tblTABLE", "data.csv")
# Export to Excel
exporter.to_excel("wnd[0]/usr/tblTABLE", "data.xlsx")
Files: scripts/trees/tree_navigator.py
from scripts.trees.tree_navigator import create_tree_navigator, create_tree_searcher
navigator = create_tree_navigator(session)
searcher = create_tree_searcher(session)
# Expand/collapse nodes
navigator.expand_node("wnd[0]/usr/treeTREE", "NODE_KEY")
navigator.collapse_node("wnd[0]/usr/treeTREE", "NODE_KEY")
# Select node
navigator.select_node("wnd[0]/usr/treeTREE", "NODE_KEY")
# Double-click
navigator.double_click_node("wnd[0]/usr/treeTREE", "NODE_KEY")
# Get selected
selected = navigator.get_selected_node("wnd[0]/usr/treeTREE")
# Find by text
node_key = searcher.find_by_text("wnd[0]/usr/treeTREE", "Node Text")
# Expand path
searcher.expand_path("wnd[0]/usr/treeTREE", "Root/Child/Grandchild")
File: scripts/utils/wait_strategies.py
from scripts.utils.wait_strategies import create_wait_strategies
wait = create_wait_strategies(session)
# Wait for element
element = wait.wait_for_element("wnd[0]/usr/ctxtEBELN", timeout=30)
# Wait for enabled
element = wait.wait_for_element_enabled("wnd[0]/tbar[1]/btn[0]", timeout=10)
# Wait for status bar clear
status = wait.wait_for_status_bar_clear(timeout=30)
# Wait for busy to clear
wait.wait_for_busy_clear(timeout=60)
# Wait and click
wait.wait_and_click("wnd[0]/tbar[1]/btn[0]", timeout=30)
# Exponential backoff
result = wait.exponential_backoff_wait(
lambda: session.FindById("wnd[0]/usr/ctxtEBELN").Text,
max_retries=5
)
File: scripts/utils/error_handler.py
from scripts.utils.error_handler import create_error_handler, create_retry_handler
error_h = create_error_handler(session)
retry_h = create_retry_handler(session)
# Check status bar
msg = error_h.get_status_bar_message()
if msg['type'] == 'E':
print(f"Error: {msg['text']}")
# Raise on error
error_h.raise_on_error("Custom error message")
# Handle popup
result = error_h.handle_popup({'YES': 'btnYES'})
# Press OK on errors
error_h.press_ok_on_errors()
# Retry with backoff
result = retry_h.retry_operation(
lambda: session.FindById("wnd[0]/usr/ctxtEBELN").Text,
max_retries=3,
delay=2
)
# Retry on error
result = retry_h.retry_on_error(
lambda: txn.execute("ME23N"),
error_codes=['E', 'A']
)
File: scripts/advanced/batch_processor.py
from scripts.advanced.batch_processor import create_batch_processor
batch = create_batch_processor(session)
# Run transaction sequence
results = batch.run_transaction_sequence(
transactions=["ME23N", "ME22N", "ME21N"],
continue_on_error=True
)
# Process items
items = ["450001", "450002", "450003"]
results = batch.process_items(
items,
lambda item: session.FindById("wnd[0]/usr/ctxtEBELN").Text,
batch_size=10
)
# Get summary
summary = batch.get_summary()
print(f"Success: {summary['successful']}, Failed: {summary['failed']}")
File: scripts/advanced/background_runner.py
from scripts.advanced.background_runner import (
create_background_runner, connect_invisible
)
# Method 1: Hide existing SAP window
runner = create_background_runner()
runner.hide_sap_window()
# ... run operations ...
runner.show_sap_window()
# Method 2: Connect invisibly
sap = connect_invisible("PRD")
# ... run operations ...
sap.close()
# Interactive mode (temporary visibility)
with sap.interactive_mode():
# Window is visible here for user interaction
pass
# Window hidden again
File: scripts/advanced/screenshot_capture.py
from scripts.advanced.screenshot_capture import create_screenshot_capture
capture = create_screenshot_capture(session)
# Capture screenshot
filename = capture.capture_window()
# Capture on error (context manager)
with capture.capture_on_error("ME23N_operation"):
txn.execute("ME23N")
# Capture element tree
capture.capture_element_tree("element_tree.txt")
# Capture status bar
capture.capture_status_bar("status_bar.txt")
# Capture session info
capture.capture_session_info("session_info.txt")
See: references/object_model.md
Complete hierarchy: GuiApplication → GuiConnection → GuiSession → GuiWindow → GuiUserArea → GuiShell → GUI elements
See: references/element_types.md
40+ element types: GuiTextField, GuiButton, GuiCheckBox, GuiComboBox, GuiTableControl, GuiTree, GuiGridView, etc.
See: references/recording_guide.md
/nSCR or right-click → Script RecordingSee: references/vbscript_reference.md
Native SAP GUI scripting syntax for direct playback
See: references/error_codes.md
Common SAP errors and handling patterns
See: references/best_practices.md
Performance, reliability, security, and code organization patterns
assets/sample_scripts/login_to_sap.py
assets/sample_scripts/run_transaction.py
assets/sample_scripts/extract_alv_report.py
scripts/examples/va05_export.vbs - Complete working example with connection, login, multiple logon handling, and export
scripts/connection/sap_connection.vbs - Connection template with login and multiple logon handlingscripts/connection/session_manager.vbs - Session managementscripts/elements/element_finder.vbs - Element operationsscripts/tables/table_reader.vbs - Table operationsscripts/trees/tree_navigator.vbs - Tree operationsscripts/utils/wait_strategies.vbs - Wait and delay functionsscripts/examples/va05_export.vbs - Complete VA05 export examplepip install pywin32pip install openpyxl| Element | ID Pattern |
|---------|-----------|
| Main window | wnd[0] |
| Popup window | wnd[1] |
| User area | wnd[0]/usr |
| OK code field | wnd[0]/tbar[0]/okcd |
| Standard toolbar | wnd[0]/tbar[0] |
| Application toolbar | wnd[0]/tbar[1] |
| Menu bar | wnd[0]/mbar |
| Status bar | wnd[0]/sbar |
| ALV Grid | wnd[0]/usr/cntlGRID1/shellcont/shell |
"Invalid class string" or connection fails:
GetObject("SAPGUI") pattern, NOT Dispatch("SapGui.Scripting.1")"Element not found" error:
/nSCR) to get correct element IDstime.sleep(2)Multiple logon popup blocks script:
handle_multiple_logon(session) after loginScripting not enabled:
sapgui/user_scripting = TRUE in RZ11"Object variable not set":
time.sleep(3) after opening connectionExport dialog issues:
Performance issues:
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/1am2syman-sap-gui-scripting-skill/snapshot"
curl -s "https://xpersona.co/api/v1/agents/1am2syman-sap-gui-scripting-skill/contract"
curl -s "https://xpersona.co/api/v1/agents/1am2syman-sap-gui-scripting-skill/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
70
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
Traction
No public download signal
Freshness
Updated 2d ago
Rank
70
AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs
Traction
No public download signal
Freshness
Updated 5d ago
Rank
70
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
Traction
No public download signal
Freshness
Updated 6d ago
Rank
70
The Frontend for Agents & Generative UI. React + Angular
Traction
No public download signal
Freshness
Updated 23d ago
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/1am2syman-sap-gui-scripting-skill/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/1am2syman-sap-gui-scripting-skill/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/1am2syman-sap-gui-scripting-skill/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/1am2syman-sap-gui-scripting-skill/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/1am2syman-sap-gui-scripting-skill/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/1am2syman-sap-gui-scripting-skill/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_OPENCLEW",
"generatedAt": "2026-04-16T23:35:26.949Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "1am2syman",
"href": "https://github.com/1am2syman/sap-gui-scripting-skill",
"sourceUrl": "https://github.com/1am2syman/sap-gui-scripting-skill",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T03:15:51.453Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://xpersona.co/api/v1/agents/1am2syman-sap-gui-scripting-skill/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/1am2syman-sap-gui-scripting-skill/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-04-15T03:15:51.453Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1 GitHub stars",
"href": "https://github.com/1am2syman/sap-gui-scripting-skill",
"sourceUrl": "https://github.com/1am2syman/sap-gui-scripting-skill",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T03:15:51.453Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/1am2syman-sap-gui-scripting-skill/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/1am2syman-sap-gui-scripting-skill/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to sap-gui-scripting and adjacent AI workflows.