Agent skill

Neo4j Driver Go Skill

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

Covers the Neo4j Go Driver v6 — driver lifecycle, ExecuteQuery, managed and explicit transactions, session config, error handling, data type mapping, and connection tuning.

MITAuto-check: notesDevelopment

Install Neo4j Driver Go Skill

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

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

GitHub CLI
$ gh skill install neo4j-contrib/neo4j-skills neo4j-driver-go-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-go-skill .claude/skills/neo4j-driver-go-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-go-skill
GitHub stars
114
Token cost
~3.8k tokens
SKILL.md length
656 words
Files
4 (incl. references)
Skills in repo
28
Repo updated
First seen
Licence
MIT

At a glance

Covers the Neo4j Go Driver v6 — driver lifecycle, ExecuteQuery, managed and explicit transactions, session config, error handling, data type mapping, and connection tuning.

  • Writing Go code that connects to Neo4j
  • SKILL.md covers When to Use, When NOT to Use, Installation and Environment Variables, plus 12 more sections
  • Calls go; reaches neo4j.com and pkg.go.dev; needs NEO4J_PASSWORD
  • Setting up NewDriver

What it does

Neo4j Driver Go Skill is an agent skill from neo4j-contrib/neo4j-skills. Covers the Neo4j Go Driver v6 — driver lifecycle, ExecuteQuery, managed and explicit transactions, session config, error handling, data type mapping, and connection tuning. Use when writing Go code that connects to Neo4j, setting up NewDriver or ExecuteQuery, debugging sessions/transactions/result handling, or working with neo4j-go-driver v5→v6 migration. Triggers on NewDriver, ExecuteQuery, SessionConfig, ManagedTransaction, neo4j-go-driver. Does NOT handle Cypher query authoring — use neo4j-cypher-skill. Does…

Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `README.md`, `references/advanced-config.md` and `references/repository-pattern.md`).

It sits in Development. It works with 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 Go code that connects to Neo4j
  • Setting up NewDriver
  • Debugging sessions/transactions/result handling
  • Working with neo4j-go-driver v5→v6 migration

Example prompts

  • “Use the neo4j-driver-go-skill skill to cover the Neo4j Go Driver v6 — driver lifecycle, ExecuteQuery, managed and explicit transactions, session…”
  • “/neo4j-driver-go-skill”

Requirements

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

What it can do on your machine

Read from SKILL.md and the folder at commit bb30e1f. 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:

    • go

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • neo4j.com
    • pkg.go.dev

    Also links to:

    • github.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 Go Skill loads about 3.8k tokens when it runs, and up to ~4.9k if it reads all its reference files. Until then it costs about 152 tokens; SKILL.md has 656 words of instructions outside code blocks.

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

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:58
    tps://github.com/joho/godotenv) to load `.env` in dev: `godotenv.Load()`. `.env` in `.gitignore`.
  • 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 bb30e1f, republished under its MIT licence (© neo4j-contrib). 656 words, ~3,814 tokens.

Download SKILL.mdSave it as .claude/skills/neo4j-driver-go-skill/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
neo4j-driver-go-skill
description
Covers the Neo4j Go Driver v6 — driver lifecycle, ExecuteQuery, managed and explicit transactions, session config, error handling, data type mapping, and connection tuning. Use when writing Go code that connects to Neo4j, setting up NewDriver or ExecuteQuery, debugging sessions/transactions/result handling, or working with neo4j-go-driver v5→v6 migration. Triggers on NewDriver, ExecuteQuery, SessionConfig, ManagedTransaction, neo4j-go-driver. Does NOT handle Cypher query authoring — use neo4j-cypher-skill. Does NOT cover driver version migration steps — use neo4j-migration-skill.
allowed-tools
Bash, WebFetch
version
1.0.7

When to Use

  • Writing Go code that connects to Neo4j
  • Setting up neo4j.NewDriver(), ExecuteQuery(), or session/transaction patterns
  • Debugging connection errors, result iteration, type assertions, causal consistency

