Skip to main content

Code intelligence engine — extract symbols, references, and structure from codebases using tree-sitter

Project description

codeglass

Code intelligence engine — extract symbols, references, import graphs, call graphs, type hierarchies, and structural outlines from codebases using tree-sitter.

Language-agnostic core with per-language plugins. 7 languages supported out of the box.

Quick Start

pip install codeglass
from pylens import CodeLens

lens = CodeLens()

# Get all symbols from a file
outline = lens.get_symbols("src/main.py")
for sym in outline.symbols:
    print(f"{sym.kind:10} {sym.name:30} line {sym.line}")

# Get the import graph of a project
graph = lens.get_import_graph("src/")
print(f"{graph.stats.total_files} files, {graph.stats.total_imports} imports")

# Find what a function calls
calls = lens.get_call_graph("handle_request", "src/server.py", 42)
for callee in calls.callees:
    print(f"  → {callee.name} (line {callee.resolved_line})")

# Get the class hierarchy
hierarchy = lens.get_type_hierarchy("src/")
for name, node in hierarchy.types.items():
    if node.subclasses:
        print(f"{name}{', '.join(node.subclasses)}")

Features

Operation Description Deterministic
get_symbols Extract functions, classes, methods with signatures and docstrings
get_references Find all usages of a symbol across a codebase ⚠️ cross-file: best-effort
get_outline Recursive directory tree with per-file symbol summaries
get_import_graph Full import graph: imports, imported_by, stats, orphans
get_call_graph Callees — what does this function call?
get_test_coverage Find test files and match test functions to source symbols ⚠️ file matching: heuristic
get_type_hierarchy Class inheritance graph with bases, subclasses, abstract detection
find_similar Find structurally similar functions via AST fingerprinting

Supported Languages

Python, JavaScript, TypeScript, Go, Rust, C/C++, Ruby

Adding a new language takes ~30 lines of tree-sitter queries.

Documentation

Requirements

  • Python 3.11+
  • tree-sitter 0.20.x
  • tree-sitter-languages 1.10+

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

codeglass-0.1.2.tar.gz (56.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

codeglass-0.1.2-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

File details

Details for the file codeglass-0.1.2.tar.gz.

File metadata

  • Download URL: codeglass-0.1.2.tar.gz
  • Upload date:
  • Size: 56.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for codeglass-0.1.2.tar.gz
Algorithm Hash digest
SHA256 094b27c8feeb640169ddcd25c505efd0415cdbe147146a1d156288697bb11e2a
MD5 16b1e3b95967a7303b64c73ec7cdde0e
BLAKE2b-256 fd3bc72ae91e8929d2e27a929057c7d339c3004db7c20201d0dcbb5081f3c2e4

See more details on using hashes here.

File details

Details for the file codeglass-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: codeglass-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 25.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for codeglass-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1fc32bddcd40bed526aa740804964ab77a0d525d01c27ec1318a96f80ce001b4
MD5 1e5a9cbcda281007a020244173cf52da
BLAKE2b-256 b49f34062457e28a6af40868ffd282cbdfe2a8936ceda7613411e495d815b0ee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page