Generated from the code, not drawn by hand
Nobody keeps UML diagrams up to date by hand, so they stop being true the week after they are drawn. CodeLynq parses your source with tree-sitter and maps which files, packages and classes depend on which. It works for Python, JavaScript, TypeScript, Go, Java, C# and PHP.
The map is redrawn at the start of every run, after every merge into the default branch and every night, so it shows the code as it is today, including what your AI agent changed this morning.
Zoom from components to classes
Start at the parts of your architecture, such as API, Domain or Persistence, and the dependencies between them. Double-click to zoom into folders and files, and into a file to see its classes, fields, methods and inheritance. Click any arrow to see the imports behind it.
One UML class diagram for all your repositories
The UML view combines every repository of a project into one class diagram: packages per repository, classes with their members, and UML relations for inheritance, interfaces, associations and dependencies. When one repository imports another, that link is drawn too. Export it as PlantUML or Mermaid to keep in your repository or documentation.
Architecture rules every run must follow
- Write down which components may not depend on which, for example: the domain must not import from the database layer.
- Before a pull request opens, CodeLynq checks the change against those rules and sends a violation back to the agent to restructure it.
- Only dependencies the change adds count; existing violations are not the run's doing.
- Every pull request gets a Structure changes section: new dependencies, new classes, new packages and any rule it broke.
Turn a picture into work
Select the parts of the map a change is about, describe it, and CodeLynq creates a refactor task and a draft spec with the facts of your selection: the files, what they declare and what depends on them. Attach the rule the change must make true, and once it merges, the rule becomes part of your architecture.
Questions about the architecture map
- Which languages are supported?
- Python, JavaScript, TypeScript, Go, Java, C# and PHP. A repository with several of them is mapped as one.
- Does it see dependency injection and dynamic calls?
- No. The map is built from imports and declarations exactly as they are written. Dependencies that only exist at runtime are not shown.
- Can I export the diagram?
- Yes, the project-wide UML diagram exports as PlantUML and Mermaid text.
- Does it work with self-hosted runners?
- Yes. A runner sends only the source files its agent changed for the architecture check, never the whole repository.