The first five minutes
This walks through the loop Tessera is built for: look before you edit, check after you edit. It uses the TypeScript fixture in this repository, so every output below is real.
git clone https://github.com/iamsaquib8/tessera && cd tessera/tests/fixtures/typescript1. Find the code
Section titled “1. Find the code”$ tessera find findByIdmethod UserRepo.findById src/users/repo.ts:6-8 findById(id: string): string {Misspell it and Tessera says so, instead of guessing silently:
$ tessera find findByIddNo exact definition of findByIdd; closest matches:method UserRepo.findById src/users/repo.ts:6-8 findById(id: string): string {2. See the blast radius before editing
Section titled “2. See the blast radius before editing”$ tessera blast formatName5 callers affected by formatName (ranked; all exact): 100.0 d1 UserRepo.findById src/users/repo.ts:6 100.0 d1 loadUser src/util/format.ts:5 82.2 d2 loadUser src/users/repo.ts:15 36.3 d3 handler src/api/handler.ts:4 36.3 d3 describe("loadUser").it("returns the user") test/repo.test.ts:4Tests to run: test/repo.test.tsScores come from personalised PageRank over the call graph: callers that many
paths run through rank higher. d1 is a direct caller.
3. Read one bundle instead of five files
Section titled “3. Read one bundle instead of five files”$ tessera context findByIdmethod UserRepo.findById src/users/repo.ts:6-8 findById(id: string): string { return formatName(this.lookup(id)); }Calls: UserRepo.lookup src/users/repo.ts:10 private lookup(id: string): string { formatName src/util/format.ts:1 function formatName(name: string): string {Called by: loadUser src/users/repo.ts:15 function loadUser(id: string): string {Tests: describe("loadUser").it("returns the user") (test/repo.test.ts:4)Related (shared callers): UserRepo4. Check what you (or your agent) wrote
Section titled “4. Check what you (or your agent) wrote”$ echo 'JSON.parse(x); UserRepo.findByIdd(2); loadUsr(3)' | tessera verify --snippet - --language typescript✗ verify: 2 problem(s) [V1] `findByIdd` is not defined anywhere in the index; did you mean UserRepo.findById? (line 1) [V1] `loadUsr` is not defined anywhere in the index; did you mean loadUser? (line 1)JSON.parse is not flagged: standard globals and calls on receivers Tessera
cannot type are skipped rather than guessed. verify exits with code 1 when
it finds problems, so it works in scripts and git hooks.
5. Give it to your agent
Section titled “5. Give it to your agent”claude mcp add tessera -- tessera mcpThe MCP server answers immediately, indexes in the background, and re-indexes files as they change, so the agent sees its own edits on the next call. See integrations for other agents and MCP for the tools.