Welcome to Tern
Ship migrations with a plan.
Tern reads your entire codebase (and the changelog you meant to summarize), surfaces every breaking change, and grinds through the bulk edits while you focus on the judgment calls.
Tern is currently in Open Beta, which means it’s free to use for a single person. We’d love to hear from you, good or bad, at hello@tern.sh. If it’s really good, learn how Tern can help your whole team.
What you can migrate with Tern
What sort of migrations does Tern work on?
- Framework and runtime upgrades. Bring on the dependency hell. Upgrade React, Vue, Node, Python, or Ruby, and Tern will figure out what else needs to change.
- Breaking changes. Get to the latest version of your ORM, data library, or API client. Tern flags where semantics changed and where you’re fine to roll forward.
- Library swaps. Replace internal SDKs, auth decorators, UI components, or test frameworks. Find/replace, with AI.
- Deep refactors. Changing auth systems, logging pipelines, or patterns in the center of the codebase? Tern finds the callsites and helps you create shims and organize each batch.
- Standardization. Roll the same logging, config, or error-handling pattern everywhere without living in search results.
Get started
Create an account at app.tern.sh, sign into GitHub, install the Tern GitHub app on your repos, and create your first migration.
See more in Installation, or, failing that, in Troubleshooting & Support.
Learn more
- Migrations - The spreadsheet, tasks, the agent, and execution
- Background Agents - What happens when you hit run
- Architecture - How the web app and local CLI work together
- Search Syntax - Write precise queries to find code
- Task Instructions - Define transformation prompts
- Skills - Using Tern with Claude Code
- AI Models - Configure which AI provider and model to use
