GraphSh
GraphSh is an interactive terminal client for graph databases, inspired by the psql
experience but designed specifically for graph query languages.
Features
- Interactive shell for graph database queries
- Support for multiple query languages:
- Gremlin (TinkerPop)
- SPARQL 1.1
- OpenCypher
- Compatible with:
- Amazon Neptune
- Amazon Neptune Analytics
- Neo4j
- Any TinkerPop-compliant database
- Authentication support:
- AWS IAM for Neptune
- Username/password for Neo4j
- No authentication option for open endpoints
- Rich terminal features:
- Command history
- Tab completion
- Syntax highlighting
- Result formatting
- Connection profiles:
- Save and reuse connection settings
- Manage multiple database connections
- Store language preferences with profiles
Installation
pip install graphsh
git clone https://github.com/awslabs/graphsh.git
cd graphsh
pip install -e .
git clone https://github.com/awslabs/graphsh.git
cd graphsh
uv venv
source .venv/bin/activate
uv pip install -e .
uv pip install -e ".[dev]"
Quick Start
graphsh --endpoint https://neptune-instance.region.amazonaws.com:8182 --auth iam --type neptune
graphsh --graph-id my-graph-id --type neptune-analytics --region us-east-1
graphsh --endpoint bolt://localhost:7687 --auth basic --username neo4j --password password --type neo4j
graphsh --endpoint https://localhost:8182 --auth none --type neptune --no-verify-ssl
graphsh --profile my-neptune-profile
graphsh --commands-file commands.txt
Interactive Shell Commands
Once in the interactive shell, you can use these special commands:
/help - Show help for commands
/help <command> - Show detailed help for a specific command
/quit - Exit the shell
/language <lang> - Switch query language (gremlin, sparql, cypher)
/connect <profile> - Connect to a database using a saved profile
/connect --endpoint <url> [options] - Connect directly with connection parameters
/clear - Clear the screen
/timing on|off - Toggle query execution timing
/format <format> - Set output format (table, raw)
/preferences - Show current user preferences
/preferences reset - Reset preferences to defaults
/profile list - List all saved connection profiles
/profile save <name> - Save current connection as a profile
/profile delete <name> - Delete a saved profile
/profile show <name> - Show details of a saved profile