Sounds very cool.
I wanted to try this out, so I opened Windsurf for the first time in ages and clicked the "Upgrade Available" button, which sent me to: https://windsurf.com/editor/update-linux
Did you install using apt or apt-get? If so...
1. Update package lists
sudo apt-get update
2. Upgrade Windsurf
sudo apt-get upgrade windsurf
Whle `apt-get upgrade windsurf` will technically upgrade Windsurf, instructing users to run a command that will attempt to upgrade all packages on their system is nuts when the command is provided in a context that strongly implies it will only upgrade Windsurf and has no warnings or footnotes to the contrary. Good thing I didn't ask Windsurf's agent to ugprade itself for me, I guess.EDIT - I don't want to detract from the topic at hand, however - after upgrading (with `sudo apt-get install --only-upgrade windsurf` :)) and playing around a bit, the Codemaps feature indeed seems very nifty and worth checking out. Good job!
I really think more people should give Windsurf a go. It's really good. I'm a senior engineer and do a mix of agentic and regular coding and I really think people are looking past Windsurf.
As the conversation shifted towards Cursor vs Claude code vs Codex people seem to have stopped mentioning it which is a shame.
Source: user for 12 months - not a shill.
Codemaps was a very pleasant surprise when it showed up.
A feature like this isn't useful because knowing what connects to what, dependencies, etc. means nothing without business context. AI will never know the why behind the architecture, it will only take it at face value. I think technical design docs which have some context and reading the code is more than enough. This sits in the middle ground where it lacks the context of a doc and is less detailed than the code.
this is the right way to try and tackle this problem imo. too much focus in AI dev tooling has been on building "products" that only half work.
making codebases understandable to humans, and LLMs etc, is a better approach
self documenting, interpretable systems would actually solve a lot of dev churn in big companies
plus it's not like artifacts have to be limited to code once that's figured out
(coauthor) happy to take any questions! see 1 min demo video here https://x.com/cognition/status/1985755284527010167
this is brainchild of cognition cto steven who doesn't like the spotlight but he deserves it for this one https://x.com/stevenkplus1/status/1985767277376241827
if you leave qtns here he'll see it
Well, interesting idea, but can you trust that it generates it properly? Because if it doesn't, then your understanding of the code will be incorrect, even worse than lack of knowledge; and if you do need to check all the things it has generated for you, as a description - doesn't it defeat the purpose of the tool?
I created a side project ~3 years ago based on a similar idea. It was before LLMs were a big thing, and AI could render the code relationships for you.
I started with go and java (the two languages I was using in my job) and built AST parsers that would extract the relationships between the classes and functions and draw them with graphviz. Then I created a filter syntax based on regex to filter the graphs.
I never followed through on the idea to a production ready version, but it helped massively as a personal tool when working on unfamiliar codebases.
The site is still here, but lots of it is probably broken by now..
for people too lazy to download windsurf to try it, codemaps is also in deepwiki
example: https://deepwiki.com/search/how-do-react-hooks-work-under_7a...
this does a pretty good job of going in the weeds of how the useState hook works in react
I really like the idea of visualizing code in any other way than text and have given it some thought from time to time. However, I think the problem here can quickly become that you tend to fall in love with a bad idea. No one, and I don't mean that in bad faith, wants to look at these diagrams. Usually they do not communicate the meaning they intend to do, and I find that I have to spend some time understanding what exactly is meant by any type of box or arrow. What people might want to look at is their mental visualization of the code or math they are working on (or their LLM made for them). At least to me, that is much more tied to what the data will look like at runtime and how different parts from different data-structures will interact with each other. If you were to visualize a flutter app, and nowhere in that visualization the tree-like structure of the widget-tree would appear as such, that would collide with my mental model of how such an app functions. This visualization will be induced by reading the code, much like reading a novel will produce pictures in your head. I'm not sure LLMs are the technology that will produce code-movies you would rather watch.
Feature request: add a Github Action so I can generate a codemap for my repo and throw it on my README. Then update it when major PRs change the codemap.
So it is the same thing when I ask Claude to build me mermaid charts of code flows? So no point in this tool?
Out of nowhere Cognition with a banging product. Probably not 100% yet but the idea is so good I'll be surprised if within 6 months all the other IDEs aren't copying.
Looks an interesting enough feature to give Windsurf a try!
Figuring out new codebases is definitely one of the most challenging and time-intensive things I have had to do in my jobs.
Looks cool! I've been doing this a lot recently - a workflow I set up to create diagrams for code using the Claude cli and mermaid. It works pretty well but it's just a diagram - no links to the actual code. The latter is a neat addition that will likely get me to try codemaps.
>whereas people get into trouble when the code they generate and maintain starts to outstrip their ability to understand it.
If you are trying to understand code, then you are not vibe coding by definition.
I feel like understanding the codebase should be the default thing the AIs would need to do first. This sounds promising though.
I really like this kind of applied statistical data infrastructure approach, feels much more natural than just raw text + immediate HIL
This is extremely useful and helpful ! How great is this use case for AI !!!
So we're back to UML?
Great idea. I always end up having to tag the relevant files/abstractions anyways to avoid having the LLM produce duplicated slop, and something like this makes collecting this info much easier.
This looks awesome. I’m a very heavy Claude Code user (and Codex) in both the CLI and VS Code (and now in the web too!) and it’s quite infuriating when the agent just gets lost after context compaction and I have to point it to read CLAUDE/AGENTS.md (and update it if a lot of changes have been made)
I tried Windsurf a while back but I’ll definitely come back ASAP just to play with this and see how it does in a somewhat complex project I’m working on.
Kudos to the team!
Aggressively ironic for a pitch deck that has no respect for the readers critical thinking skills
this is amazing!
Is this like an entire astro-turfing for AI thread? Can mods like ban these topics? This is clearly just like monetarily incentivized amoral behavior.
As far as I understand still working with this stuff regularly. None of the actual problems have yet to be solved at all. AI still produces garbage for anything complex. And if it doesn't, it's because you specified in full detail how it should do everything and heavily hand-held it and reviewed the results, taking more time than just doing it yourself.
And it's either that or they are flying by the seat of their pants with the thing and free-balling their way to a broken system.
A few things to point out after reading and thinking about this:
- Another AI firm building products focused on Fortune 500 scale problems. If you're not at a F500, this tool isn't necessarily a good fit for you, so YMMV.
- static analysis tools that produce flowcharts and diagrams like this have existed since antiquity, and I'm not seeing any new real innovation other than "letting the LLM produce it".
They say it's ZDR, so maybe I don't fully understand what problem they're trying to solve, but in general I don't see the value add for a system like this. Also onboarding isn't necessarily just presenting flow charts and diagrams: one of the biggest things you can do to onboard somebody is level-set and provide them with problem context. You COULD go into a 30 minute diatribe about how "this is the X service, which talks to the Y service, and ..." and cover a whiteboard in a sprawling design diagram, or you could just explain to them "this is the problem we're working on", using simple, compact analogies where/when applicable. If the codebase is primarily boilerplate patterns, like CRUD, MVC, or Router/Controller/Service/DB, why talk about them? Focus on the deviant patterns your team uses. Focus on the constraints your team faces, and how you take the unbeaten path to navigate those constraints.