An architecture diagram that stays true to your code

CodeLynq reads the structure of every repository from the code itself and redraws it after every change. Name the architecture you intend, and every AI run is held to it.

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.

Read further

Try it on something from your own backlog

Send us one task and we run it against your repository, then send you the pull request. No account needed.