rename_symbol
Cross-file type-safe rename via LSP. Understands scope, shadowing, overloads, interface implementations.
What it does
It is misleading to benchmark rename_symbol against sed as if they were equivalent tools. They are not.
A text replace can rename raw strings. rename_symbol renames a resolved symbol across the codebase with language-server awareness. That means:
- Scope is respected
- Unrelated same-name identifiers are not blindly touched
- Shadowing is handled correctly
- Cross-file references are updated as one operation
The right framing
This is not “a slightly better text replace.” It is a different class of operation.
The benchmark should be workflow-oriented: how many steps a native agent would need to identify all relevant uses and patch them safely, versus one typed rename operation.
When to use
- API surface changes
- Fixing naming inconsistencies
- Safe refactors on widely-used utilities
- Any time you’d manually Edit multiple files to rename the same symbol
Never manually Edit multiple files to rename a symbol — use rename_symbol. LSP handles imports, type refs, and re-exports.
Related tools
Benchmark note
This benchmark compares CodeSift against the closest practical native workflow an agent would use for the same task.
For some tools, that baseline is a direct shell equivalent such as rg or find.
For AST-aware, graph-aware, and LSP-backed tools, the baseline is a multi-step workflow rather than a strictly identical command.
Results should be read as agent-workflow comparisons: token cost, call count, and practical context efficiency.