[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74258":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":16,"rankGlobal":9,"rankLanguage":9,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":15,"starSnapshotCount":15,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},74258,"noodles","unslop-xyz\u002Fnoodles","unslop-xyz","Your codebase was probably AI-generated. Get a better handle on it. Noodles creates interactive diagrams that visualize how your code actually works, so you can understand what the AI built without reading every line.",null,"Python",1274,166,115,1,0,19.67,"MIT License",false,"main",true,[],"2026-06-12 02:03:24","# Noodles\n\n## TL;DR\n\nYour codebase was probably AI-generated. Get a better handle on it.\n\nNoodles creates interactive diagrams that visualize how your code actually works, so you can understand what the AI built without reading every line.\n\n![noodles demo](assets\u002Fdemo.gif)\n\nHosted version available at https:\u002F\u002Funslop.xyz.\n\n## What it does\n\n- Builds function call graphs using tree-sitter AST parsing\n- Generates mermaid diagrams showing code flow\n- Interactive viewer (pan, zoom, drill down into sub-diagrams)\n- **Repo analyzer** - Analyze an entire repository\n- **PR analyzer** - Analyze a GitHub PR to see what changed\n\n## Installation\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Funslop-xyz\u002Fnoodles.git\n```\n\nOr for development:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Funslop-xyz\u002Fnoodles.git\ncd noodles\npip install -e .\n```\n\n## Configuration\n\nSet your LLM API key as an environment variable:\n\n```bash\nexport ANTHROPIC_API_KEY=your-key-here\n```\n\nSupported providers: `anthropic` (default), `openai`, `gemini`, `groq`, `huggingface`. To use a different provider:\n\n```bash\nexport LLM_PROVIDER=openai\nexport OPENAI_API_KEY=your-key-here\n```\n\nAlternatively, create a `.env` file in your working directory (see `.env.example` if you cloned the repo).\n\nAn API key enables AI-powered enrichment of node descriptions and edge labels. Without it, the call graph will still be generated but nodes and edges won't have human-readable descriptions.\n\nNoodles uses `gh` to fetch your repo\u002FPR. To set it up, run:\n```bash\nbrew install gh\ngh auth login\n```\n\n## Usage\n\n### Analyze a repository\n\n```bash\nnoodles repo \u003Crepo-url>\n```\n\n### Analyze a PR\n\n```bash\nnoodles pr \u003Cgithub-pr-url>\n```\n\n### Open viewer for existing results\n\n```bash\nnoodles viewer \u003Cresult-dir>\n```\n\n### Options\n\n- `--output-dir \u003Cdir>` - Custom output directory for results\n- `--no-view` - Don't open the viewer after analysis\n\n## MCP Server (Claude Code Integration)\n\nNoodles can run as an MCP server, allowing Claude Code to analyze PRs and repositories directly.\n\n### Setup\n\n1. Install with MCP dependencies:\n   ```bash\n   pip install \"noodles[mcp]\"\n   ```\n\n2. Add to your Claude Code settings (`~\u002F.claude\u002Fsettings.json`):\n   ```json\n   {\n     \"mcpServers\": {\n       \"noodles\": {\n         \"command\": \"noodles-mcp\"\n       }\n     }\n   }\n   ```\n\n3. Restart Claude Code\n\n4. Verify with `\u002Fmcp` - you should see the noodles server listed\n\n### Available Tools\n\nOnce configured, Claude Code can use these tools:\n\n- `analyze_pr` - Analyze a GitHub PR\n- `analyze_repo` - Analyze an entire repository\n- `analyze_local_repo` - Analyze a local repository (no cloning)\n- `analyze_changes` - Analyze uncommitted local changes\n- `get_diagram` - Get Mermaid diagram from analysis\n- `get_call_graph` - Get full call graph JSON\n- `find_path` - Find call path between two functions\n- `get_callers` - Get functions that call a given function\n- `get_callees` - Get functions called by a given function\n- `filter_graph` - Filter nodes by type (entry_points, endpoints, new, updated, orphans)\n- `get_summary` - Get plain English summary of analysis impact\n- `get_changes` - Get detailed change info for modified functions\n\n### Viewer controls\n\n- **Pan** - Click and drag\n- **Zoom** - Scroll wheel\n- **Drill down** - Click `[+]` nodes\n- **Back** - Escape\n\n## Supported languages\n\nThe call graph builder uses tree-sitter for AST parsing. Currently supported:\n\n| Extension | Language   |\n|-----------|------------|\n| `.py`     | Python     |\n| `.js`     | JavaScript |\n| `.jsx`    | JavaScript |\n| `.ts`     | TypeScript |\n| `.tsx`    | TSX        |\n\nReact\u002FNext.js JSX component usage (`\u003CMyComponent \u002F>`) is detected as function calls, so component hierarchies appear correctly in the call graph.\n\n### Not yet supported\n\n- **Other languages** - Requires adding tree-sitter grammar and function detection logic\n\n## Limitations\n\n### Call detection\n\nThe call graph is built by detecting function calls in the AST. This works well for:\n- Direct function calls: `foo()`, `obj.method()`\n- Imported function calls\n- JSX component usage: `\u003CMyComponent \u002F>`, `\u003CUI.Card \u002F>`\n\nThis does **not** detect:\n- **Dynamic calls** - `getattr(obj, 'method')()`, `obj[key]()`\n- **Callbacks passed to frameworks** - e.g., route handlers registered via decorators\n\n### PR analyzer\n\nThe PR analyzer prunes the call graph to functions affected by a PR. This works best when:\n- Changed functions call or are called by other functions\n- The codebase has interconnected function calls\n\nIt produces limited results when:\n- Changes are to isolated\u002Fstandalone functions\n- The codebase uses patterns not detected by AST analysis (decorators, dynamic dispatch)\n","Noodles 是一个用于分析和可视化代码库的工具，特别适用于AI生成的代码。它通过树状解析器构建函数调用图，并生成Mermaid图表来展示代码流程，支持交互式查看（如缩放、平移和深入子图）。该工具能够分析整个代码仓库或特定的GitHub Pull Request，帮助开发者快速理解代码结构而无需逐行阅读。Noodles 支持多种语言模型提供者，包括Anthropic、OpenAI等，用户可以通过设置环境变量来启用这些服务，以获得更丰富的节点描述信息。此外，Noodles还可以作为MCP服务器运行，与Claude Code集成，进一步扩展其功能，适用于需要对复杂或大型代码库进行高效理解和维护的场景。",2,"2026-06-11 03:49:41","high_star"]