# Code Graph > Step-by-step guide to building code-level graphs from repositories A minimal guide to building a code-level graph from a repository and searching it. The pipeline parses your repo, extracts code entities and dependencies, and optionally processes non-code docs alongside. **Before you start:** * Complete [Quickstart](getting-started/quickstart) to understand basic operations * Ensure you have [LLM Providers](setup-configuration/llm-providers) configured * Have a local repository path (absolute or relative) ## What Code Graph Does * Scans a repo for supported languages and builds code nodes/edges (files, symbols, imports, call/dependency links) * Optional: includes non-code files (markdown, docs) as a standard knowledge graph * Enables `SearchType.CODE` for code-aware queries ## Code in Action ```python theme={null} import asyncio import cognee from cognee import SearchType from cognee.api.v1.cognify.code_graph_pipeline import run_code_graph_pipeline async def main(): repo_path = "/path/to/your/repo" # folder root # Build the code graph (code only) async for _ in run_code_graph_pipeline(repo_path, include_docs=False): pass # Ask a code question results = await cognee.search(query_type=SearchType.CODE, query_text="Where is Foo used?") print(results) asyncio.run(main()) ``` This simple example uses a basic repository for demonstration. In practice, you can process large codebases with multiple languages and complex dependency structures. ## What Just Happened ### Step 1: Build the Code Graph ```python theme={null} async for _ in run_code_graph_pipeline(repo_path, include_docs=False): pass ``` This scans your repository for supported languages and builds code nodes/edges. The pipeline handles file parsing, symbol extraction, and dependency analysis automatically. ### Step 2: Search Your Code ```python theme={null} results = await cognee.search(query_type=SearchType.CODE, query_text="Where is Foo used?") ``` Use `SearchType.CODE` to ask code-aware questions about your repository. This searches through the extracted code structure, not just text content. ## Include Documentation (Optional) Also process non-code files from the repo (slower, uses LLM for text): ```python theme={null} async for _ in run_code_graph_pipeline(repo_path, include_docs=True): pass ``` This processes markdown files, documentation, and other text files alongside your code, creating a comprehensive knowledge graph. ## Advanced Options ```python theme={null} async for _ in run_code_graph_pipeline( repo_path, include_docs=False, excluded_paths=["**/node_modules/**", "**/dist/**"], supported_languages=["python", "typescript"], ): pass ``` * **`excluded_paths`**: List of paths (globs) to skip, e.g., tests, build folders * **`supported_languages`**: Narrow to certain languages to speed up processing ## Visualize Your Graph (Optional) ```python theme={null} from cognee.api.v1.visualize.visualize import visualize_graph await visualize_graph("./graph_code.html") ``` Generate an HTML visualization of your code graph to explore the structure and relationships. ## What Happens Under the Hood `run_code_graph_pipeline(...)` automatically handles: * Repository scanning and file parsing * Code entity extraction (functions, classes, imports, calls) * Dependency analysis and relationship mapping * Database initialization and setup * Optional documentation processing with LLM Once complete, your code graph is ready for search and analysis. Learn about custom tasks and pipelines Understand knowledge graph fundamentals Explore API endpoints --- > To find navigation and other pages in this documentation, fetch the llms.txt file at: https://docs.cognee.ai/llms.txt