5 ms·
Show HN: Graphify C# – Compiler-accurate Find Usages for coding agents
- creatorofuniv 5d ago[dead]
- yodon 5d agoI don't understand why Microsoft and JetBrains aren't shipping versions of this. It seems like exactly what Roslyn was designed for
- zachsaw 5d agoExactly! I'd be more than happy to hand it over to Microsoft to continue maintaining it just to be clear. But MIT licensing it, hopefully the community will help keep it up to date with future C# versions too.
- jayd16 5d agoJetBrains provides an MCP server such that agents can query the project index for things like find usages. What's different about this?
- zachsaw 5d agolol I actually didn't know that. This is MIT licensed though. EDIT: I think the differentiation is that this isn't MCP based. Dumping a portable json file allows much more flexibility than just having to run Rider IDE in the background with the solution loaded and indexed. e.g. the graph works with jq, CI (gates), arbitrary agents without MCP support, non MCP tools, bulk questions etc.
- gregoryl 5d agoI'm hoping Rider get some support for switching between worktrees efficiently - until then, it becomes a tool only the primary / interactive agent sessions can access.
- CatsOwlsCatsOwl 5d ago(Microsoft) GitHub Copilot already builds a semantic index of your solution in a cloud cache, which is used to give higher code intelligence than what you can get from Claude Code alone or LLM interfaces which don't have native support for the Roslyn API like GitHub Copilot does. GitHub Copilot's semantic index can work for any SaaS repo provider (GitLab, Bitbucket, etc.) or any local repos but this requires you to opt into the feature. Repos hosted in GitHub and Azure DevOps do NOT require opting into it since Microsoft already has your code.
- JFuzz 5d agoHey man, just wanted to say thanks! I pulled this down and adapted the skill for Unity development, keeping Graphify C# as an external analysis tool. My adapted skill isn’t publicly available yet, and I'm going to add it into my standard Unity Package development workflow to see if I can find some additional value in how the CLI and structured JSON make semantic information accessible to coding agents. I think this will help (maybe not on a full Unity game) but if you'r building multiple Unity Packages or have existing Unity Packages. Appreciate you sharing this!
- zachsaw 5d agowhoa very nice! If possible, keep us updated. Feel free to contribute your unity skills to my repo as well.
- spicyusername 5d agoLove to see C# love. It's a great language. Super underrated in my opinion. Unions coming in .NET 11 / C# 15 are going to be great.
- el_benhameen 5d agoVery excited to see union types and to see C# on here. C# can feel like a bit of a scarlet letter in the bay.
- Merad 5d agoInteresting! Have you tried it on any large code bases? I have to wonder if json is going do become unwieldy at the scale of millions of LOC - a SQLite db might be a better choice.
- zachsaw 5d agoyeah on my repo the json is over 600mb
- poilcn 5d agoInteresting, thanks. Seeing agents querying compiled code using reflection to find references looks painful and inefficient. Made me want to help little buddy somehow, but had no idea how
- coverband 5d agoIs this compatible with Graphify-Labs/graphify, w/r/t existing output formats?
- zachsaw 5d agoyes it is compatible with graphify - the json can be used directly by graphify.
- bob1029 5d agoI'm not sure when I would use something like this. My VS copilot already writes one-off scripts that use Roslyn to analyze code. I don't even have to prompt it to do this with gpt5.5+ C#/.NET feels unreasonably effective as a target for LLMs. The reflection and compiler services are not found anywhere else and have profound effects that HN still seems to be taking massive naps on.
- quietraster 5d agocompiler accurate find usages is exactly the context coding agents keep missing. how heavy is the roslyn integration at runtime, does it index on save or on demand
- zachsaw 5d agoIt updates based on an interval that you can set as well as on demand. When file changes the file system watcher holds the events in memory until indexing is requested (interval/on-demand).
- exceptione 5d agoThe tool recommends you to use this skill <https://github.com/zachsaw/graphify-csharp/blob/main/.agents/skills/graphify-csharp/SKILL.md https://github.com/zachsaw/graphify-csharp/blob/main/.agents...>, but I wonder if this is the right approach if one just want to use this as a consumer in a .net project. It seems very wordy, but wording like these "Read the relevant design documents under docs/ before changing architecture." makes me think that developing 'graphify the tool' and using 'graphify as a tool' are mixed up in the same document? How does an LLM keep track of both this gigantic skill and the user development problem at the same time?
- zachsaw 5d agoVery good point! the graphify the tool and using graphify AS A tool have definitely beed mixed up! I'll fix this up. Thanks again and appreciate you looking into it!
- exceptione 5d agoGreat, looking forward to it!
- thiagoc77 4d ago[flagged]