ML.ai

Ask how it works. Nothing changes while it looks

explore searches and reads across the whole project and answers with exact file paths. It has no edit or write tool, so there is nothing for it to change.

Who uses ML.ai to understand code

Anyone who needs a confident answer about code they did not write, before touching any of it.

  • Developers joining a new area

    Where a flow starts, what it calls and what pattern the neighbouring files follow.

  • Engineers checking before a change

    Where does this actually happen, answered before anyone edits a line.

  • Leads who want zero risk

    A read-only agent that cannot edit or write, so asking costs nothing to undo.

A fast answer only helps if it is checkable

Searching is the easy part. These four things make the answer worth acting on.

It has no tool that could change anything

explore can search, glob, read and fetch. It has no edit or write tool at all, by construction and not by policy, so asking a question can never leave a side effect behind.

The answer comes with file paths and lines

You get an explanation and the places it came from, so you can open each file and check it instead of trusting a summary.

It looks past the file you pasted

A chat window answers from the snippet you gave it. explore searches the project, so the call site three folders away is part of the answer.

You set the depth

Ask for a quick lookup and get a fast answer, or ask it to be thorough and it sweeps a wider part of an unfamiliar subsystem.

Learning a codebase by hand versus asking explore

By hand

You open a dozen files by hand, hold the pattern in your head across all of them, and hope you did not miss the one call site that matters.

With ML.ai

explore does that search and reports back in one answer, with no risk of a side effect, because it has no tool that could change anything.

Which agent actually does this

explore · Search · Read · Fetch · Write

The only agent involved, by design

Read-only by construction: it greps, globs, reads and fetches across the project, with no edit or write tool available to it at all.

general · Read · Plan · Write diff

Optional, when the answer turns into work

If the explanation shows a change is needed, hand it to general in the same conversation. It writes the diff behind the usual approval gate.

How a question goes from ask to answer

Most questions about code are a search plus a few files read in the right order. explore does both and hands back an explanation with the paths.

1Ask the question directlyMention explore with what you want to know: where a value is read, how a flow is wired, what pattern a set of files follows.
2It searches without touching anythingGreps, globs, file reads and fetches, read-only by construction. There is no edit or write tool available to it, so nothing it does needs a permission prompt.
3You set the depthAsk for a quick lookup or tell it to be thorough. A single targeted question gets a fast answer; an unfamiliar subsystem gets a wider sweep.
4Get the answer, then decideThe summary comes back as an explanation, not a diff. If it turns into real work, hand that off to general in the same conversation.

Common code-reading problems and fixes

Where understanding a repo usually goes wrong, and how a read-only search closes each gap.

The pattern lives in many files

The answer is spread across a config module, a client and a deploy file, and reading them one at a time loses the thread.

How ML.ai handles it

explore reads them together and reports the one pattern that connects them, with each file named.

A search that finds the string, not the meaning

Searching for a name returns every mention, including comments and tests, with no sense of which one matters.

How ML.ai handles it

It reads the matches in context and tells you which ones are real reads and which are only mentions.

Asking costs you something

Handing a question to a tool that can also edit leaves you wondering what else it touched while it looked.

How ML.ai handles it

explore has no write surface, so there is nothing to review and nothing to undo after it answers.

Where this stops

The real edges of what explore can do here, stated plainly instead of left for you to discover.

01
01

It explains, it does not change

explore cannot make the change it just described, even if you ask mid-answer. Hand the actual edit to general.

02
02

One turn, then it hands back

explore answers in a single turn and hands control back to you. A vague question gets a best-effort search, so say what you are looking for.

03
03

It only works inside the project

A database, a running service or infrastructure outside the workspace is invisible to it.

Root cause in session.ts

The store returns null before the session write finishes, so the middleware rejects a valid token.

session.ts+2 −1
40export async function getSession(id) {
41- const s = store.get(id)
41+ const s = await store.get(id)
42+ if (!s) throw new SessionNotFound(id)
AllowAlwaysDeny

Debug

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.

Plan · move off the .ini loader

  1. 1Add a shared config interface
  2. 2Read environment variables behind it
  3. 3Remove the .ini loader

Nothing edited until you hand it to general

Hand to generalRevise

Legacy modernization

explore maps what the old code does today, architect plans the path, and general carries it out as small reviewable diffs.

FAQs

Can explore accidentally change a file while looking for something?

No. It has no edit or write tool available to it at all, by construction and not by policy. There is nothing for a permission prompt to gate.

How is this different from asking the default agent to look something up?

The default agent (general) can edit and run commands, so a look-up request to it still carries the blast radius of a tool that could act. explore is the same search with no write surface.

Can I control how deep the search goes?

Yes. Say how hard it should look: quick for a single targeted lookup, or thorough for a wider sweep across an unfamiliar subsystem.

Can it look outside the repo?

No. explore works inside the project only, so a database or running service outside the repo is invisible to it.

What do I do when the answer shows a change is needed?

Hand it to general in the same conversation. The edit lands as a diff behind the Allow, Always or Deny prompt, like any other change.

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