EMBEDDED. LOCAL-FIRST. CONNECTED.

Your data.
Its connections.
A single graph.

The graph database that lives inside your Python application. Trace dependencies, retrieve connected knowledge for agents, and explore relationships with graph, text and vector search.

pip install okto-grafx

Pre-alpha · Python 3.11–3.13 · No database server

CONNECTED BY DESIGN 01 / GRAPH
A connected project knowledge graphIllustrative graph connecting a project to specifications, decisions, tasks, evidence and their sources.PROJECTSpecificationDecisionEvidenceTaskSourceBELONGS_TOSUPPORTS
cypherMATCH (n)-[r]->(m)
RETURN n, r, m
EXPLORE THE CONNECTIONS
THE FOUNDATION FOR CONNECTED APPLICATIONS
Embedded Python
Local persistence
Graph + text + vectors
Inside Okto Pulse

01 / CAPABILITIES THAT CONNECT

More than storing connections.
Put them to work.

From agent memory to dependency analysis: the building blocks to turn connected data into useful answers.

01
TYPED GRAPHS & TRAVERSAL

See what depends on what.

Connect entities with typed relationships. Follow paths, match patterns and aggregate connected data with a documented Cypher-style query language.

THE CHALLENGE

Requirements, decisions and changes live in separate records.

WHAT YOU CAN BUILD

Trace a changed requirement to its tasks, tests and supporting decisions.

Typed nodes + edgesPattern matching
Explore the capability
02
TEXT + VECTOR + GRAPH SEARCH

Retrieve more than a match.

Combine BM25 text search, exact or approximate vector search, and weighted rank fusion. Use graph evidence to boost or filter candidates within one snapshot.

THE CHALLENGE

Keywords miss related ideas. Similarity alone misses relationships.

WHAT YOU CAN BUILD

Give an agent relevant records with connected evidence for its answer.

BM25 + HNSWHybrid retrieval
Explore the capability
03
TRANSACTIONS & DURABILITY

Keep shared work consistent.

Independent local processes can read and write the same store. Snapshot isolation, optimistic conflict checks, WAL-backed durability and verified recovery preserve the transaction contract.

THE CHALLENGE

Workers update data while other processes are reading it.

WHAT YOU CAN BUILD

Read a consistent snapshot and handle write conflicts explicitly in your application.

Snapshot isolationWAL + recovery
Explore the capability
04
NATIVE GRAPH ALGORITHMS

Find structure in the noise.

Explore snapshot projections with BFS, weighted shortest paths, PageRank, connected components, k-core and label propagation.

THE CHALLENGE

A growing network is too connected to inspect record by record.

WHAT YOU CAN BUILD

Discover paths, rank connected entities and identify clusters in your data.

BFS + DijkstraPageRank + components
Explore the capability
05
IMPORT, EXPORT & INTEROPERABILITY

Put existing data to work.

Bring in typed CSV and JSONL data. Exchange Arrow batches and NetworkX graphs, or use optional Pandas, Polars and local Parquet integrations.

THE CHALLENGE

Useful knowledge is scattered across files and analysis tools.

WHAT YOU CAN BUILD

Build connected datasets from local sources, then take results back to your Python tools.

CSV + JSONLArrow + NetworkX
Explore the capability
06
EMBEDDED & LOCAL-FIRST

Ship the graph with your app.

Run inside your Python process with an in-memory graph or a persistent local directory. Use the Python API and CLI without operating a separate database server.

THE CHALLENGE

An embedded tool should not need a remote database to start.

WHAT YOU CAN BUILD

Build local agents, desktop tools and offline data workflows around an application-owned graph.

Python API + CLILocal persistence
Explore the capability
Choosing a graph database?Compare Grafx, Ladybug & Neo4j
0.0.6 · VALIDATED DEVELOPMENT

More ways to model, query and connect.

The qualified development source adds multiple labels, flexible properties, writing subqueries, exact decimals, temporal values and typed collections, alongside history and hybrid search. Native and installed Pulse qualifications are documented; release availability remains separate from published 0.0.5.

Explore the validated additions

02 / CLOSE TO YOUR CODE

Import it.
Connect it.
Build on it.

Start with an in-memory graph. Use a local directory when your data needs to persist. The engine runs in your application’s process.

  • Explicit transactions for writes
  • Parameterized graph queries
  • Python API and machine-readable CLI
Read the integration guide
quickstart.py
from okto_grafx import connect with connect(":memory:") as db:    with db.begin("write") as txn:        txn.execute(            "CREATE NODE TABLE Person("            "id INT64, name STRING, PRIMARY KEY(id))"        )        txn.execute(            "CREATE (:Person {id: $id, name: $name})",            {"id": 1, "name": "Ada"},        )     result = db.execute("MATCH (p:Person) RETURN p.name")    print(result.rows)  # (("Ada",),)
OUTPUT(("Ada",),) Connected

03 / THE OKTO ECOSYSTEM

THE GRAPH BEHIND OKTO PULSE

Connected knowledge.
Already at work.

Okto Pulse uses Okto Grafx as its graph database. Requirements, decisions, tasks and evidence become connected project knowledge that agents can retrieve.

Discover Okto Pulse

Okto Nexus

Coordinate your AI agents.

Okto Pulse

Connect intent, delivery and knowledge.

PULSE’S GRAPH DATABASE

Okto Grafx

The embedded graph foundation.

04 / START BUILDING

Your next idea.
Connected from the start.

Bring a graph into your Python application.

TERMINALPython 3.11–3.13
$pip install okto-grafx

Windows · macOS · Linux

Pre-alpha. Evolving in the open.

Validate API and storage compatibility before upgrading. See the release notes for available features.

Read release notes

A FEW DETAILS

Before you connect.

Do I need to run a database server?+

No. Grafx runs inside your Python process. Use an in-memory database for temporary data or a local directory for persistence.

Does Grafx support all of Cypher?+

Grafx supports a documented Cypher-style subset, including typed schemas, pattern matching, traversals and aggregates. It does not claim full Cypher compatibility. See the supported query language.

Can I use graph, text and vector search together?+

Yes. Grafx provides full-text search, exact and approximate vector search, and weighted reciprocal rank fusion for hybrid retrieval with bounded graph evidence. Explore hybrid search.

What license does Grafx use?+

The source is available under Elastic License 2.0 with the SaaS/Branding Addendum. Read the license for the terms that apply to your use.