When NOT to Use

  • Writing/optimizing Cypher → neo4j-cypher-skill
  • v5→v6 migration steps → neo4j-migration-skill

Installation

bash
go get github.com/neo4j/neo4j-go-driver/v6

Import: github.com/neo4j/neo4j-go-driver/v6/neo4j

v5→v6 rename (deprecated aliases still compile, remove before v7):

v5v6
neo4j.NewDriverWithContext(...)neo4j.NewDriver(...)
neo4j.DriverWithContextneo4j.Driver

Environment Variables

go
import "os"

uri      := getEnv("NEO4J_URI",      "neo4j://localhost:7687")
user     := getEnv("NEO4J_USERNAME", "neo4j")
password := getEnv("NEO4J_PASSWORD", "")
database := getEnv("NEO4J_DATABASE", "neo4j")

func getEnv(key, fallback string) string {
    if v := os.Getenv(key); v != "" { return v }
    return fallback
}

Use godotenv to load .env in dev: godotenv.Load(). .env in .gitignore.


Driver Lifecycle

One Driver per application. Goroutine-safe, connection-pooled, expensive to create.

go
func NewNeo4jDriver(uri, user, password string) (neo4j.Driver, error) {
    driver, err := neo4j.NewDriver(
        uri, // "neo4j+s://xxx.databases.neo4j.io" for Aura
        neo4j.BasicAuth(user, password, ""),
    )
    if err != nil {
        return nil, fmt.Errorf("create driver: %w", err)
    }
    ctx := context.Background()
    if err := driver.VerifyConnectivity(ctx); err != nil {
        driver.Close(ctx)
        return nil, fmt.Errorf("verify connectivity: %w", err)
    }
    return driver, nil
}

// In main / app teardown:
defer driver.Close(ctx)

❌ Never create driver per-request. Create once at startup; share across goroutines.

URI schemes: neo4j+s:// (Aura/TLS+routing), neo4j:// (plain+routing), bolt+s:// (TLS+single), bolt:// (plain+single).


Choosing the Right API

APIUse whenAuto-retryLazy results
neo4j.ExecuteQuery()Most queries — simple default✅❌ eager
session.ExecuteRead/Write()Large result sets / streaming✅✅
session.BeginTransaction()Spans multiple functions / ext coordination❌✅
session.Run()CALL IN TRANSACTIONS / auto-commit only❌✅

CALL { … } IN TRANSACTIONS and USING PERIODIC COMMIT manage their own transactions — use session.Run(). They fail inside managed transactions.


Manages sessions, transactions, retries, and bookmarks automatically.

go
result, err := neo4j.ExecuteQuery(ctx, driver,
    `MATCH (p:Person {name: $name})-[:KNOWS]->(friend)
     RETURN friend.name AS name`,
    map[string]any{"name": "Alice"},
    neo4j.EagerResultTransformer,
    neo4j.ExecuteQueryWithDatabase("neo4j"),       // always specify
    neo4j.ExecuteQueryWithReadersRouting(),         // for read queries
)
if err != nil {
    return fmt.Errorf("query people: %w", err)
}

for _, record := range result.Records {
    name, _ := record.Get("name")
    fmt.Println(name)
}
fmt.Println(result.Summary.Counters().NodesCreated())

Key options:

go
neo4j.ExecuteQueryWithDatabase("mydb")          // required for performance
neo4j.ExecuteQueryWithReadersRouting()           // route reads to replicas
neo4j.ExecuteQueryWithImpersonatedUser("jane")  // impersonate
neo4j.ExecuteQueryWithoutBookmarkManager()       // opt out of causal consistency

❌ Never concatenate user input into query strings. Always use map[string]any parameters.

Struct parameters [v6.2.0+, Object Mapping preview] — a struct (or pointer) in params is sent as a Cypher map; same rules in Session.Run, ManagedTransaction.Run, ExplicitTransaction.Run:

