Vist/ Blog/ Product
Product 5 min read

Tasks got steps. Not subtasks. On purpose.

Vist 2.0 gives every task Markdown notes and a checklist of steps, so you and your AI agents can break work down over MCP.

For a long time a Vist task was... a title. Plus a due date, a priority, some labels and maybe a link to a note. Fine for "call the accountant". Less fine for "ship the onboarding emails", which is really four things and a paragraph of context.

Vist 2.0 changes that. Tasks now have Markdown notes and a checklist of steps, and both work in the app and over MCP, so your agents get them too. It's easily the biggest change to tasks since I first built them. (The kanban board for coding agents shipped in the same release. That one has its own post.)

Tasks were too thin

Context lived somewhere else. I'd write the details in a note and link the task to it. Which works... until you have a two-line task that doesn't deserve a note of its own. Or an agent creates a task and has nowhere to put the why.

The funny part: there was a description column in the database all along. Plain text, barely used, and not exposed over MCP at all. Sigh.

And breaking work down meant five separate tasks, sitting in my list pretending not to know each other.

Notes, in Markdown, on the task

Every task now has notes, rendered as Markdown in the detail panel: lists, links, code blocks, tables. You edit them in a plain text area and they render when you click away. Up to 20,000 characters, which is quite a lot of why.

Agents get a notes field. create_task and update_task take it, get_task returns it, and list_tasks only says has_notes, so lists stay small.

One wart, and it's mine: in the MCP task tools, description already meant the title. Renaming it would break every agent and script out there. So the body is called notes. Not pretty. It works.

Steps, not subtasks

The obvious move was real subtasks: tasks inside tasks, each with its own due date, priority, labels, reminders and a spot on the board. I sketched that one. Then I looked at everything in Vist that lists tasks: Today, the digest emails, the daily briefing, search, the board, MCP, the export. Every one of them would have to decide what to do with a task that has a parent. That's a lot of new ways to be confused by one checkbox.

So steps are small. Deliberately. A step is a title and a checkbox, in order, inside a task. Basically a checklist. No due date, no priority, no labels. They don't show up in your lists on their own, so nothing else in Vist had to change.

My rule: if a step needs a deadline, it's a task.

In the app, the task detail panel has a Steps section. Add, tick, rename, drag to reorder, delete, all without a page reload. List rows and board cards show a 2/5 chip. Completing a task leaves its steps alone. (I went back and forth on that one... but ticking off things you didn't do felt wrong.)

Over MCP, get_task returns the steps with their ids. update_task(steps: [...]) replaces the whole list, the same way labels work: send it back with your changes, and anything you leave out is deleted. So, get_task first. Always. Up to 100 steps per task.

This is the bit I'm actually excited about. An agent can now take a task, write its plan into the notes, split it into steps and tick them off as it goes. And I can see how far it got from the list, without opening anything. Watching an agent tick off its own steps in the list is weirdly satisfying.

Built by the pipeline, again

Same as the kanban board: one plan note, three phases, three tasks, and Claude Code picked each one up with /vist-next on its own branch (agent/1018-task-markdown-notes, agent/1019-task-steps, agent/1020-task-steps-ui). I merged all three in one evening, 13 October.

The steps-not-subtasks call was mine. I wrote it into the plan before the agent started. The agent didn't get a vote.

The agent said no

The last PR came with an honest "not met". The plan said the phone layout should show the steps section. The agent found that Vist's phone layout has no task detail view at all, so there was nowhere to put it. It added the progress chip to phone cards, ticked everything else, and left that one box unticked with the reason. I merged it knowing that. I'd much rather have that than a green checkmark that lies.

What's not there yet

  • On a phone you see the progress chip, but you can't open a task to edit its steps or notes. That needs a phone task view first.
  • Reordering steps needs a mouse or trackpad. No keyboard or touch reordering yet.
  • Checklists inside a note don't turn into steps.
  • Steps don't nest. A step is a step.

Small on purpose

Steps are the smallest thing that could work, and so far that's enough for me and for my agents. If you hit a case where steps aren't enough, tell me. I'm curious whether I'm wrong about subtasks. Available on all plans, including Free. How notes and steps work, in the app and over MCP, is in the docs.

Product