Supported Languages

dkod understands your code at the AST level — parsing symbols, resolving dependencies, and merging changes structurally. This requires deep, per-language support. Here's what's covered today.


16 Languages, Full Stack

Every supported language gets the complete dkod pipeline: symbol extraction, semantic merging, and dependency tracking.

LanguageParserSemantic MergeAuto-Detect
Rusttree-sitterYesCargo.toml
TypeScript / Buntree-sitterYespackage.json + bun.lock
TypeScript / Nodetree-sitterYespackage.json
Pythontree-sitterYespyproject.toml, requirements.txt
Gotree-sitterYesgo.mod
Javatree-sitterYespom.xml, build.gradle
Kotlintree-sitterYesbuild.gradle.kts
C#tree-sitterYes*.csproj, *.sln
C / C++tree-sitterYesCMakeLists.txt, Makefile
Rubytree-sitterYesGemfile
PHPtree-sitterYescomposer.json
Swifttree-sitterYesPackage.swift
Scalatree-sitterYesbuild.sbt
Haskelltree-sitterYes*.cabal, stack.yaml
Juliatree-sitterYesProject.toml
Bashtree-sitterYes*.sh

What Each Language Gets

Symbol Extraction

dkod parses your source files into an AST and extracts every meaningful symbol — functions, classes, methods, structs, interfaces, traits, modules, and more. This is what powers semantic merging: dkod knows that two agents editing different functions in the same file is not a conflict.

LanguageSymbols ExtractedVisibility Detection
Rustfunctions, structs, enums, traits, impls, modulespub/pub(crate)/private
TypeScriptfunctions, classes, interfaces, type aliases, variablesexport/non-exported
Pythonfunctions, classes, methods, module-level variables_ prefix convention
Gofunctions, methods (with receivers), structs, interfaces, constantsuppercase = public, lowercase = private
Javaclasses, interfaces, enums, methods, constructorspublic/private/protected/package
Kotlinclasses, interfaces, objects, functions, properties, type aliasespublic/private/protected/internal
C#classes, structs, interfaces, enums, methods, namespacespublic/private/protected/internal
C / C++functions (including qualified MyClass::method), classes, structs, enums, namespacesN/A (header-based)
Rubyclasses, modules, methods, singleton methodsall public (method-call-level private/protected)
PHPclasses, interfaces, enums, methods, standalone functionspublic/private/protected
Swiftclasses, structs, enums, protocols, functionspublic/private/internal/fileprivate/open
Scalaclasses, traits, objects, enums, functions, vals, varsprivate/protected/public
Haskellfunctions, data types, newtypes, type classes, type synonymsall public (module export lists)
Juliafunctions, short functions, structs, abstract types, modules, macros_ prefix convention
Bashfunctionsall public

Dependency & Import Tracking

dkod tracks import relationships across files so semantic merging can detect when a change in one file breaks a dependency in another — something Git can never catch.

Mixed-Language Projects

dkod handles polyglot repositories naturally. If your repo has a Rust backend and a TypeScript frontend, dkod detects both, parses both, and merges both — all in the same session.

Next Steps