Install
openclaw skills install gitmapProvides Git-like version control tools for ArcGIS web maps, enabling branch management, commits, diffs, and sync with ArcGIS Portal using the gitmap CLI.
openclaw skills install gitmapVersion control for ArcGIS web maps — exposed as native OpenClaw tools.
GitMap provides Git-like version control for ArcGIS Online and Enterprise Portal web maps. This skill wraps the gitmap CLI as thin subprocess calls, exposing branch, commit, diff, push/pull, and map discovery as callable tools.
8 tools | Thin CLI wrapper | No local database | Requires: gitmap-core Python package
pip install gitmap-core
Set the following environment variables:
export PORTAL_URL="https://your-org.maps.arcgis.com"
export ARCGIS_USERNAME="your_username"
export ARCGIS_PASSWORD="your_password"
Security Note: Prefer using scoped API tokens over plaintext passwords when possible.
https://myorg.maps.arcgis.com)gitmap_list — List available web maps from Portal (with optional filters)gitmap_status — Show working tree status for a local GitMap repogitmap_log — View commit history for a repogitmap_commit — Commit current map state with a messagegitmap_branch — List or create branches in a repogitmap_diff — Show changes between commits or branchesgitmap_push — Push committed changes to ArcGIS Portalgitmap_pull — Pull latest map from ArcGIS Portalgitmap_listDiscover web maps in Portal.
gitmap_list(
query=None, # Search query (e.g., "title:MyMap")
owner=None, # Filter by owner username
tag=None, # Filter by tag
max_results=50, # Max results to return
portal_url=None, # Portal URL (or use PORTAL_URL env var)
username=None, # Portal username (or ARCGIS_USERNAME env var)
password=None, # Portal password (or ARCGIS_PASSWORD env var)
cwd=None, # Working directory (default: home)
)
gitmap_statusShow repo status.
gitmap_status(
cwd, # Path to GitMap repository (required)
)
gitmap_commitCommit current changes.
gitmap_commit(
message, # Commit message (required)
cwd, # Path to GitMap repository (required)
author=None, # Override commit author
)
gitmap_branchList or create branches.
gitmap_branch(
cwd, # Path to GitMap repository (required)
name=None, # Branch name to create (omit to list)
delete=False, # Delete the named branch
)
gitmap_diffShow changes between versions.
gitmap_diff(
cwd, # Path to GitMap repository (required)
branch=None, # Compare with this branch
commit=None, # Compare with this commit hash
)
gitmap_pushPush changes to Portal.
gitmap_push(
cwd, # Path to GitMap repository (required)
branch=None, # Branch to push (default: current)
portal_url=None, # Portal URL
username=None, # Portal username
password=None, # Portal password
)
gitmap_pullPull changes from Portal.
gitmap_pull(
cwd, # Path to GitMap repository (required)
branch=None, # Branch to pull (default: current)
portal_url=None, # Portal URL
username=None, # Portal username
password=None, # Portal password
)
gitmap_logView commit history.
gitmap_log(
cwd, # Path to GitMap repository (required)
branch=None, # Branch to show log for
limit=None, # Max commits to show
)
# Find maps owned by a user
gitmap_list(owner="john.doe", max_results=20)
# → returns table of maps with item IDs
# Then clone manually:
# cd ~/maps && gitmap clone <item_id>
# Check what changed
gitmap_status(cwd="~/maps/MyWebMap")
# Commit changes
gitmap_commit(message="Updated layer symbology", cwd="~/maps/MyWebMap")
# Push to Portal
gitmap_push(cwd="~/maps/MyWebMap")
# List branches
gitmap_branch(cwd="~/maps/MyWebMap")
# Create a feature branch
gitmap_branch(name="feature/new-basemap", cwd="~/maps/MyWebMap")
# After editing, commit and push feature branch
gitmap_commit(message="Added satellite basemap", cwd="~/maps/MyWebMap")
gitmap_push(cwd="~/maps/MyWebMap", branch="feature/new-basemap")
# Recent commits
gitmap_log(cwd="~/maps/MyWebMap", limit=10)
# What changed since main?
gitmap_diff(cwd="~/maps/MyWebMap", branch="main")
HTTP server at localhost:7400 (when running):
python server.py
Endpoints:
POST /tools/{tool_name} — Call a tool with JSON bodyGET /health — Health checkInstall command:
pip install gitmap-core
The skill uses the gitmap_core Python package directly for API access.
gitmap list doesn't require a local repo — it queries Portal directly.clone, init,- This skill does merge, checkout, l, or setupsm, context-repos — call the CLI directly for those.