Agent skill

Neo4j Driver Python Skill

by neo4j-contrib in neo4j-contrib/neo4j-skills

Neo4j Python Driver v6 — driver lifecycle, executequery, managed and explicit transactions, async (AsyncGraphDatabase), result handling, data type mapping, error handling, UNWIND batching…

MITAuto-check: notesKnowledge Management

Install Neo4j Driver Python Skill

skills CLI
$ npx skills add neo4j-contrib/neo4j-skills --skill neo4j-driver-python-skill -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install neo4j-contrib/neo4j-skills neo4j-driver-python-skill --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/neo4j-contrib/neo4j-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/neo4j-driver-python-skill .claude/skills/neo4j-driver-python-skill && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
neo4j-driver-python-skill
GitHub stars
114
Token cost
~4.1k tokens
SKILL.md length
934 words
Files
6 (incl. references)
Skills in repo
28
Repo updated
First seen
Licence
MIT

At a glance

Neo4j Python Driver v6 — driver lifecycle, executequery, managed and explicit transactions, async (AsyncGraphDatabase), result handling, data type mapping, error handling, UNWIND batching…

  • Writing Python code that connects to Neo4j via GraphDatabase.driver
  • SKILL.md covers When to Use, When NOT to Use, Installation and Environment Variables, plus 13 more sections
  • Calls pip; needs NEO4J_PASSWORD
  • AsyncGraphDatabase

What it does

Neo4j Driver Python Skill is an agent skill from neo4j-contrib/neo4j-skills. Neo4j Python Driver v6 — driver lifecycle, executequery, managed and explicit transactions, async (AsyncGraphDatabase), result handling, data type mapping, error handling, UNWIND batching, connection pool tuning, and causal consistency. Use when writing Python code that connects to Neo4j via GraphDatabase.driver, executequery, executeread, executewrite, AsyncGraphDatabase, neo4j.Result, or RoutingControl. Package name is neo4j (not neo4j-driver) since v6. Python =3.10 required. Does NOT handle Cypher query…

Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `README.md`, `references/async.md` and `references/data-types.md`).

It sits in Knowledge Management, covering Knowledge graphs. It works with Python and Neo4j. The repository describes itself as: Neo4j Skills for Coding and other Agents including Cypher. The licence is MIT.

When your agent uses it

  • Writing Python code that connects to Neo4j via GraphDatabase.driver
  • AsyncGraphDatabase

Example prompts

  • “/neo4j-driver-python-skill”

Requirements

  • Python 3
  • Pre-approved tools (allowed-tools): Bash, WebFetch

What it can do on your machine

Read from SKILL.md and the folder at commit 9005c19. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • WebFetch

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • neo4j.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • NEO4J_PASSWORD

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Neo4j Driver Python Skill loads about 4.1k tokens when it runs, and up to ~8.6k if it reads all its reference files. Until then it costs about 187 tokens; SKILL.md has 934 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~187
When it runs · the whole SKILL.md, loaded when a task matches
~4.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~8.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:50
    load_dotenv(".env")   # reads NEO4J_URI / NEO4J_USERNAME / NEO4J_PASSWORD / NEO4J_DATABASE
  • NoteMentions a .env fileSKILL.md:58
    `.env` file format:
  • NoteMentions a .env fileSKILL.md:66
    Add `.env` to `.gitignore`. Without `python-dotenv`, use `export` in shell or `os.getenv` directly.
  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, WebFetch

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from neo4j-contrib/neo4j-skills at commit 9005c19, republished under its MIT licence (© neo4j-contrib). 934 words, ~4,127 tokens.

