> ## Documentation Index
> Fetch the complete documentation index at: https://nouisi-keel.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Goals

> Set one small goal, plan around what gets in the way, and finish it.

A goal in Keel is something small you can finish in days or weeks, like running 5 km or reading one book. Keel asks for the parts that make a goal more likely to get done: what done looks like, a deadline, the thing most likely to get in the way, and a plan for it.

## Set a goal

```text theme={null}
goal new "Run 5 km"
```

Keel asks one question at a time:

**1. What does done look like?**

Something you could check: `I run 5 km in one go`.

**2. Deadline**

`nov 8`, `+3w` or `2026-11-08`.

**3. How much time will you give it?**

`30 minutes a day`. Press Enter to skip.

**4. What could get in the way?**

One thing: `rainy mornings`.

**5. Your if-then plan**

`If it rains at 7:00, then I will do 20 minutes on the treadmill`. It has to read "If ..., then ...".

**6. The steps**

One per question. Make the first one take under 10 minutes. For each step, Keel asks when and where (`sat 7:00 at the park`) and a smaller version for a bad day (`10 minutes`). An empty line ends the list.

```text theme={null}
✓ g1 Run 5 km · Sun 8 Nov · 4 steps
  First step: Put my shoes by the door. When it's done: goal step done g1 1
```

You can give any of the answers in one line, and Keel asks only for the rest. Each `step:` adds a step, without a time or place:

```text theme={null}
goal new "Read a book" done:"last page" due:+3w obstacle:"tired evenings" plan:"If I am tired, then I will read 2 pages" step:"pick the book" step:"read chapter 1"
```

With `--json`, nothing is asked, so give `done:`, `due:`, `obstacle:`, `plan:` and at least one `step:`.

## On your phone

With `keel serve` running, open `/goals` on your phone (see [phone login](https://nouisi-keel.mintlify.site/guides/phone-login.md) to reach it from outside your computer). Tap **+ New goal**:

1. **The finish line:** the goal, what done means, the deadline and the time you will give it.
2. **The plan for the hard part:** what is most likely to stop you, then your plan as two blanks, "If ..." and "then I will ...". Keel needs the plan to save. Then add steps, the first one tiny, each with an optional time, place and minimum version.

**Start goal** saves it, and Today shows it with its progress and its next step. Tap the round check to mark that step done, or tap the goal to see all of it: what done means, your plan, the steps still open (tick any of them) and the ones already done. Goals made on the phone and in the CLI are the same goals.

### When your computer sleeps

The phone app talks to `keel serve` on your computer. When it can't reach it, the app still opens and shows the goals as your phone last saw them, marked **Not live** with the time. Nothing can change until Keel is back: a step you tick is not saved for later, and Keel says so. Tap **Try again** once `keel serve` is running. To keep Goals live all day, run `keel serve` on a machine that stays on.

## See your goals

```text theme={null}
goals            # active goals
goals --all      # closed ones too
goal show g1     # one goal and its steps (show g1 works too)
```

Progress shows the smaller part: `1 of 4 done` until halfway, then `2 left`.

## Move it along

```text theme={null}
goal step done g1 2
```

Keel then shows the next open step. A step can be done once: if you marked it on another device first, Keel says when.

When the goal is finished, or you decide to stop on purpose:

```text theme={null}
goal done g1
goal drop g1
```

A closed goal stays closed. Start a new one with `goal new`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.