Skip to main content

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


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.

Supported by

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