HACKER Q&A
📣 Exorust

Anyone use a code to mindmap/flowchart tool?


Is there any really good code to mindmap tool? So that it can take a large codebase and split it into a mindmap?


  👤 luke-stanley Accepted Answer ✓
For Python, Pyreverse is a subproject of Pylint and it can help make diagrams: https://pylint.readthedocs.io/en/latest/pyreverse.html It makes class diagrams, it can even output Mermaid diagrams.

Also I saw that Aider.chat makes a text "repo map" for GPT-4 to use using some tree-sitters. In the past, I ended up using the Python AST module with LLM's to help me filter for what I was looking for.

I was happy to find out recently that there is a way to make Mermaid diagrams WYSIWYG / drag and drop editable that the open source https://excalidraw.com has and did I mention it's open source!? With a LLM, you can go full loop back to Mermaid again after a few rounds of manual editing. "What a time to be alive!"

But what I would quite like is bi-directional syncing of code and diagrams. Just as looking at black and white code with no syntax highlighting is not so common, I think there are lots more visual cues and contexts we can integrate in clever ways that use our visual system better. There is a whole wide spectrum of augmentation possible within bidirectional visual programming languages, from auto-generating high level code maps with Mermaid diagrams with LLM generated high level summaries and emojis linking to different sub-systems, to being optionally able to have an X,Y position for a function, perhaps moved somewhere more visually convenient as part of a map.

You could probably ask Aider to make Markdown of code actually. I'm not affiliated, I just saw it on here recently. Cool stuff's happening!


👤 Exorust
I think my question was misunderstood (probably due to my poor explanantion).

I was looking for a tool that could convert a codebase into a mindmap. Sort of like: https://resources.jetbrains.com/help/img/idea/2023.3/diagram...

https://www.jetbrains.com/help/idea/class-diagram.html#analy...


👤 cashcache
I’m working on this right now! The prototype for Python will be out in a few weeks. https://valla.ai

👤 itpcc
I use Mermaid[1]. I used to use Visual Paradigm but it seems excessive (to me at least). Good enough for me, especially with integration into Markdown.

[1] https://mermaid.js.org/


👤 elesiuta
Are you looking for something like a call graph?

There's pyan3 [1] which although doesn't support python 3.7+, I've still had luck with v1.0.4 which works better for me than its most recent version with python 3.11, but there can be some weird issues though depending on your code style.

A quick search also turned up crabviz [2] which has support for more languages than just python.

[1] https://github.com/Technologicat/pyan

[2] https://github.com/chanhx/crabviz


👤 tarasglek
I originally wrote https://chatcraft.org to help me generate https://mermaid.js.org/ charts quickly. As an accident this resulted in ability to do funny charts like https://twitter.com/tarasglek/status/1656932246018748418

Just last week I discovered https://github.com/skanaar/nomnoml which llms also seem to know too. It seems like a better mermaid for UML type stuff, intend to integrate it into chatcraft too


👤 swozey
I use UML quite a bit but it's never really what I'm after, somnething more modern and fluid and gui driven that more people can use where I don't have to manually input every single thing and it can pull in far more complex information like github repos and things of that nature.

Icepanel [1] looks really cool but I haven't tested it and I'm not sure it really fits my use case. It seems like it's mostly for api driven rpc/grpc/rest services when I kind of want to use it to visualize backend/infra/terraform sort of things in maybe a C4 style. A lot less microservices involved.

Might be interesting to you.

[1] - https://icepanel.io/

ANother cool tool for stuff like this I rarely see is swimm.io for documentation.


👤 Zolomon
Would Mermaid[1] suffice?

[1]: https://mermaid.js.org/


👤 sprine
I wish something existed in this space. I used Coati Software's Sourcetrail for a couple of years. Unfortunately it was discontinued. It was a wonderful piece of software that indexed a code repository, and exposed an interface to explore it interactively. At least for me, it significantly improved the understanding and legibility of code.

The code is in an archived state (https://github.com/CoatiSoftware/Sourcetrail). Searching for the software on Google shows some screenshots.


👤 sandreas
I usually use mermaid.js...

From time to time I use svgbob[1]. Sometimes paired with textik[2] or asciiflow[3].

Together with markdown and termsvg[4] these also can be handy for documentation purposes.

1: https://ivanceras.github.io/svgbob-editor

2: https://textik.com/

3: https://asciiflow.com

4: https://github.com/MrMarble/termsvg


👤 a1o
Not sure, I have used for non-continuous use the NDepend extension for visual studio to grasp a C++ code base in the past and then exported manually to inkscape to manually rearrange things in a readable way to come up with a single page codebase cheatsheet for easing the onboarding of new devs to a specific code base at work.

This is a legacy codebase that isn't expected to change significantly.


👤 wheelinsupial
What do you mean by mind map? What's the objective of this exercise?

You may have better luck by searching for code to UML diagram generator. There are probably too many UML diagrams, but there are some ways to generate diagrams from the code. Once you have a diagram or two, you can probably simplify it into a mind map that you want to make.


👤 Towaway69
I use Node-Red to create my mind map. It's a flow based programming environment, so my mind map is actually executable.

All flows are just very large json files (array of objects), so it's easy enough to generate working flows that can be imported into Node-Red.

https://nodered.org


👤 solardev
Jetbrains IDEs can generate a diagram of your code...https://www.jetbrains.com/help/idea/class-diagram.html

I've never really understood the value of this, but it's there.


👤 westurner
markmap: markdown + mindmap: https://markmap.js.org/

On why code LLMs should be trained on the edges between tests and the code that they test, that could be visualized as a mindmap DAG with cycles


👤 rlupi
A non-conventional mention and I am not sure how up to date it is, but I remember looking into https://moosetechnology.org/ a few years ago and it can do far more that you asked.

It's open-source.

You can read more about it here: http://agilevisualization.com/


👤 mouratoglou
I'd recommend you to check https://appmap.io/ a tool which creates diagrams from code execution or tests...

👤 vunderba
With the significantly larger context window of Gemini, it would be utterly unsurprising to me if you could paste in your entire repository, and ask it to generate mermaid UML.

👤 alunchbox
I just use excalidraw for free form drawings. Might not be what you need, but the performance and utilities is perfect for my workflow

👤 smusamashah
https://flowchart.fun recently helped a lot with a project.

👤 xz18r

👤 supershobu
You can try codetoflow.com, it doesn't support full codebase but is good enough for single code files.

👤 tmaly
It you have the data, it can be accomplished pretty easily with Graphviz, an open source graphing tool.

👤 brendongeils
https://athenaintelligence.ai our product renders mermaid markdown, which has mind map, ERD, flow diagram and other high level components. since we run everything through an agent/llm it’s become an interesting way to literately brainstorm.

👤 vanxv
why i cannot send ask

👤 nipponese
Sounds like AI’s killer app!