Skip to main content

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

graphsh-0.1.1.tar.gz (40.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

graphsh-0.1.1-py3-none-any.whl (52.8 kB view details)

Uploaded Python 3

File details

Details for the file graphsh-0.1.1.tar.gz.

File metadata

  • Download URL: graphsh-0.1.1.tar.gz
  • Upload date:
  • Size: 40.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for graphsh-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9c4e2f1daa7e80d80d81e0ec91d7c6c41892801cef06eab1302380202b32c9bd
MD5 71d79460f9fc65928b8d0fe213e9ae88
BLAKE2b-256 bbae131946d8aead440168f00185509657a760f43f86a2c7626397c4928d8c6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for graphsh-0.1.1.tar.gz:

Publisher: python-publish.yml on awslabs/graphsh

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file graphsh-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: graphsh-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 52.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for graphsh-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3291fa9b5f96894942be5ac34dd72b057d967d64bc5e95833be47f6c48663d4a
MD5 829d0e596fd2e9668e3be5b90ef784f2
BLAKE2b-256 74bea40baedf29a397347a2c109c474821018517c08451778c1a0f1e15c3b6e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for graphsh-0.1.1-py3-none-any.whl:

Publisher: python-publish.yml on awslabs/graphsh

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page