Skip to content

Python API

from okf.generator import scan_codebase, write_bundle, write_summary
from okf.lookup import load_bundle, search

Generate a bundle

concepts = scan_codebase("./my_project")
write_bundle(concepts, "./okf_bundle", "my_project", ["initial generation"])
write_summary("my_project", concepts, "./okf_bundle", {})

Parameters:

Function Key params
scan_codebase(root, exclude=None) Scans a directory and returns list[Concept]
write_bundle(concepts, output_dir, bundle_name, log_entries, source_dirs=None) Writes concept .md files + directory index files
write_summary(bundle_name, concepts, output_dir, git) Writes SUMMARY.md

Search concepts

bundle = load_bundle("./okf_bundle")
results = search(bundle, tokens=["WorldBankConnector"])
print(results[0]["description"])

Parameters:

Function Key params
load_bundle(bundle_dir, use_cache=True) Loads all concepts from a bundle dir
search(concepts, tokens, file_filter, type_filter, tag_filters, limit, min_score) Filters and scores concepts

Concept dataclass

@dataclass
class Concept:
    type: str          # Module | Function | Class | Method | Dependency
    title: str
    description: str
    resource: str       # relative source path
    tags: list[str]
    signature: str
    docstring: str
    params: list[dict]  # {name, annotation, default}
    returns: str
    methods: list[str]
    source_lines: tuple
    calls: list[str]    # resolved concept IDs this concept calls
    called_by: list[str] # resolved concept IDs that call this concept
    imports: list[str]  # raw import strings (for dependency linking)
    body_extra: dict    # type-specific fields (Dependency → ecosystem, version, etc.)
    concept_id: str