Skip to main content
This guide walks you through creating a migration project and getting to your first milestone.

Prerequisites

  • A GitHub, GitLab, or Azure DevOps account
  • One or more repositories you want to modernize

Before You Start: See a Finished Migration

If you would rather see the whole thing working before connecting a repository, ships a read-only sample project — a real modernization, replayed end to end. You can reach it when you are asked to connect a Git provider, without connecting one. It walks through the whole migration in four phases: Chat replays the real conversation recorded during that migration, so you can see how the agent was directed. Nothing writes to your account, and nothing you do there affects anything. It is the fastest way to judge whether fits your codebase, and a good thing to send to a colleague who wants to see the product without starting a trial.

Step 1: Sign In

Go to modelcode.ai and sign in with your account.

Step 2: Connect Your Git Provider

After signing in, connect your Git provider to access your repositories:
  1. Click Connect GitHub (or the equivalent for your provider — see GitLab Integration or Azure DevOps Integration for provider-specific setup)
  2. Authorize to access your repositories
  3. Select which repositories can access
You can grant access to specific repositories only. You can always add more later.

Step 3: Create a Project

  1. Click Create Project on the Projects page
  2. Select one or more repositories from the dropdown
  3. For each repository, confirm or change the origin branch
  4. Click Continue to move to the next step
  5. Set a feature branch name (prefixed with morph-)
  6. If Organizational Knowledge is available, click Manage to browse and select items to import, or leave as “starting fresh”
  7. Click Continue again
  8. Enter a project name (auto-filled from your first repository name)
  9. Click Create Project
clones your repositories and prepares them for analysis. This takes a few moments.
You can add multiple repositories to a single project. This is useful when your modernization spans several repos — for example, migrating a backend and a shared library together.

Step 4: Set Up the Build Environment

Once your project is created, the onboarding flow guides you through configuration. The first step is choosing where builds and runs your code: the cloud environment, or a Self-hosted Daemon for projects that depend on private services.
If your project builds and runs with standard, publicly accessible dependencies, the cloud environment works out of the box. Use a Self-hosted Daemon only when your project requires access to private registries, internal APIs, or on-premise infrastructure.

Step 5: Define Your Modernization Goals

This is where you tell what you want to achieve. Describe your goal in plain language: Examples:
  • “Translate the source code from Ada to C++”
  • “Upgrade Python 2.7 to Python 3.12”
  • “Migrate from AngularJS to React with TypeScript”
  • “Upgrade Java Spring framework to the latest version”
Be specific about your target. Instead of “modernize the code,” say “migrate from Express.js to FastAPI” or “upgrade to React 18 with hooks.”

Project Overview

As part of defining your goals, you’ll configure the Project Overview — a summary of the repositories involved and their roles in the migration:
  • Repos at start — The repositories you’re beginning with and their current state
  • Repos at end — The target repositories after migration, including any new repos and each repo’s modernization role (Modified, New, Reference Only, One-to-One Migration)

Step 6: Review and Approve the Project Spec

generates your Project Spec — the full migration plan for your project. The first time it is ready, Project Knowledge opens automatically on the Roadmap. Select Project Spec in the tree if needed, and review it carefully:
  • Does it capture your intent?
  • Are the target technologies correct?
  • Is anything missing?
You can:
  • Use Knowledge chat in Project Knowledge to ask questions and request updates to the Project Spec
  • Run Auto-review to have check the spec against the codebase and your goals
  • Approve from the Project Knowledge drawer when you’re satisfied
Take time to review before approving. You can still refine the spec with Knowledge chat afterwards, but once milestone planning has run those edits apply to future milestones only.

Step 7: Choose a Validation Level

Pick how thoroughly should verify each milestone — from build-and-test only, up to full origin-vs-target verification. See Validation Level for what each level covers and what it costs.

Step 8: Project Setup

At the High validation level, needs to know how to actually build, run, and health-check your application. The Project Setup stage opens Project Knowledge with Knowledge chat, and the agent works through it with you:
  1. It inspects the repository and reports the install, build, run, and health-check commands it found
  2. It asks you about anything it can’t infer — ports, service URLs, credentials (via an encrypted Provide Secret card)
  3. It runs the whole lifecycle end to end to prove the configuration works
When it passes, the setup is marked Validated. See Lifecycle Setup for the full walkthrough.
At the Low and Mid validation levels this stage is skipped — never builds or runs the original application, so there is nothing to configure.

Step 9: Generate Roadmap

generates a Roadmap — a sequence of milestones that progressively execute your migration. Each milestone represents a logical chunk of work, ordered so each builds on the previous one.

Step 10: Execute Your First Milestone

  1. Open the first milestone — the Project Knowledge drawer opens with the milestone plan
  2. Review what it will accomplish (title, description, relevant files)
  3. Click Approve & Start at the bottom of the drawer to launch the agent
The agent generates tasks from the approved plan and executes them. When complete, a Pull Request appears in your repository. Review it, and when satisfied, merge it to complete the milestone.

What’s Next