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.0.tar.gz (40.3 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.0-py3-none-any.whl (52.1 kB view details)

Uploaded Python 3

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

Hashes for graphsh-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5761ece16b3069bb59ec620bf70a2a54cb3b445d8a0cbc8ce682947c020cb90f
MD5 e4cfb78f7d336346f9657f237cd272da
BLAKE2b-256 640ee54234ac50bfb29041349a35537e351a1413fe38c499f7f03d6716f23c0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for graphsh-0.1.0.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.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

Hashes for graphsh-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f783b871d6c6edee6d37e5a07060112bec0c102b25c8bc5975d1791c5ceef81a
MD5 dd7f9976eb1a41d5215e69e33496c9ed
BLAKE2b-256 74fa499b3bb3fd025b4dceb8605d48c2fa081d1fb0bcd6e5f378361486ad5b3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for graphsh-0.1.0-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