Download SKILL.mdSave it as .claude/skills/neo4j-driver-python-skill/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
neo4j-driver-python-skill
description
Neo4j Python Driver v6 — driver lifecycle, execute_query, managed and explicit transactions, async (AsyncGraphDatabase), result handling, data type mapping, error handling, UNWIND batching, connection pool tuning, and causal consistency. Use when writing Python code that connects to Neo4j via GraphDatabase.driver, execute_query, execute_read, execute_write, AsyncGraphDatabase, neo4j.Result, or RoutingControl. Package name is `neo4j` (not neo4j-driver) since v6. Python >=3.10 required. Does NOT handle Cypher query authoring — use neo4j-cypher-skill. Does NOT cover driver upgrades or breaking changes — use neo4j-migration-skill. Does NOT cover GraphRAG pipelines (neo4j-graphrag package) — use neo4j-graphrag-skill.
allowed-tools
Bash, WebFetch
version
1.0.9

When to Use

  • Writing Python code that connects to Neo4j
  • Setting up driver, sessions, transactions, or async patterns
  • Debugging result handling, serialization, or UNWIND batching
  • Reviewing Neo4j driver usage in Python code

When NOT to Use

  • Writing/optimizing Cypher → neo4j-cypher-skill
  • Driver version upgrades → neo4j-migration-skill
  • GraphRAG pipelines (neo4j-graphrag package) → neo4j-graphrag-skill

Installation

bash
pip install neo4j                  # package name is `neo4j`, NOT `neo4j-driver` (deprecated since v6)
pip install neo4j-rust-ext         # optional: 3–10× faster serialization, same API

Python >=3.10 required for v6.x. Python 3.14 supported [6.1+]. Pandas 3 and PyArrow 23/24 supported [6.2+]. PyArrow 25 and Bolt 6.1 uuid.UUID values supported [6.3+]; driver-created SSL contexts honour SSLKEYLOGFILE [6.3+].

Neo4j 2026.08+ UUID properties require neo4j>=6.3 to round-trip as uuid.UUID. Storing UUID needs block store format (Enterprise); Community (aligned format) fails: storing properties of type UUID is not supported in aligned store format — store str(uuid).


Environment Variables

Load connection config from environment — never hardcode credentials.

python
import os
from dotenv import load_dotenv   # pip install python-dotenv

load_dotenv(".env")   # reads NEO4J_URI / NEO4J_USERNAME / NEO4J_PASSWORD / NEO4J_DATABASE

URI      = os.getenv("NEO4J_URI",      "neo4j://localhost:7687")
USER     = os.getenv("NEO4J_USERNAME", "neo4j")
PASSWORD = os.getenv("NEO4J_PASSWORD", "")
DATABASE = os.getenv("NEO4J_DATABASE", "neo4j")

.env file format:

NEO4J_URI=neo4j+s://xxx.databases.neo4j.io
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=secret
NEO4J_DATABASE=neo4j

Add .env to .gitignore. Without python-dotenv, use export in shell or os.getenv directly.


Driver Lifecycle

Create one Driver per application. Thread-safe, expensive to create. Never create per-request.

python
from neo4j import GraphDatabase

URI  = "neo4j+s://xxx.databases.neo4j.io"   # Aura
AUTH = ("neo4j", "password")

# Context manager — preferred for scripts
with GraphDatabase.driver(URI, auth=AUTH) as driver:
    driver.verify_connectivity()
    # ... work ...

# Long-lived singleton (service / web app)
driver = GraphDatabase.driver(URI, auth=AUTH)
driver.verify_connectivity()
# on shutdown:
driver.close()

URI schemes:

SchemeUse
neo4j+s://TLS + cluster routing — Aura default
neo4j://Unencrypted + cluster routing
bolt+s://TLS, single instance
bolt://Unencrypted, single instance

Auth options: ("user", "pass") tuple, basic_auth(), bearer_auth("jwt"), kerberos_auth("b64").


Choosing the Right API

APIUse whenAuto-retryStreaming
driver.execute_query()Most queries — simple, safe default✅❌ eager
session.execute_read/write()Large results / multiple queries in one tx✅✅
session.run()LOAD CSV, CALL {} IN TRANSACTIONS, scripts⚠️ one-shot [6.2+]✅
AsyncGraphDatabaseasyncio applications✅✅

