ML.ai

ML.ai takes on
the work people hand it

Build, debug, plan, understand, refactor, delegate or modernize: pick the job below and see how ML.ai runs it, step by step.

Build the feature. Pay frontier prices only where it counts

ML.ai plans on a lighter model and saves the frontier tier for writing the diff, so the same change costs about 30% less.

A real example

You ask: “Add a due date to tasks”

You get: One diff across the schema, the API and the card, waiting for your OK

Who it’s for

Developers shipping ordinary feature work: a new API route, a settings panel, a data-model field that has to reach the UI. The task is well-defined enough to describe in a sentence or two.

See how it worksSee how it works

Three layers

Schemaschema.prisma
TSAPI routetasks/route.ts
UITaskCard.tsx

One diff

schema.prisma

14dueDate DateTime?

Read every layerWrite it as one change

Hand it the error. ML.ai finds the real cause first

Give ML.ai a failing test, an error message, or a stack trace and it reads the execution path, finds the actual cause, and proposes a fix as a diff you approve.

A real example

You ask: “auth.test.ts fails with a 401”

You get: The real cause in session.ts, and a fix for you to approve

Who it’s for

Anyone staring at a failing test, an exception in production logs, or behavior that does not match what the code appears to say.

See how it worksSee how it works

Trace the stack

TSauth.test.ts
JStokenStore.js
TSsession.ts

Proposed fix

TokenExpiredError: jwt expired

at verifysession.ts:42

at refreshtokenStore.js:18

at login testauth.test.ts:27

refreshes an expired session

Not the line it points atThe real cause, then the fix

Work out the approach before a single file changes

architect returns the key files, trade-offs and a plan without editing anything. planSubAgent saves that plan to a file.

A real example

You ask: “Move sessions from cookies to a server store”

You get: A step-by-step plan and one open question. No file is touched

Who it’s for

A change large enough that jumping straight to editing risks going down the wrong path: a new subsystem, a migration, anything where "what should happen first" is itself the open question.

See how it worksSee how it works

Reads the code

db.prismaTSinvites.tsTSroute.tsemail.tsxTSauth.tsTSperms.ts

Read only. Cannot edit.

plan.md

Waiting for the read to finish

planSubAgent writes only this file

InvestigateWrite the plan, not the code

Ask how it works. Nothing changes while it looks

explore searches and reads across the project and answers with exact file paths. It has no edit or write tool, so asking costs nothing to undo.

A real example

You ask: “Where is DATABASE_URL read?”

You get: The file and line, and nothing in your repo changed

Who it’s for

Anyone joining a new area of the code, onboarding to an unfamiliar repo, or needing a confident answer to “where does this actually happen” before making a change.

See how it worksSee how it works

Where is DATABASE_URL read?

TSenv.tsTSdb.tsJScompose.ymlTSusers.tsTSseed.ts
Read once, in env.ts:60 files changed

Answered with the file and line. Nothing changed.

Rename it everywhere. Every caller moves with it

ML.ai finds every reference before it edits the definition, then lands the rename and each caller together in one diff.

A real example

You ask: “Rename getUserById everywhere”

You get: The definition and every caller in one diff, none left on the old name

Who it’s for

Developers extracting a shared function, renaming a widely used type, splitting a file that grew too large, or cleaning up a pattern that is now inconsistent across the codebase.

See how it worksSee how it works

getUserByIdfindUserById

TSuserService.tsdefinition

function findUserById(id)

TSroute.tscaller

await findUserById(id)

TSuseUser.tscaller

useSWR(id, findUserById)

TSuserService.test.tstest

findUserById("u1")

Every reference renamed, in one diff

Hand off the job. Get your attention back

A background run takes a well-defined task into its own session. You keep working, then pick up a draft to review.

A real example

You ask: “Run the tests and fix what fails”

You get: A draft diff to review, while you kept working on something else

Who it’s for

Anyone running several things in parallel: a long migration, a test-suite fix, or any task where waiting on it live would be dead time.

See how it worksSee how it works

You, in the main session

Asked a quick questionStarted a second taskReviewed a pull request

Background run · fix failing testsSucceeded

Ran the testsFixed format.tsRe-ran the suite

Draft ready: format.ts, +1 −1

Back to you with a draft to review

Understand it first. Then move it forward in small steps

explore maps what the old code does, architect plans the path, and general carries out each stage as its own diff.

A real example

You ask: “Move us off the old .ini config”

You get: A three-stage plan, then stage one as a diff you can review

Who it’s for

Teams inheriting an unfamiliar or undocumented system: an old framework upgrade, a monolith being split apart, a dependency nobody remembers adding.

See how it worksSee how it works
explore maps itarchitect plans itgeneral edits it
Shared interface
2Env variables
3Remove .ini loader

Stage 1 is done. Review it before stage 2.

Try ML.ai today, or talk to us about what is next

Install the editor agent on your own machine, or book a call to talk through your team’s workloads