Loam is free and open source for macOS. Your notes stay plain Markdown files on your disk. Download for macOS.[Download for macOS.]
All pages

Notes

Projects

.md

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.

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.
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.

---
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.

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.
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.

loam --vault ~/Notes projects.tidy

Commands

CommandArgumentsWhat it does
projects.newtitle; optional status, due (YYYY-MM-DD)Creates a project note with its Kanban. Returns its path.
projects.liststatus (optional)Lists every project, with its status, due date, overdue flag and task counts.
projects.dueday (optional, YYYY-MM-DD)Lists the open task notes due on a day.
projects.tidynoneMoves each loose note in Projects/ into a folder of its own.
For AI agents: loam list shows the projects.* commands with their arguments.