---
title: Code modes and models
description: "Pick Spark, Forge or Summit to set how hard Ysra works on a Code task, or choose a model and an effort yourself, in the app or the command line."
new_in: "3.4"
---

A **Code mode** is one choice that sets which model does the work in a Code
thread and how hard it thinks, so you don’t have to pick either. This page is
for anyone starting Code threads: which mode to use when, the effort levels,
and where to change them. Ask isn’t affected; it has its own speeds.

## Which mode to use

| | **Spark** | **Forge** (the default) | **Summit** |
|---|---|---|---|
| Best for | “Small, clear jobs: a typo, a label, one field on a form.” | “A new page, a feature, a bug you can describe.” | “Large or tricky work, where a mistake costs more than the time.” |
| How it works | “Fast and cheap. Reads only what it needs, makes the change, checks it and stops.” | “Everyday building. Plans a little, builds, tests and fixes what fails.” | “The strongest model, thinking hardest. Reads and plans first, then checks strictly before it calls it done.” |
| Effort | Quick | Balanced | Thorough |
| Credits | The fewest | Middle | The most |
| Not for | Anything you’d need to explain in more than a sentence | — | A one-line change: it spends more for the same result |

## Use Spark when …

The change is small and you could describe the exact edit: a typo, a label,
a colour, one field.

## Use Forge when …

You’re not sure. Features, pages and bugs you can describe are Forge’s job,
and it is where every new workspace starts.

## Use Summit when …

The work is large, crosses many files, or a mistake would be expensive: a
migration, a payment flow, a security fix, a bug nobody has explained yet.

## Choosing a model yourself

Instead of a mode, you can pick a model. The list shows the models you can
use, each with what it’s best for and what it costs.

| Situation | What happens |
|---|---|
| You pick a model | It replaces the mode’s model for this thread; the mode is no longer named. |
| You pick an effort | It overrides the mode’s effort; the mode is no longer named. |
| You change either mid-thread | It applies from your next message; the thread notes “From here on I’ll work with: …”. |
| The thread uses a model that is no longer listed | It keeps that model. |
| A mode’s models can’t be used | The mode reads “Not available right now”; in the CLI, “Spark is not available right now.” |
| A model can’t be chosen | The list says why. |

## Effort

Effort is how long the model thinks before it acts.

| Effort | For |
|---|---|
| **Quick** | Small, clear changes. The fastest, and the fewest credits. |
| **Balanced** | Most work. The default. |
| **Thorough** | Hard or unclear work. It thinks longer. |

The effort you choose works with every model you can pick.

## In the desktop app

The model control sits at the right of the
[message box’s row](../desktop/open-folder.md#the-options-under-the-message-box).
It shows the mode and its model (**Forge · …**), or the model you picked and
its effort (**… Balanced**). It reads *Loading…* until the list arrives.

| Part of the picker | What it holds |
|---|---|
| Effort, at the top | **Quick** (“For small, clear changes”), **Balanced** (“The default”), **Thorough** (“Thinks longer, for hard problems”), with the current model’s name under it |
| Search | “Search modes and models”: type to filter, arrow keys to move, ++enter++ to pick |
| **Modes** | **Spark** (a bolt), **Forge** (a hammer, marked **Recommended**), **Summit** (a mountain), each with what it’s best for |
| **Recently used** | Up to 3 models you picked yourself on this computer; hidden while you search |
| **Choose a model yourself** | Each model with its mark, what it’s best for and a 4-step cost bar |

| The picker says | Meaning |
|---|---|
| *Loading models…* | The list is still loading. |
| *Nothing matches.* | The search found nothing. |

The first thread in a workspace starts on the recommended mode; after that,
the box remembers your last choice. Under the thread’s title, one line shows
**● Running** while Ysra works, then the mode and its model (or the model and
effort), then the credits used. See
[The top of a thread](../desktop/open-folder.md#the-top-of-a-thread).

## In the command line

| Command | Does |
|---|---|
| `/mode` | Choose **Spark**, **Forge** or **Summit** from a list; `/mode spark` chooses it at once |
| `/model` | Choose a model yourself |
| `/effort` | Choose **Quick**, **Balanced** or **Thorough** |
| `ysra exec --mode … --model … --effort …` | The same for one run; `--model` and `--effort` win over `--mode` |

**Forge** is used while nothing has been chosen. An unknown mode stops the run
with “--mode is spark, forge, summit (not …).” The line at the top of a
conversation shows the folder, the mode, the model, the effort and the
account:

```text
~/billing-service · Forge · … · balanced effort · you@example.com
```

## Working on several projects

Code works on the project folder you open, or on a repository or project in
[Ysra’s cloud](cloud.md). To work on several projects, open a thread on
each. See [Start a thread](../desktop/open-folder.md).

## Related

- [Ysra Code](index.md) — where Code runs and how a task ends.
- [Limits and costs](../workspace/limits.md) — what the model’s work costs.
- [Plans and acceptance criteria](plans.md) — planning first for large work.
- [CLI guide](../cli/guide.md) — the terminal, end to end.
