CLI tool for inspecting ArcGIS Pro session exports
Project description
ArcGIS Pro CLI
Make ArcGIS Pro sessions observable for AI agents and automation tools.
Quick Start
pip install arcgispro-cli
arcgispro install
That's it! The install command launches the add-in installer. Click "Install Add-In" and restart ArcGIS Pro.
How It Works
- Open a project in ArcGIS Pro
- Click Snapshot in the CLI ribbon tab
- A
.arcgispro/folder is created next to your.aprxfile - Query the exported context:
cd /path/to/your/project arcgispro layers # What layers do I have? arcgispro layer "Parcels" # Tell me about this layer arcgispro fields "Parcels" # What fields are in it?
CLI Commands
Setup Commands
| Command | Description |
|---|---|
arcgispro install |
Install the ProExporter add-in |
arcgispro uninstall |
Show uninstall instructions |
arcgispro status |
Show export status and validate files |
arcgispro clean |
Remove generated files |
arcgispro open |
Open folder or select project |
Query Commands
| Command | Description |
|---|---|
arcgispro project |
Show project info |
arcgispro maps |
List all maps |
arcgispro map [name] |
Show map details (default: active map) |
arcgispro layers |
List all layers |
arcgispro layers --broken |
List broken layers |
arcgispro layer <name> |
Show layer details + field schema |
arcgispro fields <name> |
Show just the field schema |
arcgispro tables |
List standalone tables |
arcgispro connections |
List data connections |
arcgispro context |
Print full markdown summary |
All query commands support --json for machine-readable output.
Requirements
- Windows 10/11
- ArcGIS Pro 3.x
- Python 3.9+
Development
To build the add-in from source, you'll need:
- Visual Studio 2022 with ArcGIS Pro SDK extension
- .NET 8 SDK
# Clone and install CLI in dev mode
git clone https://github.com/danmaps/arcgispro_cli.git
cd arcgispro_cli/cli
pip install -e .
# Build add-in in Visual Studio
# Open ProExporter/ProExporter.sln
# Build → Build Solution (Release)
License
MIT
Using with AI Agents
This tool is designed to make ArcGIS Pro sessions observable for AI coding assistants.
What Gets Exported
When you click Snapshot in ArcGIS Pro, the .arcgispro/ folder contains:
.arcgispro/
├── meta.json # Export timestamp, tool version
├── context/
│ ├── project.json # Project name, path, geodatabases
│ ├── maps.json # Map names, spatial references, scales
│ ├── layers.json # Full layer details with field schemas
│ ├── tables.json # Standalone tables
│ ├── connections.json # Database connections
│ └── layouts.json # Print layouts
├── images/
│ ├── map_*.png # Screenshots of each map view
│ └── layout_*.png # Screenshots of each layout
└── snapshot/
└── context.md # Human-readable summary
Claude Code / Copilot CLI / Gemini CLI
These tools can read files and run commands in your working directory. Navigate to your ArcGIS Pro project folder and start your AI session:
cd /path/to/your/project
claude # or: copilot, gemini
Example prompts:
What layers are in this project?
> AI runs: arcgispro layers
What fields are in the Parcels layer?
> AI runs: arcgispro fields "Parcels"
Which layers have broken data sources?
> AI runs: arcgispro layers --broken
Give me the full project context
> AI runs: arcgispro context
Look at the map screenshot and describe what you see
> AI reads: .arcgispro/images/map_*.png
Tips for Best Results
-
Click Snapshot in Pro before starting your AI session - ensures context is fresh
-
Ask naturally - the CLI commands map to common questions:
- "What layers do I have?" →
arcgispro layers - "Tell me about the Parcels layer" →
arcgispro layer Parcels - "What's the schema?" →
arcgispro fields Parcels
- "What layers do I have?" →
-
Use
--jsonfor programmatic access - AI can parse structured output:arcgispro layers --json arcgispro layer "Parcels" --json
-
Check images for visual context - map screenshots help AI understand spatial data
Custom Agent Integration
The JSON files are designed for programmatic access:
import json
from pathlib import Path
context_dir = Path(".arcgispro/context")
layers = json.loads((context_dir / "layers.json").read_text(encoding="utf-8-sig"))
for layer in layers:
print(f"{layer['name']}: {layer.get('featureCount', 'N/A')} features")
for field in layer.get('fields', []):
print(f" - {field['name']} ({field['fieldType']})")
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file arcgispro_cli-0.2.0.tar.gz.
File metadata
- Download URL: arcgispro_cli-0.2.0.tar.gz
- Upload date:
- Size: 102.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d83993176ecf1e4c93c1ebb130f53d596d64fa6e0e81f94c57856dec34a4f4bb
|
|
| MD5 |
166194b794cc417443bd71fc9bb43eb1
|
|
| BLAKE2b-256 |
04a942e9252f124fb3a415e32694512cd2902aa0a273c0253a218c1ddb947251
|
Provenance
The following attestation bundles were made for arcgispro_cli-0.2.0.tar.gz:
Publisher:
release.yml on danmaps/arcgispro_cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
arcgispro_cli-0.2.0.tar.gz -
Subject digest:
d83993176ecf1e4c93c1ebb130f53d596d64fa6e0e81f94c57856dec34a4f4bb - Sigstore transparency entry: 869002797
- Sigstore integration time:
-
Permalink:
danmaps/arcgispro_cli@6c6d66686aab5019eb01ca06cce379d6db827b1f -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/danmaps
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6c6d66686aab5019eb01ca06cce379d6db827b1f -
Trigger Event:
release
-
Statement type:
File details
Details for the file arcgispro_cli-0.2.0-py3-none-any.whl.
File metadata
- Download URL: arcgispro_cli-0.2.0-py3-none-any.whl
- Upload date:
- Size: 106.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
331ba74739c23a6c83473498ef61f94a7554b193bd1c7a2f5af17d3ffc30b4df
|
|
| MD5 |
b59ca932082022cd1013680ccea46576
|
|
| BLAKE2b-256 |
60ab1109449d902df7d66f151ea032c4ac0fd05ad83768ed7f5591291e5ea8c8
|
Provenance
The following attestation bundles were made for arcgispro_cli-0.2.0-py3-none-any.whl:
Publisher:
release.yml on danmaps/arcgispro_cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
arcgispro_cli-0.2.0-py3-none-any.whl -
Subject digest:
331ba74739c23a6c83473498ef61f94a7554b193bd1c7a2f5af17d3ffc30b4df - Sigstore transparency entry: 869002804
- Sigstore integration time:
-
Permalink:
danmaps/arcgispro_cli@6c6d66686aab5019eb01ca06cce379d6db827b1f -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/danmaps
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6c6d66686aab5019eb01ca06cce379d6db827b1f -
Trigger Event:
release
-
Statement type: