codebase-aware code generation with semantic indexing
Generates code by leveraging Sourcegraph's semantic code index to understand repository structure, dependencies, and patterns. Uses embeddings-based retrieval to surface relevant code context from the entire codebase, then passes this context to an LLM (Claude, GPT-4, or local models) to generate contextually appropriate code that follows existing patterns and conventions.
Unique: Integrates Sourcegraph's semantic code graph (built on SCIP protocol) to retrieve contextually relevant code from the entire repository, not just open files or recent edits. Uses precise symbol resolution and cross-repository dependency tracking to ensure generated code aligns with actual project structure.
vs alternatives: Outperforms Copilot and Cursor for large monorepos because it indexes semantic relationships between symbols across the entire codebase rather than relying on file proximity and recency heuristics.
natural language code explanation and documentation generation
Analyzes selected code blocks and generates human-readable explanations, docstrings, and documentation by passing code through an LLM with optional codebase context. Can generate explanations at multiple levels of detail (one-liner, paragraph, full documentation) and produce documentation in multiple formats (JSDoc, Python docstrings, Markdown).
Unique: Leverages Sourcegraph's symbol resolution to provide context-aware explanations that reference related code, dependencies, and usage patterns across the codebase, not just the isolated code block.
vs alternatives: Generates more accurate explanations than generic LLM-based tools because it can resolve symbols and cross-reference actual usage patterns in the indexed codebase.
llm model selection and provider abstraction
Abstracts away LLM provider differences by supporting multiple LLM backends (OpenAI, Anthropic, local models via Ollama, etc.) through a unified interface. Allows users to switch between providers and models without changing code, and supports configuring different models for different tasks (code generation vs. explanation).
Unique: Provides a unified abstraction layer over multiple LLM providers and models, allowing users to swap providers without changing Cody configuration or code.
vs alternatives: More flexible than tools locked to a single LLM provider because it supports multiple backends and allows switching based on cost, capability, or privacy requirements.
multi-file code refactoring with dependency tracking
Performs refactoring operations (rename, extract, move, restructure) across multiple files while maintaining referential integrity. Uses Sourcegraph's semantic index to identify all usages of symbols, then generates coordinated changes across the codebase to preserve functionality. Supports both automated refactoring and LLM-assisted refactoring for complex transformations.
Unique: Uses Sourcegraph's SCIP-based semantic index to track symbol definitions and usages across the entire codebase, enabling precise multi-file refactoring that accounts for indirect dependencies, transitive imports, and cross-module references that text-based tools miss.
vs alternatives: More reliable than IDE-native refactoring tools for large monorepos because it indexes the entire codebase rather than relying on single-workspace symbol tables, and can handle cross-repository dependencies.
context-aware code completion with repository patterns
Provides inline code completion suggestions by analyzing the current file context, surrounding code patterns, and repository-wide conventions. Uses a combination of local syntax analysis and Sourcegraph's semantic index to suggest completions that match the project's style, imports, and architectural patterns. Supports multi-line completions and function signature inference.
Unique: Combines local syntax analysis with repository-wide semantic indexing to suggest completions that not only are syntactically correct but also follow the project's established patterns, import conventions, and architectural style.
vs alternatives: More contextually accurate than Copilot for established codebases because it indexes actual usage patterns in the repository rather than relying on general training data.
intelligent code search with natural language queries
Enables searching code using natural language descriptions rather than regex or keywords. Converts natural language queries to semantic embeddings and searches Sourcegraph's indexed codebase for matching code patterns, functions, and implementations. Returns ranked results with code snippets and context about where matches are used.
Unique: Uses Sourcegraph's semantic code graph and embedding-based search to understand code intent and patterns, not just keyword matching. Ranks results by relevance to the query's semantic meaning.
vs alternatives: More powerful than grep or IDE find-in-files for discovering code patterns because it understands semantic meaning rather than relying on exact keyword matches.
bug detection and fix suggestion with codebase context
Analyzes code for potential bugs by examining patterns, type mismatches, and common error conditions, then suggests fixes based on how similar issues are handled elsewhere in the codebase. Uses static analysis combined with LLM reasoning to identify issues and propose corrections that align with project conventions.
Unique: Combines static analysis with LLM reasoning and codebase context to suggest fixes that not only correct the bug but also align with the project's error handling patterns and conventions.
vs alternatives: More contextually appropriate fixes than generic linters because it learns from how the codebase handles similar issues.
test generation with coverage-aware suggestions
Generates unit tests for functions and modules by analyzing code structure, dependencies, and existing test patterns in the codebase. Uses LLM to create test cases covering normal paths, edge cases, and error conditions, then formats them according to the project's testing framework and style conventions.
Unique: Analyzes existing test patterns in the codebase to generate tests that match the project's testing style, assertion patterns, and mocking conventions, rather than generating generic tests.
vs alternatives: Produces tests that integrate seamlessly with the project's test suite because it learns from existing tests rather than applying generic testing patterns.
+3 more capabilities