go
type Person struct {
    Name     string `neo4j:"name"`
    Age      int    `neo4j:"age,omitempty"`  // zero value dropped
    Internal string `neo4j:"-"`              // never sent
}
_, err := neo4j.ExecuteQuery(ctx, driver,
    "MERGE (p:Person {name: $person.name}) SET p += $person",
    map[string]any{"person": Person{Name: "Alice", Age: 30}},
    neo4j.EagerResultTransformer,
    neo4j.ExecuteQueryWithDatabase("neo4j"),
)

Managed Transactions (Session-Based)

Use for lazy streaming (large result sets) or callback-level control.

go
session := driver.NewSession(ctx, neo4j.SessionConfig{
    DatabaseName: "neo4j", // always specify
    AccessMode:   neo4j.AccessModeRead,
})
defer session.Close(ctx)

result, err := session.ExecuteRead(ctx,
    func(tx neo4j.ManagedTransaction) (any, error) {
        res, err := tx.Run(ctx,
            `MATCH (p:Person) RETURN p.name AS name LIMIT $limit`,
            map[string]any{"limit": 100},
        )
        if err != nil {
            return nil, err
        }
        var names []string
        for res.Next(ctx) { // lazy — don't Collect() on large sets
            name, _ := res.Record().Get("name")
            names = append(names, name.(string))
        }
        return names, res.Err()
    },
)

❌ No side effects in callback — retried on transient failures. ExecuteRead → replicas. ExecuteWrite → cluster leader.


Explicit Transactions

Use when transaction work spans multiple functions or requires external coordination.

go
session := driver.NewSession(ctx, neo4j.SessionConfig{DatabaseName: "neo4j"})
defer session.Close(ctx)

tx, err := session.BeginTransaction(ctx)
if err != nil {
    return err
}
if err := doPartA(ctx, tx); err != nil {
    tx.Rollback(ctx)
    return err
}
if err := doPartB(ctx, tx); err != nil {
    tx.Rollback(ctx)
    return err
}
return tx.Commit(ctx)

❌ Not auto-retried. Caller handles retry. Prefer managed transactions unless you need explicit control.


Error Handling

go
result, err := neo4j.ExecuteQuery(...)
if err != nil {
    var neo4jErr *neo4j.Neo4jError
    if errors.As(err, &neo4jErr) {
        slog.Error("database error", "code", neo4jErr.Code, "msg", neo4jErr.Msg)
    }
    var connErr *neo4j.ConnectivityError
    if errors.As(err, &connErr) {
        slog.Error("connectivity error", "err", connErr)
    }
    return fmt.Errorf("execute query: %w", err)
}

Helpers:

go
neo4j.IsNeo4jError(err)                // server-side Cypher/database error
neo4j.IsTransactionExecutionLimit(err) // managed tx retries exhausted

In managed tx callback: return error → driver retries if transient. ConnectivityError at startup: check URI scheme, credentials, firewall.


Data Types

CypherGo
Integerint64
Floatfloat64
Stringstring
Booleanbool
List[]any
Mapmap[string]any
Nodeneo4j.Node
Relationshipneo4j.Relationship
Pathneo4j.Path
Dateneo4j.Date
DateTimeneo4j.Time
Durationneo4j.Duration
UUIDneo4j.UUID (= dbtype.UUID, [16]byte RFC 9562) — v6.2.0+, Bolt 6.1; parse with dbtype.ParseUUID(s), render with .String()
nullnil
go
// Typed extraction (v6+, preferred):
neo4j.GetRecordValue[string](record, "name")

// Manual extraction:
rawAge, ok := record.Get("age")
if !ok { return errors.New("missing 'age' field") }
age := rawAge.(int64) // Neo4j integers → int64

// Node access:
rawNode, _ := record.Get("p")
node := rawNode.(neo4j.Node)
name := node.Props["name"].(string)
labels := node.Labels // []string

❌ Always check ok from record.Get() before type-asserting — panics on missing key. ❌ After lazy for res.Next(ctx) loop, always check res.Err().


Key Patterns

Context — always propagate
go
ctx, cancel := context.WithTimeout(parentCtx, 5*time.Second)
defer cancel()
// pass ctx to all driver calls

