| name | gitmap |
| description | Git-Map |
GitMap Skill
Version control for ArcGIS web maps โ exposed as native OpenClaw tools.
Overview
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
Prerequisites
Install GitMap Core
pip install gitmap-core
Configure Credentials
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.
Required environment variables
- PORTAL_URL: Your ArcGIS Portal or AGOL URL (e.g.,
https://myorg.maps.arcgis.com)
- ARCGIS_USERNAME: Portal username
- ARCGIS_PASSWORD: Portal password (prefer scoped API tokens over plaintext passwords)
Tools
Discovery & Status
gitmap_list โ List available web maps from Portal (with optional filters)
gitmap_status โ Show working tree status for a local GitMap repo
gitmap_log โ View commit history for a repo
Versioning
gitmap_commit โ Commit current map state with a message
gitmap_branch โ List or create branches in a repo
gitmap_diff โ Show changes between commits or branches
Portal Sync
gitmap_push โ Push committed changes to ArcGIS Portal
gitmap_pull โ Pull latest map from ArcGIS Portal
Tool Reference
gitmap_list
Discover web maps in Portal.
gitmap_list(
query=None,
owner=None,
tag=None,
max_results=50,
portal_url=None,
username=None,
password=None,
cwd=None,
)
gitmap_status
Show repo status.
gitmap_status(
cwd,
)
gitmap_commit
Commit current changes.
gitmap_commit(
message,
cwd,
author=None,
)
gitmap_branch
List or create branches.
gitmap_branch(
cwd,
name=None,
delete=False,
)
gitmap_diff
Show changes between versions.
gitmap_diff(
cwd,
branch=None,
commit=None,
)
gitmap_push
Push changes to Portal.
gitmap_push(
cwd,
branch=None,
portal_url=None,
username=None,
password=None,
)
gitmap_pull
Pull changes from Portal.
gitmap_pull(
cwd,
branch=None,
portal_url=None,
username=None,
password=None,
)
gitmap_log
View commit history.
gitmap_log(
cwd,
branch=None,
limit=None,
)
Usage Examples
Discover Maps and Clone
gitmap_list(owner="john.doe", max_results=20)
Typical Edit โ Commit โ Push Loop
gitmap_status(cwd="~/maps/MyWebMap")
gitmap_commit(message="Updated layer symbology", cwd="~/maps/MyWebMap")
gitmap_push(cwd="~/maps/MyWebMap")
Feature Branch Workflow
gitmap_branch(cwd="~/maps/MyWebMap")
gitmap_branch(name="feature/new-basemap", cwd="~/maps/MyWebMap")
gitmap_commit(message="Added satellite basemap", cwd="~/maps/MyWebMap")
gitmap_push(cwd="~/maps/MyWebMap", branch="feature/new-basemap")
Review History
gitmap_log(cwd="~/maps/MyWebMap", limit=10)
gitmap_diff(cwd="~/maps/MyWebMap", branch="main")
Server
HTTP server at localhost:7400 (when running):
python server.py
Endpoints:
POST /tools/{tool_name} โ Call a tool with JSON body
GET /health โ Health check
Installation
Install command:
pip install gitmap-core
The skill uses the gitmap_core Python package directly for API access.
Notes & Known Limitations
- Working directory is required for most commands โ GitMap repos are directory-based like Git.
- Portal credentials can be passed per-call or via environment variables (PORTAL_URL, ARCGIS_USERNAME, ARCGIS_PASSWORD).
gitmap list doesn't require a local repo โ it queries Portal directly.
- Output is raw CLI text โ parsed lightly for structured responses where possible.
NOT implement
clone, init,- This skill does merge, checkout, l, or setupsm, context-repos โ call the CLI directly for those.
Related