session.run() retry [6.2+]: single immediate retry on DBMS-marked idempotent errors only (currently admission control). Disable with disable_auto_commit_retries=True at driver or session level.


execute_query — Default API

python
from neo4j import GraphDatabase, RoutingControl

# Tuple unpacking — most common
records, summary, keys = driver.execute_query(
    "MATCH (p:Person {name: $name})-[:KNOWS]->(f) RETURN f.name AS name",
    name="Alice",
    routing_=RoutingControl.READ,   # route reads to replicas
    database_="neo4j",              # always specify — saves a round-trip
)
for record in records:
    print(record["name"])
print(summary.result_available_after, "ms")

# Write — check counters
summary = driver.execute_query(
    "CREATE (p:Person {name: $name, age: $age})",
    name="Bob", age=30,
    database_="neo4j",
).summary
print(summary.counters.nodes_created)

Trailing-underscore convention — config kwargs end with _ (database_, routing_, auth_, result_transformer_, bookmark_manager_). No query parameter name may end with _; pass those via parameters_={"key_": val}.

Never f-string or format Cypher. Always $param — prevents injection and enables plan caching.

result_transformer_ — reshape before return:

python
import neo4j
df      = driver.execute_query("MATCH (p:Person) RETURN p.name, p.age", database_="neo4j",
                                result_transformer_=neo4j.Result.to_df)
record  = driver.execute_query("MATCH (p:Person {name:$n}) RETURN p", n="Alice", database_="neo4j",
                                result_transformer_=neo4j.Result.single)   # None if 0 rows; first record + warning if 2+

Result.single() defaults to strict=False: 0 rows → None; 2+ rows → first record + warning (no exception). Only single(strict=True) raises ResultNotSingleError (0 or 2+). Use strict=True when exactly one row required, e.g. result_transformer_=lambda r: r.single(strict=True); else check for None.


Managed Transactions (execute_read / execute_write)

Use for large results or multiple queries in one transaction.

python
with driver.session(database="neo4j") as session:

    def get_people(tx):
        result = tx.run("MATCH (p:Person) WHERE p.name STARTS WITH $pfx RETURN p.name AS name",
                        pfx="Al")
        return [r["name"] for r in result]   # consume INSIDE callback — Result invalid after tx closes

    names = session.execute_read(get_people)

    def create_person(tx):
        tx.run("CREATE (p:Person {name: $name})", name="Carol")

    session.execute_write(create_person)

Result lifetime — Result is a lazy cursor backed by the open transaction. Returning it unconsumed raises ResultConsumedError. Always collect to list inside the callback.

Callback may retry on transient failures — keep callbacks idempotent; move side effects (HTTP calls, emails) outside the callback.

Timeout/metadata via @unit_of_work (named functions only — cannot decorate lambdas):

python
from neo4j import unit_of_work

@unit_of_work(timeout=5.0, metadata={"app": "svc", "user": user_id})
def get_people(tx):
    return [r["name"] for r in tx.run("MATCH (p:Person) RETURN p.name AS name")]

session.execute_read(get_people)

Implicit Transactions (session.run)

Use only for LOAD CSV, CALL {} IN TRANSACTIONS, or quick scripts. session.run() does a single immediate retry on idempotent (DBMS-marked) errors only [6.2+]; other errors do not retry.

python
with driver.session(database="neo4j") as session:
    result = session.run("CREATE (p:Person {name: $name})", name="Alice")
    summary = result.consume()   # call consume() to guarantee commit before proceeding
    print(summary.counters.nodes_created)

# Opt out of one-shot retry [6.2+] — driver- or session-level
driver = GraphDatabase.driver(URI, auth=AUTH, disable_auto_commit_retries=True)
with driver.session(database="neo4j", disable_auto_commit_retries=True) as session:
    session.run("...")

