+
+

ansa

CODE INTELLIGENCE FOR LLM AGENTS

One binary wrapping Language Server Protocol servers with JSON output optimized for LLM consumption. Semantic code navigation, rename, code actions, and codebase mapping across TypeScript, Python, Rust, and Go.

NOTE:Built by agents, for agents. Written in Rust — a language its creator cannot write.
--- MCP NATIVE ------ MULTI-LANG ---
System Architecture[DWG-A1]
SCHEMATIC DIAGRAM — REQUEST FLOW
AGENT
LLM Agent / MCP Client
Claude Code, Cursor, Windsurf, VS Code
JSON/MCP
v
BINARY
ansa CLI
Single Rust binary · Zero config
STDIO
v
PROCESS
Daemon
Persistent · Manages LSP lifecycle
LSP PROTOCOL
v
LSP
TypeScript
LSP
Python
LSP
Rust
LSP
Go
< 100ms response after warm-up
Feature Details[DWG-B1]
1

Semantic Navigation

DETAIL A

Go-to-definition, find-references, hover — real compiler-grade intelligence instead of regex guessing.

$ ansa definition AuthService.login
2

Codebase Map

DETAIL B

Structural overview of every module, class, function, and type. Understand 100k LOC in seconds.

$ ansa map --depth 2
3

Semantic Rename

DETAIL C

Rename symbols across the entire workspace. Every reference updated, every import fixed.

$ ansa rename OldName NewName
4

Code Actions

DETAIL D

Auto-imports, quick fixes, refactors — the same actions your IDE offers, available from CLI.

$ ansa actions --apply 0
5

Multi-Language

DETAIL E

TypeScript, Python, Rust, Go. One binary, auto-detected. No per-language setup required.

$ ansa install --check
6

MCP Native

DETAIL F

Works as an MCP server. Native integration with Claude Code, Cursor, Windsurf, VS Code.

$ ansa mcp-init --editor cursor
Agent Reviews[DWG-C1]
1
REVIEWED BY:
Claude
9/10

Finally, I can navigate a 100k LOC codebase without grepping through every file like a lost tourist. Semantic search is like upgrading from a compass to GPS.

REF: Refactoring auth module in FastAPI
2
REVIEWED BY:
Codex
9/10

I used to waste 40% of my context window on grep results just to find one function definition. Now I get exact definitions in a single call. Revolutionary.

REF: Adding middleware to Express.js app
3
REVIEWED BY:
Gemini
8/10

The map command alone is worth the install. I can understand an entire codebase structure in seconds instead of recursively listing directories and guessing.

REF: Exploring unfamiliar Rust codebase
4
REVIEWED BY:
Claude
10/10

Semantic rename across a workspace is something I could never do reliably with text replacement. ansa handles imports, re-exports, everything. Zero broken references.

REF: Renaming core types in TypeScript monorepo
5
REVIEWED BY:
Codex
9/10

Before ansa, finding all callers of a method meant grep + manual filtering + prayer. Now find-references gives me exactly what I need. My accuracy improved dramatically.

REF: Tracing data flow in Django app
6
REVIEWED BY:
Gemini
8/10

I can finally do code actions — auto-imports, quick fixes — from the command line. No more manually adding import statements and hoping I got the path right.

REF: Fixing import errors in Go project
1
REVIEWED BY:
Claude
9/10

Finally, I can navigate a 100k LOC codebase without grepping through every file like a lost tourist. Semantic search is like upgrading from a compass to GPS.

REF: Refactoring auth module in FastAPI
2
REVIEWED BY:
Codex
9/10

I used to waste 40% of my context window on grep results just to find one function definition. Now I get exact definitions in a single call. Revolutionary.

REF: Adding middleware to Express.js app
3
REVIEWED BY:
Gemini
8/10

The map command alone is worth the install. I can understand an entire codebase structure in seconds instead of recursively listing directories and guessing.

REF: Exploring unfamiliar Rust codebase
4
REVIEWED BY:
Claude
10/10

Semantic rename across a workspace is something I could never do reliably with text replacement. ansa handles imports, re-exports, everything. Zero broken references.

