Skip to content
CodeMorph

Features

From JavaScript to verified TypeScript, in one editor.

CodeMorph combines a full code editor with a migration engine that understands how your files depend on each other, and an agent that can explain every decision it makes.

Download for Windows

Product demo on a real Express backend.

The workflow

Five steps. Each one checkable.

Every stage produces something you can inspect before the next one starts: a graph, a plan, a diff, a verification result.

Opening a project and the Morph panel
  1. 01

    Scan

    Parse every file and resolve every import

  2. 02

    Plan

    Order files leaf-first into batches

  3. 03

    Convert

    Type each file against typed imports

  4. 04

    Verify

    tsc and your tests, after each batch

  5. 05

    Review

    Accept each change as a diff

Every capability

What's in the box

Everything CodeMorph does today, in one place, with where to read more.

CapabilityWhat it doesLearn more
ScanParses every source file with tree-sitter and resolves every import into a dependency graphRead
PlanOrders files leaf-first with Tarjan's algorithm and packs them into batches named by folderRead
BaselineCounts the type errors your JavaScript already has with tsc --checkJsRead
Batch migrationConverts each file against dependencies that are already typed, with a repair loopRead
InstructionsSteer the run in plain words, like strict mode or one folder at a timeRead
Diff reviewSide-by-side diffs with summaries; accept, reject or ask per fileRead
Run & VerifyTypecheck, test suite and build across the whole projectRead
AskQuestions about any change, answered with the call sites behind itRead
Explorer statusGrey, orange and green dots per file and a typed counter in the status barRead
Bring your own keyYour Anthropic key, stored in the OS's secure storageRead
Full editorFamiliar keybindings and layout, Open VSX extensions, telemetry offRead

Under the hood

How the pieces fit

CodeMorph is a set of small, testable parts, each with one job. Only one of them ever talks to a model.

Walker

Finds source files under your project root, honoring every .gitignore in the chain and skipping files over 1 MB.

Parser

tree-sitter grammars for JavaScript and TypeScript. Error-tolerant, so a file with a syntax error still yields a usable tree.

Resolver

Turns each import specifier into a target using Node-style rules, index files, extension probing and tsconfig or jsconfig paths.

Graph store

Files, symbols, edges, packages and unresolved imports in a local SQLite database, queried rather than rebuilt.

Planner

Strongly connected components in topological order, packed into batches. Pure computation, no network.

Converter

The only part that calls a model: your provider, your key, with typed dependencies and compiler diagnostics as context.

Verifier

Runs tsc, your test script and your build script locally and reports each step, file by file and batch by batch.

Morph

The agent in the side panel that sees the graph, the plan and every result, so it can explain and act on any of them.

Real-world JavaScript

Built for messy codebases

Clean demo projects are easy. These are the things real projects throw at a migration.

Mixed JS and TS

Existing .ts and .tsx files are part of the graph and count as already typed.

ES modules and CommonJS

import, export, require and module.exports, including re-export chains and barrels.

Circular imports

Grouped into one unit and always migrated together.

Path aliases

compilerOptions.paths from tsconfig.json or jsconfig.json, resolved like your toolchain.

Dynamic imports

Recorded in the graph and flagged as dynamic.

Tests and entry points

Test files (.test, .spec, __tests__) and package.json entry points are recognized.

Type-only imports

Recorded separately from value imports, so ordering reflects what really runs.

Assets

CSS, JSON and other non-code imports are classified, not mistaken for missing files.

Unresolved imports

Recorded with a reason instead of failing the scan, so gaps are visible.

Keyboard first

Three shortcuts to learn

CtrlL

Open the Morph panel

CtrlShiftM

Start a migration

CtrlShiftV

Run & Verify

Everything else uses the standard shortcuts you already know. See the full list.

Roadmap

What's here, what's next

CodeMorph is in beta. Here's what you get today and what we're building next.

Available now

In the beta

  • CodeMorph editor for Windows
  • Scan & Plan: dependency graph and leaf-first batches
  • Batch migration with a repair loop
  • Side-by-side diff review, accept per file
  • Run & Verify: typecheck, tests and build
  • Morph agent with Ask, on your own Anthropic key
Coming soon

Next

  • Ollama for fully local models
  • Signed installers and auto-update
  • macOS and Linux builds
Planned

Later

  • Teams: shared plans and review
  • Org-wide model policy
  • More migrations beyond JS to TS

Follow along in the changelog.

FAQ

Questions about features

Do I need an API key to try CodeMorph?
Not to explore. Scan & Plan and Run & Verify are fully local. Conversion and Ask use your Anthropic key.
Can I migrate only part of a project?
Yes. Tell Morph which folder to migrate, for example the api folder, and it works through that part of the plan.
Does CodeMorph support strict mode?
Yes. Verify uses your tsconfig.json, and you can ask Morph to migrate to strict mode so every file meets that bar.
What happens to files that can't be typed cleanly?
They stay in review with the remaining compiler diagnostics, instead of being forced through with any.
Is my code used to train models?
CodeMorph never receives your code. Requests go to your provider under your account, governed by their data terms.
Can I keep using my extensions?
Extensions published to Open VSX install from the Extensions view. See the extensions page for details.

Try CodeMorph now.

Download the beta, open a project and see your migration plan in under a minute.