context.Background() has no deadline — slow queries block indefinitely.

Batching Writes
go
// Bad: one transaction per record
for _, item := range items {
    neo4j.ExecuteQuery(ctx, driver, writeQuery, item, ...)
}

// Good: UNWIND batch in one transaction
neo4j.ExecuteQuery(ctx, driver,
    `UNWIND $items AS item
     MERGE (n:Node {id: item.id})
     SET n += item`,
    map[string]any{"items": items},
    neo4j.EagerResultTransformer,
    neo4j.ExecuteQueryWithDatabase("neo4j"),
)
Generic Helpers (v6+)

Prefer type-safe helpers over manual assertions:

go
// GetRecordValue[T] — extract + cast in one call
name, isNil, err := neo4j.GetRecordValue[string](record, "name")
// isNil=true when OPTIONAL MATCH returned null; err != nil when key absent or wrong type

// CollectTWithContext — map all records to a slice
people, err := neo4j.CollectTWithContext(ctx, result, func(record *neo4j.Record) (Person, error) {
    name, _, err := neo4j.GetRecordValue[string](record, "name")
    age, _, _   := neo4j.GetRecordValue[int64](record, "age")
    return Person{Name: name, Age: int(age)}, err
})

// SingleTWithContext — expect exactly one record (error if 0 or 2+)
person, err := neo4j.SingleTWithContext(ctx, result, func(record *neo4j.Record) (Person, error) {
    name, _, _ := neo4j.GetRecordValue[string](record, "name")
    return Person{Name: name}, nil
})

// GetProperty — typed property from Node or Relationship
node, _, _ := neo4j.GetRecordValue[neo4j.Node](record, "p")
nameVal, err := neo4j.GetProperty[string](node, "name")

Result mapping [v6.3.0+, Object Mapping preview] — map records onto neo4j-tagged structs (same tags as struct parameters):

go
type Person struct {
    Name string `neo4j:"name"`
    Age  int    `neo4j:"age"`   // INTEGER converted; lossy conversion → error, not truncation
}

// EagerResult from ExecuteQuery
res, err := neo4j.ExecuteQuery(ctx, driver,
    "MATCH (p:Person) RETURN p.name AS name, p.age AS age LIMIT 25",
    nil, neo4j.EagerResultTransformer, neo4j.ExecuteQueryWithDatabase("neo4j"))
people, err := neo4j.CollectRecordsAs[Person](res.Records)

// Streaming Result inside a transaction
all, err := neo4j.CollectAs[Person](ctx, result)      // all records
person, err := neo4j.SingleAs[Person](ctx, result)    // exactly one record
p, err := neo4j.As[Person](record)                    // single record

Mapping rules: one column holding a node, relationship, or map → its properties map to fields; otherwise columns map by name. Missing/null → zero value; extra columns ignored.

Show full SKILL.md (254 more words)Show less
Spatial Types
go
// 2D Cartesian (SRID 7203), 3D Cartesian (SRID 9157)
pt2d := neo4j.Point2D{X: 1.23, Y: 4.56, SpatialRefId: 7203}
pt3d := neo4j.Point3D{X: 1.23, Y: 4.56, Z: 7.89, SpatialRefId: 9157}

// 2D WGS-84 (SRID 4326), 3D WGS-84 (SRID 4979)
london := neo4j.Point2D{X: -0.118092, Y: 51.509865, SpatialRefId: 4326}
shard  := neo4j.Point3D{X: -0.0865, Y: 51.5045, Z: 310, SpatialRefId: 4979}

// Pass as parameter
result, err := neo4j.ExecuteQuery(ctx, driver,
    "CREATE (p:Place {location: $loc})",
    map[string]any{"loc": london},
    neo4j.EagerResultTransformer,
    neo4j.ExecuteQueryWithDatabase("neo4j"),
)

