SDKs
A CLDK SDK (a frontend) is an ergonomic analysis API over the canonical JSON that the codeanalyzer backends produce. Because the backends do all the language analysis, every SDK inherits every backend for free: the same call graphs, symbol tables, and reachability, exposed through the idioms of your language.
This is the frontend layer. For the analyzers behind it, see the backends overview.
Maturity tiers
Section titled “Maturity tiers”Mature production-ready · Alpha experimental · Help wanted contributors wanted · Stub not started
Frontends (SDKs)
Section titled “Frontends (SDKs)”The SDK you write against. Each is an ergonomic analysis API over the canonical JSON.
| SDK | Repository | Maturity |
|---|---|---|
| Python | codellm-devkit/python-sdk | Mature |
| TypeScript | codellm-devkit/typescript-sdk | Alpha |
| Java | Not started | Help wanted Stub |
| Rust | Not started | Help wanted Stub |
| Go | Not started | Help wanted Stub |
Pick an SDK
Section titled “Pick an SDK”Same contract, every language
Section titled “Same contract, every language”Each SDK speaks the same analysis vocabulary because they all read the one schema the backends serialize:
CLDK(language=...).analysis(project_path=...)to construct the facade.- The core methods (
get_symbol_table,get_call_graph,get_callers,get_callees, and friends) return the same typed models. - Adding a backend lights the new language up across every SDK at once.
The Python SDK is stable and the place to start. The TypeScript SDK is experimental and evolving. The Java, Rust, and Go frontends are unbuilt: see Add a Rust frontend for the shape a native SDK takes.