codesteward-graph
Multi-language structural code graph builder — parses source repositories into
LexicalNode + edge data and writes to Neo4j or JanusGraph.
Part of the Codesteward MCP project. For full documentation, setup guides, and the MCP server, see the main repository.
What it does
- Parses 13 languages via tree-sitter AST (TypeScript, JavaScript, Python, Java, Go, Rust, PHP, C#, Kotlin, Scala, C, C++); COBOL via regex
- Extracts functions, classes, imports, call graphs, inheritance chains, and auth guard
annotations (
GUARDED_BY/PROTECTED_BYedges) - Resolves cross-file call relationships in a single post-parse pass
- Writes to Neo4j or JanusGraph with tenant + repo namespacing; operates in stub mode without a graph backend
Install
# Core languages (TypeScript, JavaScript, Python, Java)
uv add "codesteward-graph[graph]"
# All 14 languages
uv add "codesteward-graph[graph-all]"
# JanusGraph backend (alternative to Neo4j)
uv add "codesteward-graph[janusgraph]"
# Without tree-sitter (COBOL only; all other parsers will raise ImportError)
uv add codesteward-graph
Quick usage
import asyncio
from codesteward.engine.graph_builder import GraphBuilder
async def main():
builder = GraphBuilder() # stub mode — no graph backend
summary = await builder.build_graph(
repo_path="/path/to/repo",
tenant_id="local",
repo_id="my-repo",
)
print(summary)
asyncio.run(main())
License
Apache License 2.0 — Copyright (c) 2026, bitkaio LLC
Metadata
Release files for codesteward-graph 0.5.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| codesteward_graph-0.5.2.tar.gz | 75.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| codesteward_graph-0.5.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 174.2 kB
Release files / codesteward_graph-0.5.2.tar.gz
| Download URL | codesteward_graph-0.5.2.tar.gz |
|---|---|
| Size | 75.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dd045da9a4060cd0eafe8243d4521685a27e2f6c062c9f2ff7f5505aac108bfd
|
|
BLAKE2b-256 checksum How to use checksums |
583c1a6e70ae89e8a6528978d2ce37d654c650554b4d6dd26e9b9fbd52eb81e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.
Transparency logRelease files / codesteward_graph-0.5.2-py3-none-any.whl
| Download URL | codesteward_graph-0.5.2-py3-none-any.whl |
|---|---|
| Size | 99.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e3d22def5581c2ebccfbbf86a2a887e67ec6fde0b03e79a5726ece8e9f991148
|
|
BLAKE2b-256 checksum How to use checksums |
388998affb488e7731764958bdf9fe2b2588da422262832eb43414787227cf71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.
Transparency log