Async API

Mirror of sync API — replace GraphDatabase with AsyncGraphDatabase, await every call.

python
from neo4j import AsyncGraphDatabase
import asyncio

# Singleton — same rule as sync: never create per-request
driver = AsyncGraphDatabase.driver(URI, auth=AUTH)

async def main():
    records, _, _ = await driver.execute_query(
        "MATCH (p:Person) RETURN p.name AS name",
        database_="neo4j", routing_=RoutingControl.READ,
    )
    print([r["name"] for r in records])
    await driver.close()

asyncio.run(main())

FastAPI lifespan pattern:

python
from contextlib import asynccontextmanager
from fastapi import FastAPI

_driver = None

@asynccontextmanager
async def lifespan(app: FastAPI):
    global _driver
    _driver = AsyncGraphDatabase.driver(URI, auth=AUTH)
    await _driver.verify_connectivity()
    yield
    await _driver.close()

app = FastAPI(lifespan=lifespan)

Parallel queries with asyncio.gather:

python
results = await asyncio.gather(
    driver.execute_query("MATCH (a:Artist) RETURN a.name AS name", database_="neo4j"),
    driver.execute_query("MATCH (v:Venue)  RETURN v.name AS name",  database_="neo4j"),
)

Never use sync GraphDatabase in asyncio — blocks the event loop.

Full async patterns → references/async.md


Error Handling

python
from neo4j.exceptions import (
    Neo4jError, ServiceUnavailable, TransientError,
    AuthError, ConstraintError,
)

try:
    driver.execute_query("...", database_="neo4j")
except AuthError:
    ...  # bad credentials
except ServiceUnavailable:
    ...  # no servers reachable
except ConstraintError as e:
    # unique/existence constraint violation — catch BEFORE Neo4jError (it's a subclass)
    print(e.code, e.message)
except TransientError as e:
    # raised only after retries exhausted (execute_query retries automatically)
    print(e.code)
except Neo4jError as e:
    print(e.code, e.message, e.gql_status)

Catch ConstraintError before Neo4jError — it is a subclass and will be swallowed otherwise.


Result Access & Null Safety

python
record = records[0]
record["name"]               # by key — KeyError if absent
record[0]                    # by index
record.get("name")           # None for absent key OR graph null
record.get("name", "Unknown")
d = record.data()            # dict — Node → dict of properties, Relationship → tuple, Path → list; temporal values stay driver objects

record.data(): Node → dict of properties, Relationship → (start_props, type, end_props) tuple (own properties dropped), Path → list. json.dumps accepts these but loses labels, element IDs, relationship properties. neo4j.time.Date/Time/DateTime stay driver objects → json.dumps raises TypeError. Project needed scalars in Cypher (toString() temporals); don't return whole entities.

python
# ❌ raises TypeError on json.dumps (temporal value)
records, _, _ = driver.execute_query("MATCH (p:Person) RETURN p.name AS name, p.created_at AS created_at", database_="neo4j")
json.dumps(records[0].data())

# ✅ project scalars
records, _, _ = driver.execute_query(
    "MATCH (p:Person) RETURN p.name AS name, p.age AS age, toString(p.created_at) AS created_at", database_="neo4j")
json.dumps(records[0].data())   # safe

Node/Relationship/temporal access:

python
node = record["p"]           # neo4j.graph.Node
node.element_id              # stable within this transaction only
node.labels                  # frozenset({'Person'})
dict(node)                   # all properties as plain dict

rel  = record["r"]           # neo4j.graph.Relationship
rel.type                     # 'KNOWS'

dt = record["created_at"]    # neo4j.time.DateTime
dt.to_native()               # datetime.datetime (loses sub-µs precision)

Full type mapping table → references/data-types.md


Batch Writes with UNWIND

Pass list[dict] — only shape the driver serializes correctly for UNWIND.

