Interactive Terminal Client for Graph Databases
Project description
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
# Install from PyPI
pip install graphsh
# Or install from source with pip
git clone https://github.com/awslabs/graphsh.git
cd graphsh
pip install -e .
# Or install from source with UV (recommended for faster installation)
git clone https://github.com/awslabs/graphsh.git
cd graphsh
uv venv
source .venv/bin/activate
uv pip install -e .
# Install with development dependencies
uv pip install -e ".[dev]"
Quick Start
# Connect to Neptune with IAM auth
graphsh --endpoint https://neptune-instance.region.amazonaws.com:8182 --auth iam --type neptune
# Connect to Neptune Analytics with IAM auth
graphsh --graph-id my-graph-id --type neptune-analytics --region us-east-1
# Connect to Neo4j
graphsh --endpoint bolt://localhost:7687 --auth basic --username neo4j --password password --type neo4j
# Connect to an endpoint with no authentication
graphsh --endpoint https://localhost:8182 --auth none --type neptune --no-verify-ssl
# Connect using a saved profile
graphsh --profile my-neptune-profile
# Execute commands from a file
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
Project details
Release history Release notifications | RSS feed
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 graphsh-0.1.0.tar.gz.
File metadata
- Download URL: graphsh-0.1.0.tar.gz
- Upload date:
- Size: 40.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5761ece16b3069bb59ec620bf70a2a54cb3b445d8a0cbc8ce682947c020cb90f
|
|
| MD5 |
e4cfb78f7d336346f9657f237cd272da
|
|
| BLAKE2b-256 |
640ee54234ac50bfb29041349a35537e351a1413fe38c499f7f03d6716f23c0b
|
Provenance
The following attestation bundles were made for graphsh-0.1.0.tar.gz:
Publisher:
python-publish.yml on awslabs/graphsh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
graphsh-0.1.0.tar.gz -
Subject digest:
5761ece16b3069bb59ec620bf70a2a54cb3b445d8a0cbc8ce682947c020cb90f - Sigstore transparency entry: 266006333
- Sigstore integration time:
-
Permalink:
awslabs/graphsh@291cb379619816be41e3e0f81c556dba27f84de3 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/awslabs
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@291cb379619816be41e3e0f81c556dba27f84de3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file graphsh-0.1.0-py3-none-any.whl.
File metadata
- Download URL: graphsh-0.1.0-py3-none-any.whl
- Upload date:
- Size: 52.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f783b871d6c6edee6d37e5a07060112bec0c102b25c8bc5975d1791c5ceef81a
|
|
| MD5 |
dd7f9976eb1a41d5215e69e33496c9ed
|
|
| BLAKE2b-256 |
74fa499b3bb3fd025b4dceb8605d48c2fa081d1fb0bcd6e5f378361486ad5b3b
|
Provenance
The following attestation bundles were made for graphsh-0.1.0-py3-none-any.whl:
Publisher:
python-publish.yml on awslabs/graphsh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
graphsh-0.1.0-py3-none-any.whl -
Subject digest:
f783b871d6c6edee6d37e5a07060112bec0c102b25c8bc5975d1791c5ceef81a - Sigstore transparency entry: 266006338
- Sigstore integration time:
-
Permalink:
awslabs/graphsh@291cb379619816be41e3e0f81c556dba27f84de3 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/awslabs
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@291cb379619816be41e3e0f81c556dba27f84de3 -
Trigger Event:
release
-
Statement type: