Write the right code.

AI writes code. Tern tells you what's worth writing.

Migration visualization showing code, map, plan and diff

Understand the problem before you commit to a solution.

Ask a question. Get back a spreadsheet, not an essay.

Describe the change you're considering: "upgrade our auth system," "deprecate the billing API," "standardize error handling."

Tern reads your entire codebase and gives you back a structured inventory of everything involved.

Not a summary. Not "approximately 200 files." The actual files, classified by what kind of change they need.

See itsearch
Upgrade our authentication system0 results
FilePatternOwner
src/auth/login.ts:42direct-call@auth-team
src/auth/signup.ts:18direct-call@auth-team
src/middleware/jwt.ts:7wrapper@platform
src/api/users.ts:134direct-call@users
lib/auth-helper.ts:22wrapper@platform
src/billing/verify.ts:89direct-call@billing
tests/auth.test.ts:15test-mock@auth-team
src/admin/auth.ts:56custom@admin
src/api/oauth.ts:201wrapper@auth-team
tests/billing.test.ts:44test-mock@billing
src/auth/token.ts:73direct-call@auth-team
src/services/notif.ts:31wrapper@platform
235 more

The complexity is in the patterns, not the count.

247 files isn't 247 identical changes. Tern classifies what's in your codebase: which call sites follow the standard pattern, which use custom wrappers, which are test mocks that need deletion instead of rewriting.

Filter by team, by pattern, by complexity. See the real shape of the work before you write a single line of code.

Organize itstacks
Upgrade our authentication system247 results
FilePatternOwner
Direct bcrypt calls134 sites
Wrapped auth helpers62 sites
src/middleware/jwt.ts:7wrapper@platform
lib/auth-helper.ts:22wrapper@platform
src/api/oauth.ts:201wrapper@auth-team
src/services/notif.ts:31wrapper@platform
Custom implementations8 sites
Test mocks43 sites

Different patterns, different prompts. Run them all.

The direct calls get one approach. The wrapped helpers get another. The custom implementations get reviewed by a human.

Run each prompt against its group, see what passed and what needs attention. You're not babysitting one AI session through hundreds of changes; you're orchestrating targeted fixes across patterns you already understand.

Ship itgraph_1
Upgrade our authentication system
FilePatternStatus
Direct bcrypt calls134 sites
src/auth/login.ts:42direct-callPending
[init] Loading direct-call migration...
Reading src/auth/login.ts:42
- const hash = bcrypt.hashSync(pwd, 10)
+ const hash = await argon2.hash(pwd)
Validation passed ✓
src/auth/signup.ts:18direct-callPending
src/api/users.ts:134direct-callPending
src/billing/verify.ts:89direct-callPending
src/auth/token.ts:73direct-callPending
Wrapped auth helpers62 sites
Custom implementations8 sites
Test mocks43 sites

Built for every ambitious change.

Upgrading React, Django, Rails?

Tern shows you which components follow which patterns, which tests need rewriting vs. deletion, and which files aren’t affected at all.

Upgrade our frontend framework, find all 47 new packages and make sure theyll work for us

Get the demo

Teams that see the work before they start it.

Every migration is a quarter you're not building something that might actually move the business. Anything that does that work faster gives you so much time back.
Abel Mathew
CTO, Sauce Labs
Tern mapped out our Django upgrade and showed us it was actually straightforward. That clarity gave us the confidence to just start instead of spending weeks in analysis paralysis.
Matt Bianchi
Senior Engineer, Cedar
Migrations always take longer than you think. At every point, I'd estimate 30 minutes, it'd take two days. Knowing the real scope up front? That's the difference between a 2-week project and a 3-month slog.
Arup Chakrabarti
Senior Director of Engineering, PagerDuty

See what's in your codebase.

Sign up, connect your repo, describe a change. See the real shape of the work in minutes.