Show HN: Graphify C# – Compiler-accurate Find Usages for coding agents
Recorded: Sept. 12, 2026, 1:09 a.m.
| Original | Summarized |
GitHub - zachsaw/graphify-csharp: Give your LLM agents the power of JetBrains Rider IDE! Supports C# 15 Syntax! · GitHub Skip to content Navigation MenuSign inAppearance settingsPlatformAI CODE CREATIONGitHub CopilotWrite better code with AIGitHub Copilot appDirect agents from issue to mergeMCP RegistryIntegrate external toolsDEVELOPER WORKFLOWSActionsAutomate any workflowCodespacesInstant dev environmentsIssuesPlan and track workCode ReviewManage code changesCode QualityEnforce quality at mergeAPPLICATION SECURITYGitHub Advanced SecurityFind and fix vulnerabilitiesCode securitySecure your code as you buildSecret protectionStop leaks before they startEXPLOREWhy GitHubDocumentationBlogChangelogMarketplaceView all featuresSolutionsBY COMPANY SIZEEnterprisesSmall and medium teamsStartupsNonprofitsBY USE CASEApp ModernizationDevSecOpsDevOpsCI/CDView all use casesBY INDUSTRYHealthcareFinancial servicesManufacturingGovernmentView all industriesView all solutionsResourcesEXPLORE BY TOPICAISoftware DevelopmentDevOpsSecurityView all topicsEXPLORE BY TYPECustomer storiesEvents & webinarsEbooks & reportsBusiness insightsGitHub SkillsSUPPORT & SERVICESDocumentationCustomer supportCommunity forumTrust centerPartnersView all resourcesOpen SourceCOMMUNITYGitHub SponsorsFund open source developersPROGRAMSSecurity LabMaintainer CommunityGitHub StarsArchive ProgramREPOSITORIESTopicsTrendingCollectionsEnterpriseENTERPRISE SOLUTIONSEnterprise platformAI-powered developer platformAVAILABLE ADD-ONSGitHub Advanced SecurityEnterprise-grade security featuresCopilot for BusinessEnterprise-grade AI featuresPremium SupportEnterprise-grade 24/7 supportPricingSearch/Sign inSign upAppearance settings You signed in with another tab or window. Reload to refresh your session. Dismiss alert zachsaw graphify-csharp Public
Notifications
Fork
Star Code Issues Pull requests Actions Projects Security and quality Insights
Additional navigation options
Code Issues Pull requests Actions Projects Security and quality Insights
mainBranchesTagsGo to fileCodeOpen more actions menuLatest commit History52 Commits52 CommitsFolders and filesNameNameLast commit messageLast commit date.agents/skills.agents/skills .github/workflows.github/workflows docsdocs scriptsscripts srcsrc teststests .gitignore.gitignore CHANGELOG.mdCHANGELOG.md Graphify.CSharp.slnGraphify.CSharp.sln LICENSELICENSE README.mdREADME.md View all filesRepository files navigationREADMEMIT licenseMore itemsgraphify-csharp 🚀 Give coding agents compiler-accurate Find Usages for C#. graphify-csharp is a free, headless Roslyn/MSBuild indexer that turns C# Which methods are used only by tests? A text search can find matching spellings. It cannot reliably tell which Without semantic indexing Matching names look like usages Overloads and generics are ambiguous Test-only usage requires manual inspection Type relationships are reconstructed from text For example, this repository contains an internal That is semantic evidence, not a text-match count. A consumer can classify the For C# structure and usage questions, refresh Now ask your agent: What calls this exact overload or constructor? From IDE navigation to agent evidence What a developer does in Rider Find Usages Jump to Implementation Navigate base and derived types Disambiguate overloads and generics Inspect a large solution Keep navigating while editing The extractor supplies the facts. Your agent or downstream consumer decides Rider and ReSharper provide interactive navigation, inspections, There is real overlap with NDepend around callers, dependencies, inheritance, graphify query "Which methods call the order service?" \ Namespaces, classes, structs, interfaces, records, enums, and delegates Compiler-resolved relationships Direct calls, constructor calls, method groups, and member access Every edge points from the declaration where the relationship was observed to Tool asset net10.0 net11.0 Install or update the package with dotnet tool ... --framework to select the zero inbound references means zero observed static references; The tool exposes this boundary instead of pretending static evidence is a Usage License Footer © 2026 GitHub, Inc. Footer navigation Terms Privacy Security Status Community Docs Contact Manage cookies Do not share my personal information You can’t perform that action at this time. |
Graphify Csharp is a free, headless indexer built upon Roslyn and MSBuild that transforms C# source code into deterministic and queryable semantic evidence. Its primary function is to derive compiler-resolved information, including method callers, references, implementations, inheritance relationships, and overrides, even when dealing with complex scenarios involving overloads, generics, and multiple projects. It is designed to serve as the semantic-navigation layer for coding agents, providing them with verifiable structure rather than relying on ambiguous text matching. The core innovation of Graphify Csharp lies in moving beyond superficial text analysis to capture actual compiler-resolved relationships. Unlike methods that might suggest a textual similarity between names, Graphify Csharp establishes stable identities and directed relationships (edges) directly derived from the Roslyn compiler analysis. For example, it resolves ambiguities inherent in overloads and generics by retaining bound signature and project/Team Foundation Member (TFM) identities, ensuring that an agent receives accurate structural data rather than inferred possibilities. This allows agents to accurately determine, for instance, which specific overload was called or which project an interface implementation resides in. This semantic evidence allows coding agents to perform sophisticated reasoning. They can inspect the derived graph to answer complex questions about the codebase, such as identifying methods used exclusively by test projects, tracing all source declarations referencing a specific field, or identifying methods that override specific virtual members. This capability transforms what would otherwise require extensive human inspection into verifiable static evidence. The process involves indexing the codebase, which can be initiated via a command-line interface to produce a comprehensive JSON document containing nodes, edges, and hyperedges. This output can be consumed directly by agents, queried using tools like jq, or used by custom applications. Furthermore, the repository includes an integrated skill designed to teach agents how to utilize this graph, instructing them on how to follow semantic edges and where static analysis concludes. Graphify Csharp operates distinctly from tools like IDE navigation, such as those found in Rider or ReSharper, and broader dependency analysis suites like NDepend. It occupies a focused niche by providing fine-grained, source-level C# semantic evidence specifically tailored for coding agents. It is not an IDE replacement or a direct clone of dependency analysis tools, but rather a Roslyn-native semantic index that others can build upon. The indexing captures a vast amount of detail, including source declarations for namespaces, classes, interfaces, and members, as well as all compiler-resolved relationships between them, including direct calls, member access, inheritance hierarchies, and operator resolutions. Crucially, the system retains source location and provenance for every relationship observed, ensuring that the derived facts are traceable back to the source code. For performance and repeated agent work, Graphify Csharp supports incremental indexing through a watcher mechanism, which keeps the Roslyn workspace warm and prepares background updates. The system supports multiple runtime environments, offering support for .NET 10.0 and preview support for .NET 11.0, which incorporates Roslyn and C# 15. The tool explicitly defines the boundary of static analysis, noting that runtime relationships, such as those involving reflection or dynamic invocation, are not directly represented as static edges, thereby clearly delineating the scope of what can be proven statically versus what requires runtime judgment. |