Skip to content

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.

Terminal window
git clone https://github.com/iamsaquib8/tessera && cd tessera/tests/fixtures/typescript
Terminal window
$ tessera find findById
method UserRepo.findById src/users/repo.ts:6-8
findById(id: string): string {

Misspell it and Tessera says so, instead of guessing silently:

Terminal window
$ tessera find findByIdd
No exact definition of findByIdd; closest matches:
method UserRepo.findById src/users/repo.ts:6-8
findById(id: string): string {
Terminal window
$ tessera blast formatName
5 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:4
Tests to run: test/repo.test.ts

Scores come from personalised PageRank over the call graph: callers that many paths run through rank higher. d1 is a direct caller.

Terminal window
$ tessera context findById
method 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):
UserRepo
Terminal window
$ 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.

Terminal window
claude mcp add tessera -- tessera mcp

The 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.