// Read from result — assert to Point2D or Point3D
raw, _ := record.Get("location")
if p2d, ok := raw.(neo4j.Point2D); ok {
    fmt.Printf("lon=%f lat=%f srid=%d\n", p2d.X, p2d.Y, p2d.SpatialRefId)
}

// Distance (same SRID only)
result, _ = neo4j.ExecuteQuery(ctx, driver,
    "RETURN point.distance($p1, $p2) AS distance",
    map[string]any{"p1": pt2d, "p2": neo4j.Point2D{X: 10, Y: 10, SpatialRefId: 7203}},
    neo4j.EagerResultTransformer, neo4j.ExecuteQueryWithDatabase("neo4j"),
)
dist, _ := result.Records[0].Get("distance")
fmt.Println(dist.(float64))
Always Specify Database
go
neo4j.ExecuteQueryWithDatabase("neo4j")    // in ExecuteQuery
neo4j.SessionConfig{DatabaseName: "neo4j"} // in sessions

Omitting costs a network round-trip per call to resolve home database.

Causal Consistency

ExecuteQuery manages bookmarks automatically — no action needed for sequential calls. Cross-session (parallel workers): combine bookmarks explicitly — see references/repository-pattern.md.


Common Errors

Error / SymptomCauseFix
ConnectivityError at startupURI wrong / TLS mismatch / firewallCheck scheme (neo4j+s:// for Aura), credentials, port 7687
ConnectivityError mid-runPool exhaustedIncrease MaxConnectionPoolSize; check for leaked sessions
Panic on type assertionrecord.Get() returned nil/wrong typeUse neo4j.GetRecordValue[T]() or check ok first
res.Err() non-nil after loopNetwork error mid-streamHandle error; re-run transaction
Callback retried unexpectedlySide effect inside managed txMove side effects outside callback
Context deadline exceededNo timeout on contextUse context.WithTimeout
0 results, query looks correctWrong DatabaseNameAlways set DatabaseName in config
CALL IN TRANSACTIONS failsRun inside managed txUse session.Run() (auto-commit)

References

Load on demand:

  • references/advanced-config.md — connection pool tuning, custom address resolver, notification config, Bolt logging, auth options, URI scheme table, deprecated result-summary accessors (Profile() → QueryProfile())
  • references/repository-pattern.md — repository wrapper pattern, cross-session causal consistency with bookmarks

WebFetch

NeedURL
Go driver manualhttps://neo4j.com/docs/go-manual/current/
API referencehttps://pkg.go.dev/github.com/neo4j/neo4j-go-driver/v6/neo4j

Checklist

  • One driver created at startup; shared across goroutines; defer driver.Close(ctx)
  • driver.VerifyConnectivity(ctx) called at startup
  • DatabaseName set in all SessionConfig / ExecuteQueryWithDatabase
  • context.WithTimeout used for production queries
  • map[string]any parameters used — no string interpolation
  • ExecuteQueryWithReadersRouting() on read-only ExecuteQuery calls
  • res.Err() checked after lazy for result.Next(ctx) loop
  • Type assertions guarded (use GetRecordValue[T] or check ok)
  • No side effects inside managed transaction callbacks
  • session.Run() used for CALL IN TRANSACTIONS / auto-commit queries
  • Sessions closed with defer session.Close(ctx)

© 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 3 other files (references) in neo4j-driver-go-skill of neo4j-contrib/neo4j-skills.

  • SKILL.md
  • README.md
  • references/advanced-config.md
  • references/repository-pattern.md

Open the folder on GitHubat commit bb30e1f

Compare with similar skills

Neo4j Driver Go 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 Go Skill compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Neo4j Driver Go Skill this skillneo4j-contrib/neo4j-skills114—~3.8kAutomated safety check: NotesMIT
Review PRhashgraph-online/awesome-codex-plugins1.3k—~2.5kAutomated safety check: PassApache-2.0
Specialist Reviewhanamizuki/solopreneur152—~3kAutomated safety check: PassMIT
CodegraphcontextCodeGraphContext/CodeGraphContext4.3k—~675Automated safety check: NotesMIT
Cognee Docker Setuptopoteretes/cognee32k—~901Automated safety check: NotesApache-2.0
Add Partial Reconsamugit83/redamon3k—~1.1kAutomated safety check: PassMIT

Similar skills

  • Review PR

    hashgraph-online/awesome-codex-plugins

    Review a GitHub pull request with the RAG + code-graph pipeline (reviewer MCP server).

    1.3k GitHub stars~2.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Specialist Review

    hanamizuki/solopreneur

    Tech-stack-aware expert code review using specialized subagents.

    152 GitHub stars~3k tokensUpdated 14 days ago
    DevelopmentAuto-check passed
  • Codegraphcontext

    CodeGraphContext/CodeGraphContext

    Use CodeGraphContext (CGC) to index a repo into a graph DB and query it via CLI or MCP.

    4.3k GitHub stars~675 tokensUpdated yesterday
    Agent WorkflowsAuto-check: notes
  • Cognee Docker Setup

    topoteretes/cognee

    Runs the Cognee AI memory platform in Docker, from a one-file prebuilt image to a full compose stack with UI, MCP server, Postgres and Neo4j.

    32k GitHub stars~901 tokensUpdated yesterday
    DevOps & CloudAuto-check: notes
  • Add Partial Recon

    samugit83/redamon

    Adding partial-recon support for a tool: running a single pipeline phase on demand from the workflow graph, reading its inputs from the existing Neo4j graph and merging results back.

    3k GitHub stars~1.1k tokensUpdated 2 days ago
    SecurityAuto-check passed
  • Project Orchestrator

    this-rs/project-orchestrator

    AI agent orchestrator with Neo4j knowledge graph, Meilisearch search, and Tree-sitter parsing.

    140 GitHub stars~2.6k tokensUpdated today
    Backend & APIsAuto-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~4.4k tokensUpdated yesterday
    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 yesterday
    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 yesterday
    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 yesterday
    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 yesterday
    Auto-check: notes

Works with

Categories

Questions about Neo4j Driver Go Skill

What does Neo4j Driver Go Skill do?

Covers the Neo4j Go Driver v6 — driver lifecycle, ExecuteQuery, managed and explicit transactions, session config, error handling, data type mapping, and connection tuning. Neo4j Driver Go Skill is an agent skill from neo4j-contrib/neo4j-skills. Covers the Neo4j Go Driver v6 — driver lifecycle, ExecuteQuery, managed and explicit transactions, session config, error handling, data type mapping, and connection tuning.

When should I use Neo4j Driver Go Skill?

Neo4j Driver Go Skill fits situations like: writing Go code that connects to Neo4j; setting up NewDriver; debugging sessions/transactions/result handling; working with neo4j-go-driver v5→v6 migration.

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

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

How do I install Neo4j Driver Go Skill in Codex?

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

Can I use Neo4j Driver Go 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-go-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-go-skill, .gemini/skills/neo4j-driver-go-skill, .github/skills/neo4j-driver-go-skill and .opencode/skills/neo4j-driver-go-skill in your project.

What does Neo4j Driver Go Skill need to run?

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

Does Neo4j Driver Go Skill access the network?

SKILL.md names 3 domains. In commands or code: neo4j.com and pkg.go.dev; the agent is likely to contact these when it follows the instructions. As links in the text: github.com. This is read from the text; nothing was executed.

Is Neo4j Driver Go 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 Go Skill use?

Neo4j Driver Go 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 Go Skill use?

About 3.8k tokens (SKILL.md is roughly 15k 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 1.1k tokens, read only when the agent opens those files.

What are the alternatives to Neo4j Driver Go Skill?

Skills that share tags, products or a category with Neo4j Driver Go Skill: Review PR (hashgraph-online/awesome-codex-plugins, 1.3k stars), Specialist Review (hanamizuki/solopreneur, 152 stars), Codegraphcontext (CodeGraphContext/CodeGraphContext, 4.3k stars) and Cognee Docker Setup (topoteretes/cognee, 32k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Neo4j Driver Go 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 9, 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.