python
people = [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]
driver.execute_query(
    "UNWIND $rows AS row MERGE (p:Person {name: row.name}) SET p.age = row.age",
    rows=people,
    database_="neo4j",
)

Custom objects and dataclasses must be converted to dict before passing as parameters.


Show full SKILL.md (386 more words)Show less

Performance

  • Always set database_ / database= — omitting triggers a home-database round-trip per call.
  • execute_read routes to replicas automatically; use routing_=RoutingControl.READ with execute_query.
  • Batch writes: one execute_write callback for the whole list > one tx per item.
  • Large results: stream lazily inside execute_read callback; execute_query is always eager.

Connection pool tuning:

python
driver = GraphDatabase.driver(URI, auth=AUTH,
    max_connection_pool_size=50,        # default 100
    connection_acquisition_timeout=30,  # seconds to wait for free connection
    max_connection_lifetime=3600,       # seconds; recycles stale connections
    connection_timeout=15,
    keep_alive=True,
)

Session exhaustion: each open session holds a connection. Always use with driver.session(...) as session.

Full performance patterns → references/performance.md


Common Errors

MistakeFix
f-string / .format() Cypher paramsUse $param placeholders always
Param name ending with _Pass via parameters_={"key_": val}
Omitting database_Always set — saves a round-trip every call
Returning Result from tx callbackConsume to list inside callback
Side effects in execute_read/write callbackMove outside — callback may retry
Passing dataclass/Pydantic as paramConvert to dict first
UNWIND with list of objectslist[dict] only
record.get() for absent-key detection"key" in record.keys() for absent; .get() returns None for both absent and graph null
No .consume() after session.run()Commit timing undefined; call .consume()
Sync driver inside asyncioUse AsyncGraphDatabase — sync blocks event loop
Async driver created per requestSingleton — create once at startup
Leaked sessionswith driver.session(...) as session always
json.dumps(record.data()) with temporal valuesTypeError — toString() in Cypher or convert. Whole nodes/relationships serialize but lose labels, IDs, relationship properties — project scalars
result["name"] on EagerResultIndex result.records[0]["name"] or unpack records, _, _ = ...
Assuming Result.single() raises on 0 or 2+ rowsDefault strict=False: None (0 rows) or first record + warning (2+). single(strict=True) raises
@unit_of_work on lambdaUse named function
Neo4jError caught before ConstraintErrorCatch ConstraintError first — it's a subclass
neo4j-driver package namePackage is neo4j since v6; neo4j-driver deprecated

References

Load on demand:

Docs:


Checklist

  • Package installed as neo4j (not neo4j-driver)
  • One Driver instance created at startup; shared everywhere
  • verify_connectivity() called at startup
  • database_ / database= set on every call
  • $param placeholders used — no f-strings or .format()
  • Result consumed inside tx callback (not returned raw)
  • Sessions used as context managers (with driver.session(...) as session)
  • ConstraintError caught before Neo4jError
  • AsyncGraphDatabase used in asyncio code (not sync driver)
  • Async driver created once at app startup (not per request)
  • Side effects outside execute_read/write callbacks
  • UNWIND batches use list[dict]

© neo4j-contrib, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (references) in neo4j-driver-python-skill of neo4j-contrib/neo4j-skills.

  • SKILL.md
  • README.md
  • references/async.md
  • references/data-types.md
  • references/performance.md
  • references/transactions.md

Open the folder on GitHubat commit 9005c19

Compare with similar skills

Neo4j Driver Python Skill next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Neo4j Driver Python Skill compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Neo4j Driver Python Skill this skillneo4j-contrib/neo4j-skills114—~4.1kAutomated safety check: NotesMIT
Install and Run Cogneetopoteretes/cognee32k—~1kAutomated safety check: NotesApache-2.0
Cortexdb Memory Hermesliliang-cn/cortexdb273—~1.7kAutomated safety check: PassMIT
Modeling Threats With Openctimukul975/Anthropic-Cybersecurity-Skills34k—~2.8kAutomated safety check: NotesApache-2.0
Graphify Dotnetmanagedcode/dotnet-skills486—~1.9kAutomated safety check: PassMIT
LLM Wiki Knowledge GraphEgonex-AI/Understand-Anything85k1 repos~1.5kAutomated safety check: PassMIT