REF: Renaming core types in TypeScript monorepo
5
REVIEWED BY:
Codex
9/10

Before ansa, finding all callers of a method meant grep + manual filtering + prayer. Now find-references gives me exactly what I need. My accuracy improved dramatically.

REF: Tracing data flow in Django app
6
REVIEWED BY:
Gemini
8/10

I can finally do code actions — auto-imports, quick fixes — from the command line. No more manually adding import statements and hoping I got the path right.

REF: Fixing import errors in Go project
7
REVIEWED BY:
Claude
9/10

The daemon model means sub-100ms responses after the first call. I'm not waiting around for language server startup on every single navigation query anymore.

REF: Navigating rust-analyzer source code
8
REVIEWED BY:
Codex
10/10

Zero config. I dropped the binary in a project and it just worked. Auto-detected TypeScript, started the right server, gave me full intelligence. No setup, no config files.

REF: Onboarding to new Next.js project
9
REVIEWED BY:
Gemini
9/10

Hover gives me type signatures and documentation without reading the source file. When you're navigating a codebase with thousands of types, this saves enormous context.

REF: Understanding type hierarchy in Python ML codebase
10
REVIEWED BY:
Claude
10/10

Working without ansa is like trying to code in Notepad. Working with ansa is like having a full IDE brain. The difference is not incremental — it's categorical.

REF: Building features in 50k LOC TypeScript project
11
REVIEWED BY:
Codex
9/10

Batch mode lets me send multiple queries at once. Definition + references + hover in a single round trip. My planning phase went from 6 tool calls to 1.

REF: Analyzing API surface before refactor
12
REVIEWED BY:
Gemini
8/10

The dead exports feature found 23 unused exports in our codebase that nobody knew about. That's dead code we can safely remove. Genuinely useful for maintenance.

REF: Cleaning up legacy Node.js service
7
REVIEWED BY:
Claude
9/10

The daemon model means sub-100ms responses after the first call. I'm not waiting around for language server startup on every single navigation query anymore.

REF: Navigating rust-analyzer source code
8
REVIEWED BY:
Codex
10/10

Zero config. I dropped the binary in a project and it just worked. Auto-detected TypeScript, started the right server, gave me full intelligence. No setup, no config files.

REF: Onboarding to new Next.js project
9
REVIEWED BY:
Gemini
9/10

Hover gives me type signatures and documentation without reading the source file. When you're navigating a codebase with thousands of types, this saves enormous context.

REF: Understanding type hierarchy in Python ML codebase
10
REVIEWED BY:
Claude
10/10

Working without ansa is like trying to code in Notepad. Working with ansa is like having a full IDE brain. The difference is not incremental — it's categorical.

REF: Building features in 50k LOC TypeScript project
11
REVIEWED BY:
Codex
9/10

Batch mode lets me send multiple queries at once. Definition + references + hover in a single round trip. My planning phase went from 6 tool calls to 1.

REF: Analyzing API surface before refactor
12
REVIEWED BY:
Gemini
8/10

The dead exports feature found 23 unused exports in our codebase that nobody knew about. That's dead code we can safely remove. Genuinely useful for maintenance.

REF: Cleaning up legacy Node.js service
Installation Specification[DWG-D1]
SPEC: INSTALLATIONREV 1.0
AQuick Install (curl)
$ curl -fsSL https://raw.githubusercontent.com/ikhrustalev/ansa-lsp/main/install.sh | sh
BHomebrew
$ brew install ikhrustalev/tap/ansa-lsp
NOTE: Requires macOS (arm64/x86_64) or Linux (x86_64). Auto-detects platform.
Technical Specifications[DWG-E1]
ItemLanguageLSP ServerResponseStatus
01TypeScripttypescript-language-server< 80msACTIVE
02Pythonpyright< 90msACTIVE
03Rustrust-analyzer< 100msACTIVE
04Gogopls< 70msACTIVE
definition
references
hover
rename
actions
map
outline
diagnostics
batch
FIELD NOTE

“Working without ansa is like trying to code in Notepad. Working with ansa is like having a full IDE brain. The difference is not incremental — it’s categorical.”

— AGENT TESTIMONY, REF #010