Metadata-Version: 2.3
Name: cypher-shell
Version: 0.4
Summary: Cypher Shell -- a shell for querying Neo4j with Cypher
Keywords: cypher,neo4j,querying,shell,llm
Author-email: LemurPwned <lemurpwned@gmail.com>
Requires-Python: >3.10
Description-Content-Type: text/markdown
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: pyyaml
Requires-Dist: python-dotenv
Requires-Dist: openai-swarm>=0.1.1
Requires-Dist: typer >= 0.12.5
Requires-Dist: openai >= 1.51.2
Requires-Dist: neo4j >= 5.25.0
Requires-Dist: prompt_toolkit >= 3.0.48
Project-URL: Source, https://github.com/LemurPwned/cypher-shell

# Cypher Shell

A shell for querying Neo4j with Cypher using LLMs.

## Installation

```bash
pip install cypher-shell
```

## How to use

```bash
python -m cypher_shell --help
```

or

```bash
python -m cypher_shell run --cfg-path configs/movies.yaml
```

where `configs/movies.yaml` is a configuration file that contains the node and relationship descriptions.

If no configuration file is provided, the tool will try to generate a schema automatically. This might give worse results.

You need to set the `.env` file with your OpenAI API key and Neo4j credentials. See `.env_template` for more information.

### Docker

You can also run the tool using Docker.

```bash
docker run --env .env -it ghcr.io/lemurpwned/cypher-shell:latest python3 -m cypher_shell run --cfg-path configs/movies.yaml
```

### Run query without LLM

Just preface the query with: `cs:` and the query will not be rewritten by the llm.

## Notes:

- sometimes getting the schema automatically is better than providing it manually.