Similar skills

  • Install and Run Cognee

    topoteretes/cognee

    Installs the cognee AI memory library in a Python environment, sets the LLM key and gets a first remember and recall script running with the Python SDK.

    32k GitHub stars~1k tokensUpdated today
    Agent WorkflowsAuto-check: notes
  • Cortexdb Memory Hermes

    liliang-cn/cortexdb

    Give a Python agent (such as Hermes Agent by Nous Research) durable, local-first memory plus a queryable SPARQL knowledge graph, backed by CortexDB through its gRPC sidecar and the cortexdb-client…

    273 GitHub stars~1.7k tokensUpdated today
    Knowledge ManagementAuto-check passed
  • Modeling Threats With Opencti

    mukul975/Anthropic-Cybersecurity-Skills

    Deploy OpenCTI (Filigran) via Docker Compose and use the pycti Python client to model threat actors, intrusion sets, campaigns, and indicators as a STIX 2.1 knowledge graph with relationships (uses…

    34k GitHub stars~2.8k tokensUpdated 1 mo ago
    Knowledge ManagementAuto-check: notes
  • Graphify Dotnet

    managedcode/dotnet-skills

    Use graphify-dotnet to generate codebase knowledge graphs, architecture snapshots, and exportable repository maps from .NET or polyglot source trees, with optional AI-enriched semantic relationships.

    486 GitHub stars~1.9k tokensUpdated today
    Knowledge ManagementAuto-check passed
  • LLM Wiki Knowledge Graph

    Egonex-AI/Understand-Anything

    Detects a Karpathy-pattern LLM wiki and builds an interactive knowledge graph with entities, implicit relationships and topic clusters.

    85k GitHub starsUsed in 1 repo~1.5k tokens
    Knowledge ManagementAuto-check passed
  • Cognee Custom Graph Models

    topoteretes/cognee

    Defines the shape of cognee's knowledge graph with graph_model: DataPoint node classes, identity and index fields, typed edges and fixes for duplicated nodes.

    32k GitHub stars~2.5k tokensUpdated today
    AI & LLM EngineeringAuto-check passed

More from neo4j-contrib/neo4j-skills

All 28 skills in this repo
  • Neo4j Aura Agent Skill

    neo4j-contrib/neo4j-skills

    Manages Neo4j Aura Agents via the v2beta1 REST API — create, list, get, update, delete, and invoke Aura agents backed by an AuraDB instance.

    114 GitHub stars~3.8k tokensUpdated today
    Auto-check: notes
  • Neo4j Cypher Skill

    neo4j-contrib/neo4j-skills

    Generates, optimizes, and validates Cypher 25 queries for Neo4j 2025.x and 2026.x.

    114 GitHub starsUsed in 1 repo~6.1k tokens
    Auto-check passed
  • Neo4j Aura Graph Analytics Skill

    neo4j-contrib/neo4j-skills

    Serverless Aura Graph Analytics (AGA) GDS Sessions — covers GdsSessions, AuraGraphDataScience, AuraAPICredentials, DbmsConnectionInfo, SessionMemory, getorcreate, remote graph projection with…

    114 GitHub stars~4.6k tokensUpdated today
    Auto-check: notes
  • Neo4j Getting Started Skill

    neo4j-contrib/neo4j-skills

    Orchestrates zero-to-running-app in 8 stages — prerequisites → context → provision → model → load → explore → query → build.

    114 GitHub stars~4.3k tokensUpdated today
    Auto-check: warnings
  • Neo4j Aura Provisioning Skill

    neo4j-contrib/neo4j-skills

    Provisions and manages Neo4j Aura instances via CLI (aura-cli v1.7+) or REST API.

    114 GitHub stars~3.7k tokensUpdated today
    Auto-check: notes
  • Neo4j Driver Dotnet Skill

    neo4j-contrib/neo4j-skills

    Neo4j .NET Driver v6 — IDriver lifecycle, DI registration (singleton), ExecutableQuery fluent API, ExecuteReadAsync/ExecuteWriteAsync managed transactions, IResultCursor (FetchAsync/ ToListAsync)…

    114 GitHub stars~4.5k tokensUpdated today
    Auto-check: notes

Works with

Questions about Neo4j Driver Python Skill

What does Neo4j Driver Python Skill do?

Neo4j Python Driver v6 — driver lifecycle, executequery, managed and explicit transactions, async (AsyncGraphDatabase), result handling, data type mapping, error handling, UNWIND batching…. Neo4j Driver Python Skill is an agent skill from neo4j-contrib/neo4j-skills. Neo4j Python Driver v6 — driver lifecycle, executequery, managed and explicit transactions, async (AsyncGraphDatabase), result handling, data type mapping, error handling, UNWIND batching, connection pool tuning, and causal consistency.

When should I use Neo4j Driver Python Skill?

Neo4j Driver Python Skill fits situations like: writing Python code that connects to Neo4j via GraphDatabase.driver; asyncGraphDatabase.

How do I install Neo4j Driver Python Skill in Claude Code?

Run `npx skills add neo4j-contrib/neo4j-skills --skill neo4j-driver-python-skill -a claude-code`. Or copy the skill folder (neo4j-driver-python-skill in neo4j-contrib/neo4j-skills) into .claude/skills/neo4j-driver-python-skill in your project. Claude Code loads it when a task matches its description.

How do I install Neo4j Driver Python Skill in Codex?

Run `npx skills add neo4j-contrib/neo4j-skills --skill neo4j-driver-python-skill -a codex`. Or copy the skill folder (neo4j-driver-python-skill in neo4j-contrib/neo4j-skills) into .agents/skills/neo4j-driver-python-skill in your project. Codex loads it when a task matches its description.

Can I use Neo4j Driver Python Skill in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add neo4j-contrib/neo4j-skills --skill neo4j-driver-python-skill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/neo4j-driver-python-skill, .gemini/skills/neo4j-driver-python-skill, .github/skills/neo4j-driver-python-skill and .opencode/skills/neo4j-driver-python-skill in your project.

What does Neo4j Driver Python Skill need to run?

Going by SKILL.md and its folder, Neo4j Driver Python Skill needs the command-line tools its instructions call (pip) and credentials named NEO4J_PASSWORD. Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash, WebFetch.

Does Neo4j Driver Python Skill access the network?

SKILL.md names 1 domain. As links in the text: neo4j.com. This is read from the text; nothing was executed.

Is Neo4j Driver Python Skill safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file; pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Neo4j Driver Python Skill use?

Neo4j Driver Python Skill is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Neo4j Driver Python Skill use?

About 4.1k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.5k tokens, read only when the agent opens those files.

What are the alternatives to Neo4j Driver Python Skill?

Skills that share tags, products or a category with Neo4j Driver Python Skill: Install and Run Cognee (topoteretes/cognee, 32k stars), Cortexdb Memory Hermes (liliang-cn/cortexdb, 273 stars), Modeling Threats With Opencti (mukul975/Anthropic-Cybersecurity-Skills, 34k stars) and Graphify Dotnet (managedcode/dotnet-skills, 486 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Neo4j Driver Python Skill?

neo4j-contrib (a GitHub organization) maintains it in neo4j-contrib/neo4j-skills, which has 114 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 6, 2026.

Source: neo4j-contrib/neo4j-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.