# Projects

Keep each project as a folder with its note, task notes and due date, and see which tasks are late and where each project stands.

A project is a folder in `Projects/` that holds the project's note and its task notes. Each task is a note with a status and an optional due date. Loam shows the progress and the late tasks of each project. There are no teams, assignees or time tracking.

```text
Projects/
  Website redesign/
    Website redesign.md        <- the project
    Write homepage copy.md     <- a task
```

## Create a project

1. In the app, click **+** beside a status on the Projects page, type a name, and press Return.
2. Or run the command from the CLI. It prints the path of the new note.

```bash
loam --vault ~/Notes projects.new title="Website redesign" due=2026-11-19
```

The status is `Active` by default. The other statuses are `Idea`, `Paused` and `Done`.

## Add tasks

A task is a note in the project's folder. Set its `status` to a column of the Kanban: `To do`, `In progress` or `Done`. Add a `due` date if it has one.

```markdown
---
status: In progress
due: 2026-10-27
---
Write the homepage copy. Notes, links and a checklist go here.
```

In the app, click **+** in a column of the project's Kanban to name a new task. For checkbox lines in any note, see [Tasks](/docs/tasks).

## See where projects stand

- A task is late when it is not done and its due date has passed.
- A project is overdue when its own due date has passed and it is not done.
- The progress of a project counts its Done tasks.

```bash
loam --vault ~/Notes projects.list
loam --vault ~/Notes projects.list status=Active
loam --vault ~/Notes projects.due day=2026-10-28
```

`projects.due` lists the open tasks due on a day. When the day is today, it also lists the late tasks.

## Fix loose notes

A note placed directly in `Projects/` is not a project. Run `projects.tidy` to move each one into a folder of its own.

```bash
loam --vault ~/Notes projects.tidy
```

## Commands

| Command | Arguments | What it does |
| --- | --- | --- |
| projects.new | title; optional status, due (YYYY-MM-DD) | Creates a project note with its Kanban. Returns its path. |
| projects.list | status (optional) | Lists every project, with its status, due date, overdue flag and task counts. |
| projects.due | day (optional, YYYY-MM-DD) | Lists the open task notes due on a day. |
| projects.tidy | none | Moves each loose note in Projects/ into a folder of its own. |

> **Tip:** For AI agents: `loam list` shows the `projects.*` commands with their arguments.
